20 template<
typename ComponentType>
21 void RegisterComponent(SetupComponentFn setupComponentFn =
nullptr, DestroyComponentFn destroyComponentFn =
nullptr) {
23 ComponentType::GetComponentHashString(),
27 &ECS::CreateComponent<ComponentType>,
28 &ECS::RemoveComponent<ComponentType>,
29 &ECS::HasComponent<ComponentType>,
30 &ECS::TryGetComponent<ComponentType>,
31 &ECS::GetComponentReflectionData<ComponentType>,
32 &ECS::CopyRegistryComponents<ComponentType>
37 template<
typename ComponentType>
38 void UnregisterComponent() {
41 if (worldContextManager !=
nullptr) {
43 entt::registry& registry = worldContext.Get()->GetEntityRegistry();
44 registry.clear<ComponentType>();
48 auto comp = componentFunctionsList.find(ComponentType::GetComponentHashString());
49 if (comp != componentFunctionsList.end()) {
50 componentFunctionsList.erase(comp);
70 using ComponentMap = std::unordered_map<Grindstone::HashedString, ComponentFunctions>;
71 virtual ComponentMap::iterator begin();
72 virtual ComponentMap::const_iterator begin()
const;
73 virtual ComponentMap::iterator end();
74 virtual ComponentMap::const_iterator end()
const;
76 ComponentMap componentFunctionsList;
Definition WorldContextManager.hpp:12
Definition WorldContextSet.hpp:11