godotengine / godot-proposals

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

Implement coloring nodes in the Scene tree dock (similar to folders in the FileSystem dock) #8118

Open peterhoglund opened 1 year ago

peterhoglund commented 1 year ago

Describe the project you are working on

Game

Describe the problem or limitation you are having in your project

In some scenes, the node tree can grow and become large and complex and thus hard to get an overview of.

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

Just like the new feature in 4.2 where you can mark folders in the FileSystem dock with different colors, you can mark nodes in the Scene dock with colors. It will help organize complex scenes and provide a better overview.

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

The feature will work exactly like the FileSystem feature.

  1. Add a new option to the right-click menu for nodes in the tree, "Set node color >" which leads to a list of colors (same colors as in FileSystem)
  2. The node row background is tinted with the color
  3. If there are subnodes the subnodes are also tinted but in a slightly different shade
image

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

-

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

I don't think you could do this type of manipulation to the Scene dock with a plugin.

MIfoodie commented 11 months ago

@peterhoglund said:

In some scenes, the node tree can grow and become large and complex and thus hard to get an overview of.

I don't know how useful changing the color of any node would be because in GoDot, the workflow many people use is to create smaller scenes for small parts of your project and add all the scenes together in one big scene.

Using this workflow, it would only make sense for you to be able to recolor scenes in the file browser because you won't have a ton of duplicate node types in each scene.

Torguen commented 10 months ago

I was looking for this for 3.6 but I guess it is not possible, there is not even a plugin or something that allows coloring the node name. In my case I simply want to color it because the node has important information in its "Editor description" section.

Mickeon commented 10 months ago

For your case it does highlight an unrelated issue. That is, Nodes with editor descriptions are fairly difficult to spot on a glance.

dzil123 commented 3 months ago

I wrote a plugin to do this in Godot 4.x: https://github.com/dzil123/godot_scenetree_color_nodes It only sets the color of a single node, not all descendants, but it could be easily modified to add that feature.

jimmygm commented 2 months ago

@peterhoglund said:

In some scenes, the node tree can grow and become large and complex and thus hard to get an overview of.

I don't know how useful changing the color of any node would be because in GoDot, the workflow many people use is to create smaller scenes for small parts of your project and add all the scenes together in one big scene.

Using this workflow, it would only make sense for you to be able to recolor scenes in the file browser because you won't have a ton of duplicate node types in each scene.

While this is true, sometimes you are forced to add a lot of nodes to a scene, like for example with nodes related to UI. Sometimes you have like several margin containers, boxes, labels, etc... and it's not clear what are the main nodes which should have your attention.

image

Sometimes it's not easy to spot a specific node because it's around other nodes of the same icon color (Blue, Red, Green)

image

Or the other way around, the node is around other nodes of different icon colors, but together, they serve a single purpose.

image

So for visual people like me, it would help me a lot, just like the colors in the folders did.

I would appreciate anyone agreeing with my comment to instead like the proposal, as this is the intended way to increase its popularity, thank you.