-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Open
Labels
A-ECSEntities, components, systems, and eventsEntities, components, systems, and eventsC-Tracking-IssueAn issue that collects information about a broad development initiativeAn issue that collects information about a broad development initiativeX-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
This issue does not exist to argue the merits of Resources as Components, for some of the rationale we refer to this HackMD (this really should've been an RFC, huh?). This issue exists to track the progress on implementation and to reference in code when it is only partially working. If there are steps you feel like should be added, or if there are problems with this approach, please let me know.
Implementation Plan
This is a tracking issue for the Resources as Components. This outline is roughly copied from #17485.
- Introduce Internal Entities, entities that are difficult to query, with the intend to make resource entities internal (Internal Entities #20204).
- Test robustness, to be less reliant on specific entity counts (Improve test robustness #20248, Adjust benches to be more robust #20207) . We deprecate
world.iter_entities()
andworld._iter_entities_mut()
as part of that effort Deprecateiter_entities
anditer_entities_mut
#20260. - Store Resource behind a
ResourceComponent
, removingworld.storages.resources
Store resources as components on singleton entities (v2) #21346. - (re-)Enable reflect auto-registration for
ResourceComponent<SomeResource>
. - Remove
clear_entities
in favor ofclear_all
. - Remove all of the resource internals (before this, they're marked with expect(dead_code)).
- Look into a
#[maybe_entities]
tag forMapEntities
so you can implement it for generic types. - Remove or shrink ReflectResource.
- Eliminate
resources
fromAccess
. - Remove resources from
bevy_scene
. - Start removing non-send resources (PLAN STILL NEEDED).
Metadata
Metadata
Assignees
Labels
A-ECSEntities, components, systems, and eventsEntities, components, systems, and eventsC-Tracking-IssueAn issue that collects information about a broad development initiativeAn issue that collects information about a broad development initiativeX-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