69 void async_create_entity(const
std::function<
void()>& aCreator) override;
70 void commit_async_entity_creation() override;
71 void destroy_entity(
entity_id aEntityId,
bool aNotify = true) override;
72 void async_destroy_entity(
entity_id aEntityId,
bool aNotify = true) override;
73 void commit_async_entity_destruction() override;
75 bool run_threaded(const
system_id& aSystemId) const override;
76 bool all_systems_paused() const override;
77 void pause_all_systems() override;
78 void resume_all_systems() override;
80 const archetype_registry_t& archetypes() const override;
81 archetype_registry_t& archetypes() override;
82 const component_factories_t& component_factories() const override;
83 component_factories_t& component_factories() override;
84 const components_t& components() const override;
85 components_t& components() override;
86 const shared_component_factories_t& shared_component_factories() const override;
87 shared_component_factories_t& shared_component_factories() override;
88 const shared_components_t& shared_components() const override;
89 shared_components_t& shared_components() override;
90 const system_factories_t& system_factories() const override;
91 system_factories_t& system_factories() override;
92 const systems_t& systems() const override;
93 systems_t& systems() override;
97 bool component_instantiated(
component_id aComponentId) const override;
100 bool shared_component_instantiated(
component_id aComponentId) const override;
103 bool system_instantiated(
system_id aSystemId) const override;
114 void register_component(
component_id aComponentId, component_factory aFactory) override;
115 bool shared_component_registered(
component_id aComponentId) const override;
116 void register_shared_component(
component_id aComponentId, shared_component_factory aFactory) override;
117 bool system_registered(
system_id aSystemId) const override;
118 void register_system(
system_id aSystemId, system_factory aFactory) override;
128 using
i_ecs::create_entity;
130 using
i_ecs::populate;
131 using
i_ecs::populate_shared;
132 using
i_ecs::component_instantiated;
134 using
i_ecs::shared_component_instantiated;
136 using
i_ecs::system_instantiated;
139 using
i_ecs::component_registered;
140 using
i_ecs::register_component;
141 using
i_ecs::shared_component_registered;
142 using
i_ecs::register_shared_component;
143 using
i_ecs::system_registered;
144 using
i_ecs::register_system;
149 archetype_registry_t iArchetypeRegistry;
150 component_factories_t iComponentFactories;
151 mutable components_t iComponents;
153 shared_component_factories_t iSharedComponentFactories;
154 mutable shared_components_t iSharedComponents;
155 system_factories_t iSystemFactories;
156 mutable systems_t iSystems;
165 std::atomic<
bool> iSystemsPaused;