-
-
Notifications
You must be signed in to change notification settings - Fork 4.5k
Move bevy_hierarchy back into bevy_ecs #15308
Copy link
Copy link
Closed
Labels
A-ECSEntities, components, systems, and eventsEntities, components, systems, and eventsC-Code-QualityA section of code that is hard to understand or changeA section of code that is hard to understand or changeD-ModestA "normal" level of difficulty; suitable for simple features or challenging fixesA "normal" level of difficulty; suitable for simple features or challenging fixesM-Migration-GuideA breaking change to Bevy's public API that needs to be noted in a migration guideA breaking change to Bevy's public API that needs to be noted in a migration guideX-BlessedHas a large architectural impact or tradeoffs, but the design has been endorsed by decision makersHas a large architectural impact or tradeoffs, but the design has been endorsed by decision makers
Description
What problem does this solve or what need does it fill?
bevy_hierarchy is in an uncomfortable place: technically existing outside of bevy_ecs, but in practice generally privileged by the ecosystem.
One day (🥺), #3742 will replace bevy_hierarchy completely, allowing for generalized relations in a more robust fashion. This needs to be part of bevy_ecs, so bevy_hierarchy's days are numbered.
What solution would you like?
- Move the core parent-child components and logic to
bevy_ecs. - Feature flag this under an on-by-default
hierarchyflag. - Move any transform propagation logic to
bevy_transform. - Move any visibility propagation logic to
bevy_render.
As follow-up, consider changing the default despawn behavior to act recursively.
What alternative(s) have you considered?
We could leave this alone, but this is causing problems when trying to tackle how #11090 interacts with hierarchies.
Additional context
Desired by @mockersf (maintainer), @maniwani (SME-ECS) and myself (SME-ECS and maintainer).
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
A-ECSEntities, components, systems, and eventsEntities, components, systems, and eventsC-Code-QualityA section of code that is hard to understand or changeA section of code that is hard to understand or changeD-ModestA "normal" level of difficulty; suitable for simple features or challenging fixesA "normal" level of difficulty; suitable for simple features or challenging fixesM-Migration-GuideA breaking change to Bevy's public API that needs to be noted in a migration guideA breaking change to Bevy's public API that needs to be noted in a migration guideX-BlessedHas a large architectural impact or tradeoffs, but the design has been endorsed by decision makersHas a large architectural impact or tradeoffs, but the design has been endorsed by decision makers