Closes#59 by reworking Twitch Nodes to use the new Trigger workflow that allows inputs that trigger through Ports with Port.UsageType.BOTH as well the functionality for Port.UsageType.VALUE_REQUEST and Port.UsageType.TRIGGER.
Co-authored-by: Eroax <eroaxebusiness@duck>
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/82
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>
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/85907https://github.com/godotengine/godot/issues/79545https://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>
- 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>
- 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>
- 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>
when copying nodes, incoming and outgoing connections could be copied in such a way that they had (empty) entries in the outgoing/incoming connections dictionaries despite not being connected to anything
Reviewed-on: https://codeberg.org/Eroax/StreamGraph/pulls/42
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
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
After months of work and over a hundred commits on this repo alone (not to mention the old, half-working repos on GitHub), StreamGraph is finally ready to be shown to the public, even if in an incomplete state.
This PR is a culmination of numerous design discussions, re-writes, and hours spent by both @Eroax and myself.
Reviewed-on: https://codeberg.org/Eroax/StreamGraph/pulls/18
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>