#ifndef PKE_ECS_HPP #define PKE_ECS_HPP #include "dynamic-array.hpp" #include "macros.hpp" #include "memory.hpp" #include "glm/vec3.hpp" TypeSafeInt_H(EntityHandle, uint64_t, UINT64_MAX); extern DynArray EntitiesToBeRemoved; struct Entity { EntityHandle handle = EntityHandle{EntityHandle_T{0xFFFFFFFFFFFFFFFF}}; EntityHandle parentHandle = EntityHandle{EntityHandle_T{0xFFFFFFFFFFFFFFFF}}; bool isMarkedForRemoval = false; }; void ECS_Init(); void ECS_Tick(double delta); EntityHandle ECS_CreateEntity(EntityHandle parentEntityHandle = EntityHandle{EntityHandle_T{0xFFFFFFFFFFFFFFFF}}); void ECS_MarkForRemoval(EntityHandle entityHandle); #endif /* PKE_ECS_HPP */