Added recursive scanning for utilized assets on any object within the scene, soas to catch objects in simgroups or parented

Disabled initial materialSlot fill-out until logic for looking up assetName from material list name can be done to avoid 'unable to find assetid' spam
Added function to SimGroup to easily acquire child object by index
Some minor cleanup of commented lines in asset browser
Fixed forward/backward navigation arrow behavior in asset browser
Fixed double-click navigation when the AB is in select mode
Fixed erroneous 'could not acquire asset' messages when navigating folders in AB
Added editor setting for UseGroupSnap snap option and integrated it into the UI interface
Removed some duplicate settings from the EditorSettingsWindow
This commit is contained in:
Areloch 2020-09-02 01:26:43 -05:00
parent 82f7db3d48
commit 0b954459a3
14 changed files with 102 additions and 57 deletions

View file

@ -253,9 +253,9 @@ bool Scene::saveScene(StringTableEntry fileName)
//Next, lets build out our
Vector<StringTableEntry> utilizedAssetsList;
for (U32 i = 0; i < mPermanentObjects.size(); i++)
for (U32 i = 0; i < size(); i++)
{
mPermanentObjects[i]->getUtilizedAssets(&utilizedAssetsList);
getUtilizedAssetsFromSceneObject(getObject(i), &utilizedAssetsList);
}
for (U32 i = 0; i < utilizedAssetsList.size(); i++)
@ -268,6 +268,27 @@ bool Scene::saveScene(StringTableEntry fileName)
return saveSuccess;
}
void Scene::getUtilizedAssetsFromSceneObject(SimObject* object, Vector<StringTableEntry>* usedAssetsList)
{
SceneObject* obj = dynamic_cast<SceneObject*>(object);
if(obj)
obj->getUtilizedAssets(usedAssetsList);
SimGroup* group = dynamic_cast<SimGroup*>(object);
if (group)
{
for (U32 c = 0; c < group->size(); c++)
{
SceneObject* childObj = dynamic_cast<SceneObject*>(group->getObject(c));
if (childObj)
childObj->getUtilizedAssets(usedAssetsList);
//Recurse down
getUtilizedAssetsFromSceneObject(childObj, usedAssetsList);
}
}
}
//
Vector<SceneObject*> Scene::getObjectsByClass(String className, bool checkSubscenes)
{