godotengine / godot-proposals

Godot Improvement Proposals (GIPs)
MIT License
1.16k stars 97 forks source link

Make visual shader expression node input/outputs reordable #3783

Open Xyotic opened 2 years ago

Xyotic commented 2 years ago

Describe the project you are working on

3D dungeon keeper like game

Describe the problem or limitation you are having in your project

When creating big shaders in VisualShader Editor it can be pretty tedious to reorder the in- and outputs of Expression nodes. Example: grafik Here I'd like to move "mask" at the top of the Expression node to untangle some of the connections. But at the same time I want to keep the order of the other nodes. In this case I have to replace every input one by one...

Describe the feature / enhancement and how it helps to overcome the problem or limitation

Add a drag&drop function to the in- and outputs of the Expression nodes

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

It could work like PrimeNG does it for lists. Via a reorder icon: grafik

If this enhancement will not be used often, can it be worked around with a few lines of script?

Only workaround is to rename every input/output one by one which is tedious.

Is there a reason why this should be core and not an add-on in the asset library?

Would be a big quality of life feature out of the box.

Chaosus commented 2 years ago

Not sure whether it's easy to implement a custom drag & drop of HBoxContainer's inside a node of GraphEdit, I may try to test it someday.