From 294c85f91ac5b2ff9e4ad3d99588ed0d1a72e6b7 Mon Sep 17 00:00:00 2001 From: Jonathan Bradley Date: Tue, 9 Jan 2024 20:30:05 -0500 Subject: checkpoint - major ECS interface refactor --- src/ecs.hpp | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) (limited to 'src/ecs.hpp') diff --git a/src/ecs.hpp b/src/ecs.hpp index 4deacaf..567f6df 100644 --- a/src/ecs.hpp +++ b/src/ecs.hpp @@ -8,8 +8,8 @@ #include "glm/vec3.hpp" -extern DynArray EntitiesToBeRemoved; -extern DynArray EntitiesWithExcessInstances; +extern DynArray EntitiesToBeRemoved; +extern DynArray EntitiesWithExcessInstances; static struct { uint64_t Entity = 1ULL << 0; @@ -22,22 +22,21 @@ void ECS_Teardown(); void ECS_Tick_Early(double delta); void ECS_Tick(double delta); void ECS_Tick_Late(double delta); -EntityHandle ECS_CreateEntity(EntityHandle parentEntHandle = EntityHandle{}); -void ECS_MarkForRemoval(EntityHandle entHandle); -uint64_t ECS_GetEntities_BucketCount(); -Entity *ECS_GetEntities(uint64_t bucketIndex, uint64_t &itemCount); -void ECS_HandleCollision(EntityHandle lhs, EntityHandle rhs); +EntityHandle ECS_CreateEntity(Entity_Base *entity, Entity_Base *parentEnt = nullptr); +Entity_Base *ECS_GetEntity(EntityHandle handle); +void ECS_MarkForRemoval(Entity_Base *entity); -CompGrBinds &ECS_CreateGrBinds(EntityHandle entHandle); -CompGrBinds *ECS_GetGrBinds(EntityHandle entHandle); +void ECS_HandleCollision(Entity_Base *lhs, Entity_Base *rhs); + +CompGrBinds *ECS_CreateGrBinds(Entity_Base *); CompGrBinds *ECS_GetGrBinds(GrBindsHandle grBindsHandle); uint64_t ECS_GetGrBinds_BucketCount(); CompGrBinds *ECS_GetGrBinds(uint64_t bucketIndex, uint64_t &itemCount); -CompInstance &ECS_CreateInstance(EntityHandle entHandle, EntityHandle entityTypeEntityHandle); -CompInstance *ECS_GetInstance(EntityHandle entHandle); -void ECS_UpdateInstance(EntityHandle entHandle, const InstPos &instPos, bool overridePhysics = false); +CompInstance *ECS_CreateInstance(Entity_Base *entity, CompGrBinds *entityTypeGrBinds); +CompInstance *ECS_GetInstance(InstanceHandle instanceHandle); +void ECS_UpdateInstance(CompInstance *instance, const InstPos &instPos, bool overridePhysics = false); uint64_t ECS_GetInstances_BucketCount(); CompInstance *ECS_GetInstances(uint64_t bucketIndex, uint64_t &itemCount); -- cgit v1.2.3