Merge branch 'main' into PlayerController

This commit is contained in:
Glence 2022-11-23 17:07:53 +08:00
commit 3dfa3c050a
4 changed files with 16 additions and 5 deletions

View File

@ -44,8 +44,6 @@ namespace Sandbox
{ {
sceneName = SHSerialization::DeserializeSceneFromFile(sceneAssetID); sceneName = SHSerialization::DeserializeSceneFromFile(sceneAssetID);
#ifndef SHEDITOR
auto* physicsSystem = SHSystemManager::GetSystem<SHPhysicsSystem>(); auto* physicsSystem = SHSystemManager::GetSystem<SHPhysicsSystem>();
if (!physicsSystem) if (!physicsSystem)
{ {
@ -53,6 +51,12 @@ namespace Sandbox
return; return;
} }
#ifdef SHEDITOR
physicsSystem->ForceBuild(SHSceneManager::GetCurrentSceneGraph());
#else
physicsSystem->BuildScene(SHSceneManager::GetCurrentSceneGraph()); physicsSystem->BuildScene(SHSceneManager::GetCurrentSceneGraph());
#endif #endif

View File

@ -69,7 +69,8 @@ namespace SHADE
if (gfxSystem) if (gfxSystem)
{ {
auto WND = gfxSystem->GetWindow(); auto WND = gfxSystem->GetWindow();
return WND->Close(); if (WND)
WND->Destroy();
} }
SHLOG_WARNING("[SHGraphicsSystemInterface] Failed to close window."); SHLOG_WARNING("[SHGraphicsSystemInterface] Failed to close window.");

View File

@ -188,6 +188,13 @@ namespace SHADE
objectManager.UpdateCommands(); objectManager.UpdateCommands();
} }
void SHPhysicsSystem::ForceBuild(SHSceneGraph& sceneGraph)
{
// HACK: Band-aid fix. To be removed.
objectManager.UpdateCommands();
}
void SHPhysicsSystem::ForceUpdate() void SHPhysicsSystem::ForceUpdate()
{ {
if (!worldState.world) if (!worldState.world)
@ -419,7 +426,6 @@ namespace SHADE
for (size_t i = 0; i < COLLIDER->GetCollisionShapes().size(); ++i) for (size_t i = 0; i < COLLIDER->GetCollisionShapes().size(); ++i)
objectManager.AddCollisionShape(EID, i); objectManager.AddCollisionShape(EID, i);
} }
}; };
//////////////////////////////// ////////////////////////////////

View File

@ -78,9 +78,9 @@ namespace SHADE
void Exit () override; void Exit () override;
void BuildScene (SHSceneGraph& sceneGraph); void BuildScene (SHSceneGraph& sceneGraph);
void ForceBuild (SHSceneGraph& sceneGraph);
void ForceUpdate (); void ForceUpdate ();
/** /**
* @brief Casts a ray into the world. * @brief Casts a ray into the world.
* @param ray The ray to cast. * @param ray The ray to cast.