godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
90.1k stars 21.15k forks source link

Node assignment popup shows both disabled and invalid nodes in gray, making valid selection confusing #73642

Open hsandt opened 1 year ago

hsandt commented 1 year ago

Godot version

v4.0.rc2.official [d2699dc7a]

System information

Linux Ubuntu 20.04 with Unity desktop

Issue description

When picking a node in the "Select a Node" popup, invalid nodes (not matching field type) are shown in grey.

The problem is, disabled nodes are also shown in grey. So when selecting such a node, you must try and click grey nodes and hope they are valid anyway.

image

Above, the selected node is valid, but in grey.

I suppose valid disabled nodes should exceptionally be shown in white (or yet another color?).

Steps to reproduce

  1. Add any node that references another one of a certain type T, such as AnimationTree, to the scene
  2. Add a mix of other nodes of correct type (T) and incorrect types (not T nor subclassing T), such as AnimationPlayer. Disable at least one node of correct type with Inspector > scroll to bottom > Node > Process > Mode > set to Disabled
  3. Go back to the first node (AnimationTree) and click on Assign... on the node to assign (here, Anim Player).
  4. Observe the popup. Valid disabled nodes are shown in grey, but you can select them.

Minimal reproduction project

N/A

synalice commented 11 months ago

@Calinou, I think this issue can be safely closed.

In v4.2.beta6.official [64150060f] it only shows the nodes that are of the correct type. So it's immediately obvious why something is colored gray.

image

hsandt commented 8 months ago

Indeed, it's clearer now.

There are still two exceptions: a. parent nodes which must be shown in the hierarchy even if they don't have a compatible type b. when Show All is on, all nodes are shown as in previous versions, so once again disabled nodes are mixed with incompatible nodes - but at least this only happens when user really wants to display them all

I'm more concerned about a. for consistency (in my use case it's pretty clear what is a parent and what is a compatible node, so it's not a real issue but I see how it could become one in a more complex hierarchy with custom scripts without custom icons), so I'll let the editor devs decide if this is still an issue and if so, how we could distinguish the two states.