Commit graph

72 commits

Author SHA1 Message Date
Lera Elvoé
b5cd7336a4 fix inspector and variable viewer not clearing in some cases when there are no decks (#172)
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/172
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-07-28 11:23:59 +00:00
Lera Elvoé
616c185abf
clean up warnings 2024-07-28 13:39:09 +03:00
Lera Elvoé
e257c76dc6 add array operation nodes (#171)
- fix variable viewer deselecting error
- add array push/append
- set spinbox value AFTER setting the range in descriptor renderer
- add array pop node
- add array size node
- add array set at index node
- add array insert node
- prevent potential race condition in array pop

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/171
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-07-28 09:30:53 +00:00
Lera Elvoé
3bff8e27e6 make group io nodes 'optional' (#167)
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/167
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-07-02 09:29:06 +00:00
Lera Elvoé
f760cd227d
make sure node renderers exist when trying to disconnect 2024-06-14 16:59:30 +03:00
Lera Elvoé
ac6ede2b41 make the default library group location be based on the executable location (#164)
closes #163

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/164
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-05-26 16:05:22 +00:00
Lera Elvoé
f720efcc72 lib group storage rework (#162)
saving decks that use lib groups will no longer save the whole file path to that library (at the expense of the structure needing to be the same)

also some ui/ux improvements:
- more menus in sidebar remember their collapsed state between deck/node switches
- adding a lib group will name the group node appropriately
- save dialog properly remembers the most recent path when invoked via ctrl+s and the deck hasn't been saved before

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/162
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-05-26 14:13:42 +00:00
Lera Elvoé
32bda994f6
followup to db590ac: improve group node renderer UX 2024-05-24 16:17:07 +03:00
Lera Elvoé
3bb1531603 fix library group saving (#161)
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/161
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-05-20 08:54:19 +00:00
Lera Elvoé
33425e8436 don't open deck tab if the deck is null (#160)
closes #98, but crucially doesn't add any real error checking in the actual deck loading code, instead just opting to refuse to open a tab for a deck that comes out null from DeckHolder.

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/160
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-05-20 06:11:15 +00:00
Lera Elvoé
3a7facf948 make group input node use resolve instead of raw value request when getting value and disallow group output nodes having descriptors in sidebar (#159)
closes #158

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/159
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-05-20 05:25:34 +00:00
Lera Elvoé
8156e4769f group descriptors (#156)
closes #93

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/156
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-05-20 04:32:12 +00:00
Lera Elvoé
ba2dd6a837 remove RPC (#153)
bye bye

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/153
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-05-08 07:59:19 +00:00
Lera Elvoé
240750c48e library groups (#151)
~~cl0ses #51~~
~~cl0ses #93~~
~~cl0ses #98~~
~~cl0ses #150~~

another change in this PR: the Deck and DeckNode classes now use manual memory management.

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/151
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-05-08 07:43:45 +00:00
Lera Elvoé
a80af97377 add toast notifications (#148)
closes #138

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/148
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-04-17 02:06:48 +00:00
Lera Elvoé
f24906715d store connections inside the deck (#147)
- node/port connections are now stored in the deck they belong to
- share the connections object between group instances for free syncing
- add compatibility code to allow loading decks made before this change
- disabled the ability to open multiple decks in the renderer for now since it'd cause problems when opening multiple decks and one of them is incompatible; to be redesigned later

closes #140

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/147
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-04-17 00:24:55 +00:00
Lera Elvoé
1ce3cd0367 add a sidebar (#146)
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/146
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-04-16 15:16:38 +00:00
Lera Elvoé
ed5a0f427b add shortcuts (#145)
closes #133

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/145
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-04-14 12:40:26 +00:00
Lera Elvoé
a56280f00a add settings dialog (#144)
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/144
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-04-11 15:32:13 +00:00
Lera Elvoé
a518e46b0f add a method to make group instances unique, making them independent (#143)
closes #97

when copying group nodes across decks (including in and out of groups), they become unique and completely independent copies of the original. this is done recursively, so in the case of copying:

- group X
	- contained in Deck A
	- has another group Z

into Deck B, group X will become group Y, group Z will become group W.

there is a rare bug that will sometimes cause the deck to save with no groups at all, which i haven't been able to hunt down and don't know how to replicate at the moment.

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/143
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-04-11 14:56:33 +00:00
Eroax
82edd774a0 Extra fixes to NoTwitch Cache handling (#136)
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/136
Co-authored-by: Eroax <eroaxebusiness@duck.com>
Co-committed-by: Eroax <eroaxebusiness@duck.com>
2024-04-09 06:00:49 +00:00
Eroax
8896fed2f8 Added Handling for Invalid NoTwitch Credentials (#135)
Just a quick fix that implements handling for if your Twitch authorization is invalid by adding a new signal that gets emitted, No_Twitch.invalid_auth. Which is connected to a lambda in twitch_setup_dialog that asks for authorization and opens the browser if it's received. It's not *pretty*, but it solves the problem temporarily.

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/135
Co-authored-by: Eroax <eroaxebusiness@duck.com>
Co-committed-by: Eroax <eroaxebusiness@duck.com>
2024-04-09 05:49:54 +00:00
Lera Elvoé
edeb8e22dc add scalar math nodes (#123)
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/123
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-03-17 10:09:23 +00:00
Lera Elvoé
822abb3d66 fix scroll offset not loading (#114)
closes #77

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/114
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-03-16 09:02:19 +00:00
Lera Elvoé
d5550be77d turn off snap and minimap by default (#113)
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/113
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-03-16 08:37:55 +00:00
Lera Elvoé
0d546f4fc4 add a way to start RPC from default renderer (#112)
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/112
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-03-16 08:32:28 +00:00
Lera Elvoé
8bdd6709b4 deck and deck holder RPC scopes (#106)
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/106
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-03-15 06:02:04 +00:00
Lera Elvoé
3886414374 fix up the spinbox descriptor and switch delay node to use SceneTreeTimer (#99)
closes #76

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/99
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-03-11 06:22:55 +00:00
Lera Elvoé
677e7b36c5 add an API for buttons on ports (#96)
closes #91

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/96
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-03-06 07:50:23 +00:00
Lera Elvoé
d98d6f52bd add a new main scene (#89)
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/89
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-02-29 18:41:53 +00:00
Lera Elvoé
ee567f106a make the obs disconnect button work (#86)
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/86
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-02-29 07:09:33 +00:00
Lera Elvoé
49b8a23281 add more OBS nodes, allow specifying event subscription types in OBS connection dialog (#81)
adds:
- OBS Event Received
- OBS Set Source Visible
- OBS Is Source Visible?
- OBS Set Input Settings

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/81
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-02-26 11:37:57 +00:00
Lera Elvoé
c7e003ffe6 make descriptor renderers into scenes (#74)
closes #60

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/74
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-02-22 06:59:23 +00:00
Lera Elvoé
df3b3c4990 silence a lot of warnings (#73)
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/73
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-02-21 06:34:17 +00:00
Lera Elvoé
c3a91d0848 replace C-style boolean operators with their keyword counterparts (#72)
closes #71

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/72
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-02-21 06:11:29 +00:00
Lera Elvoé
51652ef277 add port usage type to Port (#69)
first part of addressing #59

every `Port` now has a `usage_type` field that indicates whether it can be used for triggers (eg. sending and receiving events), value requests, or both. `Deck` has an additional method to validate if a potential connection is legal, which checks for the following in order:

1. the source and target nodes are not the same node;
2. the port usage is valid (trigger to trigger, value to value, both to any);
3. the port types are compatible
4. the connection doesn't already exist

all node ports by default use the "both" usage, since that will be the most common use case (especially in cases where an input port can accept either a trigger and a value request but the output can only send one type), but it can be specified as an optional argument in `add_[input|output]_port()`

usage types are represented in the renderer by different port icons:

![image](/attachments/28d3cfe9-c62c-4dd4-937d-64dbe87cb205)

there is a reference implementation in the Compare Values and Twitch Chat Received nodes, since those were used as examples in #59. other nodes will be added as a separate PR later if this is merged, since behavior will vary greatly per node.

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/69
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-02-21 04:08:36 +00:00
Lera Elvoé
759f6eff73 attempt to fix scene preload hell (#70)
every now and then, opening the project in Godot would throw an error saying that `res://graph_node_renderer/graph_node_renderer.tscn` scene was corrupted and could not be opened. the scene would refuse to open in the editor, throwing the same error. however, the app ran, instantiating the scene like nothing was wrong. the error would sometimes go away after a few restarts.

after many hours of searching up about it, i think i identified the problem. that specific scene file has nothing actually corrupted about it, and deleting and re-adding it solved the problem until some other random next time it popped up. see the relevant issues on godot's github:

https://github.com/godotengine/godot/issues/85907
https://github.com/godotengine/godot/issues/79545
https://github.com/godotengine/godot/issues/70985

for the time being, i've replaced most relevant scene preloads with exports. hopefully it doesn't happen now.

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/70
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-02-21 01:11:26 +00:00
Lera Elvoé
34220c4ad1
add colors to ports depending on data type 2024-02-13 14:17:05 +03:00
Lera Elvoé
3378f41b75
add temporary null handling to variable viewer 2024-02-12 11:08:38 +03:00
Lera Elvoé
ca18e36fdc
fix deselect error when selecting the header in variable viewer 2024-02-12 10:47:26 +03:00
Lera Elvoé
51046034e4 fix crashes in add node menu with empty search results (#58)
fixes #54

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/58
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-01-25 07:36:21 +00:00
Lera Elvoé
d0313b9697 Twitch updates pt. 1 (#56)
- Add credential saving for Twitch
- Sync NoTwitch with upstream to allow for API and EventSub access
- Add Twitch Connected Account Info and Twitch Request User Info nodes

Co-authored-by: Eroax <eroaxe.business@gmail.com>
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/56
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-01-25 06:36:05 +00:00
Lera Elvoé
cb4a83a2f8 fix nodes resizing on port update (#55)
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/55
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-01-22 08:06:23 +00:00
Lera Elvoé
bb7b7d0adb capitalize categories properly in add node menu (#49)
closes #34

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/49
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-01-20 05:11:38 +00:00
Lera Elvoé
43cd05c79d Variable Viewer improvements (#47)
- Mark the active deck dirty on variable change
- disable editing array/dictionary columns' value displays in the variable viewer
- make selecting nothing in the variable tree more resilient

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/47
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-01-20 04:40:33 +00:00
Lera Elvoé
a3ceb54c48 fix closing tabs not showing the right content (#46)
fixes #43

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/46
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-01-20 04:01:26 +00:00
Lera Elvoé
b143c63dcc add a bottom dock (#44)
- moves the console to the new bottom dock
- adds a deck variables inspector to the bottom dock that allows adding, removing and editing variables of the currently open deck
- bottom dock can be opened with <kbd>N</kbd>

closes #33

Reviewed-on: https://codeberg.org/Eroax/StreamGraph/pulls/44
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-01-19 09:52:51 +00:00
Lera Elvoé
49582126c4 fix close crash (#40)
closes #39

Reviewed-on: https://codeberg.org/Eroax/StreamGraph/pulls/40
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-01-15 07:23:47 +00:00
Eroax
b8e65edcef Implement a temporary system for saving Credentials. (#38)
This handles adding the functionality for saving the Token and Channel for Twitch, as well as the Port and Password for OBS when handling connections.

Co-authored-by: Eroax <eroaxe.business@gmail.com>
Reviewed-on: https://codeberg.org/Eroax/StreamGraph/pulls/38
2024-01-15 05:35:16 +00:00
Lera Elvoé
4922f7cafe disconnect existing incoming connection when connecting another and refuse duplicate connections (#22)
fixes #17

Reviewed-on: https://codeberg.org/Eroax/StreamGraph/pulls/22
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2023-12-18 21:10:58 +00:00