Load meshes immediately
This commit is contained in:
@@ -271,10 +271,26 @@ void SceneSerializer::deserializeRenderable(flecs::entity entity, const nlohmann
|
||||
RenderableComponent renderable;
|
||||
renderable.meshName = json.value("meshName", "");
|
||||
renderable.visible = json.value("visible", true);
|
||||
|
||||
// Don't create the Ogre::Entity here - it will be created when mesh is loaded
|
||||
renderable.entity = nullptr;
|
||||
|
||||
// Load the mesh immediately if mesh name is provided
|
||||
if (!renderable.meshName.empty() && entity.has<TransformComponent>()) {
|
||||
auto& transform = entity.get_mut<TransformComponent>();
|
||||
if (transform.node) {
|
||||
try {
|
||||
renderable.entity = m_sceneMgr->createEntity(renderable.meshName);
|
||||
transform.node->attachObject(renderable.entity);
|
||||
renderable.entity->setVisible(renderable.visible);
|
||||
} catch (const Ogre::Exception& e) {
|
||||
// Mesh not found - entity will be created but without mesh
|
||||
// User can load mesh manually later
|
||||
Ogre::LogManager::getSingleton().logMessage(
|
||||
"Warning: Failed to load mesh '" + renderable.meshName +
|
||||
"' for entity: " + e.getDescription());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
entity.set<RenderableComponent>(renderable);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user