diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2025-03-31 12:02:44 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2025-03-31 12:02:44 -0400 |
| commit | 89614d1dee1049a08e64aead95de6fb28fa7b150 (patch) | |
| tree | 77e59a92c370154d7b7d859506e570a1fffd66c3 /src/entities.cpp | |
| parent | 119c83096a81c5aef45a0dbef029bd2e49d2e977 (diff) | |
pke: parse uuid from scene and project files
Diffstat (limited to 'src/entities.cpp')
| -rw-r--r-- | src/entities.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/entities.cpp b/src/entities.cpp index 1691986..0ab040c 100644 --- a/src/entities.cpp +++ b/src/entities.cpp @@ -31,22 +31,28 @@ void EntityType_Init() { Buckets_Init(EntityType_BC); } -EntityType *EntityType_Create() { +EntityType *EntityType_Create(pk_uuid uuid) { EntityTypeHandle entTypeHandle{Buckets_NewHandle(EntityType_BC)}; EntityType &entityType = EntityType_BC.buckets[entTypeHandle.bucketIndex][entTypeHandle.itemIndex]; new (&entityType) EntityType{}; + entityType.uuid = uuid; ECS_CreateEntity(&entityType); return &entityType; } Entity_Base *EntityType_CreateGenericInstance(EntityType *et, Entity_Base *levelEnt, CompInstance *srcInstance, InstPos *instPos) { assert(et != nullptr); + pk_uuid uuid = pk_uuid_zed; Entity_Base *genericEntity = ECS_CreateGenericEntity(); ECS_CreateEntity(genericEntity, levelEnt); + if (srcInstance != nullptr) { + uuid = srcInstance->uuid; + } + for (int64_t i = 0; i < et->detailsCount; ++i) { auto &etd = et->details[i]; - auto *compInst = ECS_CreateInstance(genericEntity, etd.grBinds); + auto *compInst = ECS_CreateInstance(genericEntity, uuid, etd.grBinds); btVector3 scaling{1.f,1.f,1.f}; btTransform posRot{}; |
