CraterCrash / godot-orchestrator

Orchestrator: Unleashing Creativity with Visual Scripting
https://www.cratercrash.com/orchestrator
Apache License 2.0
956 stars 52 forks source link

Add a link graph node position setting #818

Open austinrdennis opened 2 days ago

austinrdennis commented 2 days ago

Description

I'd love to see a option in the right click menu to bind graph node positions together when multiple graph nodes are selected. This is an ergonomics/nice to have thing so that once you are happy with the relative positioning of a group of event nodes, you don't have to group select them all to move the group around.

The intended behavior would be that if I move one node when bound to one or more other nodes, all the nodes would move; just like what happens when multiple graph nodes are selected. I'd also like this behavior to apply to comments too. Ideally this would be hierarchical in the sense that a bound node group could be bound to another node group and then that mega group could be bound to a larger group, etc.

Implementation ideas

No response

Naros commented 1 day ago

So you can already do this with comment nodes, although it may not be well documented. If you double-click the comment node title bar, all nodes within the comment node's frame are selected, and moving the comment node will move all the nodes within the comment together.

There is a new GraphFrame implementation based on the "frame" concept in the Visual Shader that we'll be implementing soon, which should make this more prominent and easier to work with.

As for right-click and binding nodes, would you be opposed that doing that would construct a comment/frame node around the selected nodes?

austinrdennis commented 22 hours ago

Oh, I just tried that with a comment node and I like the way that works! I'll start using that immediately for my sanity.

That frame sounds like a really good solution to both define the exact confines of what is bound together visually and a easy thing to learn with with perhaps a "Graph Frame" node in the utilities list. I think I'd use frames in a lot of situations where I'd just have awkwardly blank comment nodes.

I can't speak for everyone of course, but I think the value is there for me personally in it's creation. Ideally it would work almost exactly how the comment node works now, but no title bar for the node and no properties in the inspector except background color. Just a rectangle that, when selected (LMB single click), selects all the nodes inside it.

Let me know what I can do to help. I'm not a C++ wiz, so a feature PR is probably a bit beyond me. I could definitely compile some test builds on MacOS and Linux and feature/bug test though.