summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2023-09-06 12:59:19 -0400
committerJonathan Bradley <jcb@pikum.xyz>2023-09-06 17:24:27 -0400
commit8f89b7146db95fb0613683fa8d1e89ed3db1f167 (patch)
treeb2d4facf24def7cd202cbee2f11b3607476e9cc8 /src
parentdfb7067d77eaa7191295d8d223846edbe0f654a9 (diff)
expose entities themselves
Diffstat (limited to 'src')
-rw-r--r--src/ecs.cpp9
-rw-r--r--src/ecs.hpp2
2 files changed, 11 insertions, 0 deletions
diff --git a/src/ecs.cpp b/src/ecs.cpp
index 14f19c2..25dcb45 100644
--- a/src/ecs.cpp
+++ b/src/ecs.cpp
@@ -35,6 +35,15 @@ void ECS_Init() {
Buckets_Init(Comp_Instance_BucketContainer);
}
+uint64_t ECS_GetEntities_BucketCount() {
+ return Entities_BucketContainer.bucketCounter;
+}
+Entity *ECS_GetEntities(uint64_t bucketIndex, uint64_t &itemCount) {
+ assert(bucketIndex <= Entities_BucketContainer.bucketCounter);
+ itemCount = bucketIndex == Entities_BucketContainer.bucketCounter ? Entities_BucketContainer.itemCounter : maxBucketItemCount;
+ return Entities_BucketContainer.buckets[bucketIndex].entities;
+}
+
EntityHandle ECS_CreateEntity_Inner(EntityHandle parentEntHandle) {
EntityHandle_T entityHandle_T{Buckets_NewHandle<EntityBucket>(maxBucketItemCount, Entities_BucketContainer)};
EntityHandle entityHandle{entityHandle_T};
diff --git a/src/ecs.hpp b/src/ecs.hpp
index baebef3..1dd8d57 100644
--- a/src/ecs.hpp
+++ b/src/ecs.hpp
@@ -19,6 +19,8 @@ void ECS_Init();
void ECS_Tick(double delta);
EntityHandle ECS_CreateEntity(EntityHandle parentEntHandle = EntityHandle{EntityHandle_T{0xFFFFFFFFFFFFFFFF}});
void ECS_MarkForRemoval(EntityHandle entHandle);
+uint64_t ECS_GetEntities_BucketCount();
+Entity *ECS_GetEntities(uint64_t bucketIndex, uint64_t &itemCount);
CompGrBinds &ECS_CreateGrBinds(EntityHandle entHandle);
CompGrBinds *ECS_GetGrBinds(EntityHandle entHandle);