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 GetComponentReflectionDataFn = Grindstone::Reflection::TypeDescriptor_Struct(*)();
15 using TryGetComponentFn = bool(*)(entt::registry&, entt::entity, void*& outEntity);
16 using HasComponentFn = bool(*)(entt::registry&, entt::entity);
17 using CreateComponentFn = void*(*)(entt::registry&, entt::entity);
18 using RemoveComponentFn = void(*)(entt::registry&, entt::entity);
19 using CopyRegistryComponentsFn = void(*)(WorldContextSet& dst, WorldContextSet& src);
20
22 public:
23 SetupComponentFn SetupComponentFn = nullptr;
24 DestroyComponentFn DestroyComponentFn = nullptr;
25 CreateComponentFn CreateComponentFn = nullptr;
26 RemoveComponentFn RemoveComponentFn = nullptr;
27 HasComponentFn HasComponentFn = nullptr;
28 TryGetComponentFn TryGetComponentFn = nullptr;
29 GetComponentReflectionDataFn GetComponentReflectionDataFn = nullptr;
30 CopyRegistryComponentsFn CopyRegistryComponentsFn = nullptr;
31 };
32 }
33}
Definition ComponentFunctions.hpp:21
Definition WorldContextSet.hpp:11