summaryrefslogtreecommitdiff
path: root/src/ecs.cpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-05-20 21:08:19 -0400
committerJonathan Bradley <jcb@pikum.xyz>2025-05-20 21:08:19 -0400
commit40d69e7e40a18865a31af2f55efcde369d36dbbb (patch)
tree95a2cbbe40192183d13f846f3444b32d7e12b0e8 /src/ecs.cpp
parentead9e484db969a880470d625b1884aced296e722 (diff)
pke: serialization overhaul + embedded assets
Diffstat (limited to 'src/ecs.cpp')
-rw-r--r--src/ecs.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/ecs.cpp b/src/ecs.cpp
index d029b18..9d0245e 100644
--- a/src/ecs.cpp
+++ b/src/ecs.cpp
@@ -105,6 +105,16 @@ Entity_Base *ECS_GetEntity(EntityHandle handle) {
return ecs.bc.entityPtrs[handle];
}
+Entity_Base *ECS_GetEntityByUUID(pk_uuid uuid) {
+ for (pk_handle_bucket_index_T b = 0; b <= ecs.bc.entityPtrs.pkeHandle.bucketIndex; ++b) {
+ for (pk_handle_item_index_T i = 0; i < ecs.bc.entityPtrs.pkeHandle.itemIndex; ++i) {
+ Entity_Base *bs = ecs.bc.entityPtrs.buckets[b][i];
+ if (bs->uuid == uuid) return bs;
+ }
+ }
+ return nullptr;
+}
+
void ECS_MarkForRemoval(Entity_Base *entity) {
assert(entity->handle != EntityHandle_MAX && "Attempting to remove invalid entity");
assert(entity->isMarkedForRemoval == false && "Entity already marked for removal");