allow directly creating an entity and setting transform

This commit is contained in:
Nick Fisher
2025-05-24 16:33:58 +08:00
parent 75a9950909
commit 1e812ebe93
5 changed files with 96 additions and 30 deletions

View File

@@ -183,6 +183,12 @@ namespace thermion
return reinterpret_cast<TLightManager *>(&lightManager);
}
EMSCRIPTEN_KEEPALIVE TEntityManager *Engine_getEntityManager(TEngine *tEngine) {
auto *engine = reinterpret_cast<Engine *>(tEngine);
auto &entityManager = engine->getEntityManager();
return reinterpret_cast<TEntityManager *>(&entityManager);
}
EMSCRIPTEN_KEEPALIVE TCamera *Engine_createCamera(TEngine *tEngine)
{
auto *engine = reinterpret_cast<Engine *>(tEngine);
@@ -404,6 +410,11 @@ namespace thermion
engine->destroy(indirectLight);
}
EMSCRIPTEN_KEEPALIVE EntityId EntityManager_createEntity(TEntityManager *tEntityManager) {
auto entityManager = reinterpret_cast<utils::EntityManager *>(tEntityManager);
auto entity = entityManager->create();
}
#ifdef __cplusplus
}
}

View File

@@ -168,4 +168,14 @@ extern "C"
return Entity::smuggle(parent);
}
EMSCRIPTEN_KEEPALIVE void TransformManager_createComponent(TTransformManager *tTransformManager, EntityId entityId) {
auto tm = reinterpret_cast<TransformManager *>(tTransformManager);
auto entity = Entity::import(entityId);
if(tm->hasComponent(entity)) {
Log("Entity already has transform component");
return;
}
tm->create(entity);
}
}