Add a way to refer back to a common deep ancestor 🦑#5534
Closed
nicopap wants to merge 1 commit intobevyengine:mainfrom
Closed
Add a way to refer back to a common deep ancestor 🦑#5534nicopap wants to merge 1 commit intobevyengine:mainfrom
nicopap wants to merge 1 commit intobevyengine:mainfrom
Conversation
c7965e8 to
33b0a4b
Compare
Contributor
tryBuild failed: |
Contributor
Author
|
bors try |
Contributor
33b0a4b to
e514c80
Compare
This allows querying for a potentially far-off ancestor in the bevy hierarchy with the `Ancestor` component. It's a very simple system that recursively traverse the children of an entity marked with a `MarkDescendants` component, and adds a `Ancestor` component to entities that comply to a rule provided in the `MarkDescendants` component. drawbacks: - It is not "smart", it's just a one-off event that generates the components once. No dynamically updating the `Ancestor` component to account for runtime changes to the hierarchy. - It requires an exclusive system. An alternative design could be providing a generic system and letting the user add the system with their prefered query filter. - Users need to add the `mark_descendants` system themselves.
e514c80 to
f4e4d42
Compare
3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
This allows querying for a potentially far-off ancestor in the bevy
hierarchy with the
Ancestorcomponent.Motivation
I found myself needing such components a lot in #5378,
I think it might also have a few other applications.
Solution
It's a very simple system that recursively traverse the children of an
entity marked with a
MarkDescendantscomponent, and adds aAncestorcomponent to entities that comply to a rule provided in the
MarkDescendantscomponent.drawbacks:
components once. No dynamically updating the
Ancestorcomponentto account for runtime changes to the hierarchy.
providing a generic system and letting the user add the system with
their prefered query filter.
mark_descendantssystem themselves.Changelog
MarkDescendantsandAncestorcomponents to make deep hierarchical relations easier to handle