Grindstone Game Engine v0.2.0
An open source game engine and toolkit.
Loading...
Searching...
No Matches
ComponentFunctions.hpp
1#pragma once
2
3#include <entt/entt.hpp>
4#include "EngineCore/ECS/Entity.hpp"
5#include "EngineCore/Reflection/TypeDescriptorStruct.hpp"
6using namespace Grindstone;
7
8namespace Grindstone {
9 class WorldContextSet;
10
11 namespace ECS {
12 using SetupComponentFn = void(*)(Grindstone::WorldContextSet&, entt::entity);
13 using DestroyComponentFn = void(*)(Grindstone::WorldContextSet&, entt::entity);
14 using ClearComponentsFn = void(*)(Grindstone::WorldContextSet&);
15 using GetComponentReflectionDataFn = Grindstone::Reflection::TypeDescriptor_Struct(*)();
16 using TryGetComponentFn = bool(*)(entt::registry&, entt::entity, void*& outEntity);
17 using HasComponentFn = bool(*)(entt::registry&, entt::entity);
18 using CreateComponentFn = void*(*)(entt::registry&, entt::entity);
19 using RemoveComponentFn = void(*)(entt::registry&, entt::entity);
20 using CopyRegistryComponentsFn = void(*)(WorldContextSet& dst, WorldContextSet& src);
21
23 public:
24 SetupComponentFn SetupComponentFn = nullptr;
25 DestroyComponentFn DestroyComponentFn = nullptr;
26 ClearComponentsFn ClearComponentsFn = nullptr;
27 CreateComponentFn CreateComponentFn = nullptr;
28 RemoveComponentFn RemoveComponentFn = nullptr;
29 HasComponentFn HasComponentFn = nullptr;
30 TryGetComponentFn TryGetComponentFn = nullptr;
31 GetComponentReflectionDataFn GetComponentReflectionDataFn = nullptr;
32 CopyRegistryComponentsFn CopyRegistryComponentsFn = nullptr;
33 };
34 }
35}
Definition ComponentFunctions.hpp:22
Definition WorldContextSet.hpp:11