summaryrefslogtreecommitdiff
path: root/src/ecs.hpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2024-01-09 20:30:05 -0500
committerJonathan Bradley <jcb@pikum.xyz>2024-01-10 11:30:41 -0500
commit294c85f91ac5b2ff9e4ad3d99588ed0d1a72e6b7 (patch)
treea92c28661e1ab4b15a9ac9e52816cc6a4c2d7b95 /src/ecs.hpp
parent0a382e78b6cbc77156d78df4e7b0c2854cbb0cd1 (diff)
checkpoint - major ECS interface refactor
Diffstat (limited to 'src/ecs.hpp')
-rw-r--r--src/ecs.hpp23
1 files changed, 11 insertions, 12 deletions
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<EntityHandle> EntitiesToBeRemoved;
-extern DynArray<EntityHandle> EntitiesWithExcessInstances;
+extern DynArray<Entity_Base *> EntitiesToBeRemoved;
+extern DynArray<Entity_Base *> 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);