Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Objective
Replace the UI's ghost node implementation with a trait that can be used with any hierarchy, not just UI
Node
s.Solution
Make
GhostNode
into a trait with anActual
associated type.GhostNode
should be implemented on a marker component that must be inserted on every entity in the collapsible hierarchy.The flattened view of the hierarchy sees only those nodes with an
Actual
component.The UI specfic parts of the old ghost nodes implementation and the feature gate have been moved to a new module named
navigation
.The marker component that implements
GhostNode
is calledUiNode
and the associatedActual
type isNode
.Node
requiresUiNode
.The navigation
SystemParam
s are mostly unchanged except for some renamings:iter_ui_children
->iter_actual_children
is_ui_node
->is_actual
Migration Guide