mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-01-19 20:24:49 +00:00
clean up subscene load evaluators so that it doesn';t require a client if it's set to global
(allows spawnpoints to fill out prior to connections) also try and apply filtering prior to actual loading
This commit is contained in:
parent
e77c4b3a18
commit
a529e3ecc0
|
|
@ -202,15 +202,12 @@ void Scene::processTick()
|
|||
controlObj = gc->getCameraObject();
|
||||
}
|
||||
|
||||
if (controlObj != nullptr)
|
||||
{
|
||||
if (mSubScenes[i]->testBox(controlObj->getWorldBox()))
|
||||
if (mSubScenes[i]->testBox(controlObj != nullptr ? controlObj->getWorldBox() : Box3F::Zero))
|
||||
{
|
||||
//we have a client controlling object in the bounds, so we ensure the contents are loaded
|
||||
hasClients = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -214,10 +214,11 @@ bool SubScene::evaluateCondition()
|
|||
|
||||
bool SubScene::testBox(const Box3F& testBox)
|
||||
{
|
||||
if (mGlobalLayer)
|
||||
return true;
|
||||
bool passes = mGlobalLayer;
|
||||
|
||||
if (!passes)
|
||||
passes = getWorldBox().isOverlapped(testBox);
|
||||
|
||||
bool passes = getWorldBox().isOverlapped(testBox);
|
||||
if (passes)
|
||||
passes = evaluateCondition();
|
||||
return passes;
|
||||
|
|
@ -346,22 +347,22 @@ void SubScene::load()
|
|||
if (mSaving)
|
||||
return;
|
||||
|
||||
GameMode::findGameModes(mGameModesNames, &mGameModesList);
|
||||
if ((String(mGameModesNames).isNotEmpty() && mGameModesList.size() == 0) || !evaluateCondition())
|
||||
{
|
||||
mLoaded = false;
|
||||
return;
|
||||
}
|
||||
|
||||
_loadFile(true);
|
||||
mLoaded = true;
|
||||
|
||||
GameMode::findGameModes(mGameModesNames, &mGameModesList);
|
||||
|
||||
onLoaded_callback();
|
||||
for (U32 i = 0; i < mGameModesList.size(); i++)
|
||||
{
|
||||
mGameModesList[i]->onSubsceneLoaded_callback(this);
|
||||
}
|
||||
|
||||
if (!mOnLoadCommand.isEmpty())
|
||||
{
|
||||
String command = "%this = " + String(getIdString()) + "; " + mLoadIf + ";";
|
||||
Con::evaluatef(command.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
void SubScene::unload()
|
||||
|
|
|
|||
Loading…
Reference in a new issue