Torque3D/Templates/BaseGame/game/tools/assetBrowser/scripts/looseFileAudit.cs
Areloch 9c381caea2 Added initial implement of Image Types for GFX resource management
Added logic to intercept TSStatic setting shape to try and utilize a shapeAsset if it can find a matching loose file
Added lookup logic for getting any textures inside collada files to streamline asset importing logic
Fixed modal behavior for Import config and import window
Initial implementation of loose file/legacy file importing
Adjusted Asset Browser and Asset Import refreshing behavior to queue to improve performance by avoiding multiple refreshes as well as potential infinite loops
Fixed volume visibility behavior
Fixed physics world viz toggle
2020-02-17 00:32:50 -06:00

310 lines
9.1 KiB
C#

function LooseFileAuditWindow::buildPopupMenus(%this)
{
//
// Import Asset Actions
//
//done with any valid image format file
if( !isObject( ImageLooseFilePopup ) )
{
%this.ImportAssetActions = new PopupMenu( ImageLooseFilePopup )
{
superClass = "MenuBuilder";
class = "EditorWorldMenu";
item[0] = "Make an Image Asset" TAB "" TAB "LooseFileAuditWindow.importImage();";
};
}
//Done with .cs files
if( !isObject( ScriptLooseFilePopup ) )
{
%this.ImportAssetActions = new PopupMenu( ScriptLooseFilePopup )
{
superClass = "MenuBuilder";
class = "EditorWorldMenu";
item[0] = "Make a Script Asset" TAB "" TAB "LooseFileAuditWindow.importScript();";
item[1] = "Make a PostFX Asset" TAB "" TAB "LooseFileAuditWindow.importPostFX();";
item[2] = "Make a Material Asset" TAB "" TAB "LooseFileAuditWindow.importMaterial();";
item[3] = "Make a Terrain Material Asset" TAB "" TAB "LooseFileAuditWindow.importTerrMat();";
item[4] = "Make a Particle Asset" TAB "" TAB "LooseFileAuditWindow.importParticle();";
item[5] = "Make a Explosion Asset" TAB "" TAB "LooseFileAuditWindow.importExplosion();";
item[6] = "Make a Forest Brush Asset" TAB "" TAB "LooseFileAuditWindow.importForest();";
};
}
ScriptLooseFilePopup.enableItem(4, false);
ScriptLooseFilePopup.enableItem(5, false);
ScriptLooseFilePopup.enableItem(6, false);
if( !isObject( ShapeLooseFilePopup ) )
{
%this.ImportAssetActions = new PopupMenu( ShapeLooseFilePopup )
{
superClass = "MenuBuilder";
class = "EditorWorldMenu";
item[0] = "Make a Shape Asset" TAB "" TAB "LooseFileAuditWindow.importShape();";
item[1] = "Make a Shape Animation Asset" TAB "" TAB "LooseFileAuditWindow.importShapeAnimation();";
};
}
if( !isObject( DecalLooseFilePopup ) )
{
%this.ImportAssetActions = new PopupMenu( DecalLooseFilePopup )
{
superClass = "MenuBuilder";
class = "EditorWorldMenu";
item[0] = "Make a Decal Asset" TAB "" TAB "LooseFileAuditWindow.importDecal();";
};
}
if( !isObject( TerrainLooseFilePopup ) )
{
%this.ImportAssetActions = new PopupMenu( TerrainLooseFilePopup )
{
superClass = "MenuBuilder";
class = "EditorWorldMenu";
item[0] = "Make a Terrain Data Asset" TAB "" TAB "LooseFileAuditWindow.importTerrain();";
};
}
if( !isObject(SoundLooseFilePopup ) )
{
%this.ImportAssetActions = new PopupMenu( SoundLooseFilePopup )
{
superClass = "MenuBuilder";
class = "EditorWorldMenu";
item[0] = "Make a Sound Asset" TAB "" TAB "LooseFileAuditWindow.importSound();";
};
}
if( !isObject(LevelLooseFilePopup ) )
{
%this.ImportAssetActions = new PopupMenu( LevelLooseFilePopup )
{
superClass = "MenuBuilder";
class = "EditorWorldMenu";
item[0] = "Make a Level Asset" TAB "" TAB "LooseFileAuditWindow.importLevel();";
};
}
if( !isObject(GUILooseFilePopup ) )
{
%this.ImportAssetActions = new PopupMenu( GUILooseFilePopup )
{
superClass = "MenuBuilder";
class = "EditorWorldMenu";
item[0] = "Make a GUI Asset" TAB "" TAB "LooseFileAuditWindow.importGUI();";
};
}
}
function LooseFileAuditWindow::showDialog(%this, %address)
{
LooseFileAuditWindow.buildPopupMenus();
Canvas.pushDialog(LooseFileAudit);
%this.currentAddress = %address;
%this.refresh();
}
function LooseFileAuditWindow::refresh(%this)
{
LooseFileList.clear();
LooseFileList.insertItem(0, "Loose Files");
//First, wipe out any files inside the folder first
%file = findFirstFileMultiExpr( %this.currentAddress @ "/*.*", false);
%aq = new AssetQuery();
while( %file !$= "" )
{
//%filename = fileName(%file);
//%filePath = filePath(%file);
if(!strIsMatchExpr("*.asset.taml", %file) && !strIsMatchExpr("*.taml", %file))
{
%assetsFound = AssetDatabase.findAssetLooseFile(%aq, %file);
if(%assetsFound == 0)
{
LooseFileList.insertItem(1, %file);
}
}
%file = findNextFileMultiExpr( %this.currentAddress @ "/*.*" );
}
LooseFileList.buildVisibleTree(true);
LooseFileList.expandItem(0);
%aq.delete();
}
function LooseFileList::onRightMouseDown(%this, %itemId)
{
LooseFileList.itemPath = %this.getItemText(%itemId);
LooseFileList.selectedItem = %itemId;
%ext = fileExt(LooseFileList.itemPath);
if(isImageFormat(%ext))
{
ImageLooseFilePopup.showPopup(Canvas);
}
else if(%ext $= ".cs")
{
ScriptLooseFilePopup.showPopup(Canvas);
}
else if(isShapeFormat(%ext))
{
ShapeLooseFilePopup.showPopup(Canvas);
}
else if(%ext $= ".mis")
{
LevelLooseFilePopup.showPopup(Canvas);
}
else if(isSoundFormat(%ext))
{
SoundLooseFilePopup.showPopup(Canvas);
}
else if(%ext $= ".ter")
{
TerrainLooseFilePopup.showPopup(Canvas);
}
else if(%ext $= ".gui")
{
GUILooseFilePopup.showPopup(Canvas);
}
}
//
//
function LooseFileAuditWindow::importImage(%this)
{
if(!ImportAssetWindow.isAwake())
ImportAssetWindow.showDialog();
AssetBrowser.addImportingAsset("ImageAsset", LooseFileList.itemPath, "", "");
LooseFileList.removeItem(LooseFileList.selectedItem, false);
LooseFileList.buildVisibleTree(true);
LooseFileList.expandItem(0);
}
function LooseFileAuditWindow::importScript(%this)
{
if(!ImportAssetWindow.isAwake())
ImportAssetWindow.showDialog();
AssetBrowser.addImportingAsset("ScriptAsset", LooseFileList.itemPath, "", "");
LooseFileList.removeItem(LooseFileList.selectedItem, false);
LooseFileList.buildVisibleTree(true);
LooseFileList.expandItem(0);
}
function LooseFileAuditWindow::importGUI(%this)
{
if(!ImportAssetWindow.isAwake())
ImportAssetWindow.showDialog();
AssetBrowser.addImportingAsset("GUIAsset", LooseFileList.itemPath, "", "");
LooseFileList.removeItem(LooseFileList.selectedItem, false);
LooseFileList.buildVisibleTree(true);
LooseFileList.expandItem(0);
}
function LooseFileAuditWindow::importLevel(%this)
{
if(!ImportAssetWindow.isAwake())
ImportAssetWindow.showDialog();
AssetBrowser.addImportingAsset("LevelAsset", LooseFileList.itemPath, "", "");
LooseFileList.removeItem(LooseFileList.selectedItem, false);
LooseFileList.buildVisibleTree(true);
LooseFileList.expandItem(0);
}
function LooseFileAuditWindow::importSound(%this)
{
if(!ImportAssetWindow.isAwake())
ImportAssetWindow.showDialog();
AssetBrowser.addImportingAsset("SoundAsset", LooseFileList.itemPath, "", "");
LooseFileList.removeItem(LooseFileList.selectedItem, false);
LooseFileList.buildVisibleTree(true);
LooseFileList.expandItem(0);
}
function LooseFileAuditWindow::importTerrain(%this)
{
if(!ImportAssetWindow.isAwake())
ImportAssetWindow.showDialog();
AssetBrowser.addImportingAsset("TerrainAsset", LooseFileList.itemPath, "", "");
LooseFileList.removeItem(LooseFileList.selectedItem, false);
LooseFileList.buildVisibleTree(true);
LooseFileList.expandItem(0);
}
function LooseFileAuditWindow::importTerrMat(%this)
{
if(!ImportAssetWindow.isAwake())
ImportAssetWindow.showDialog();
AssetBrowser.addImportingAsset("TerrainMaterialAsset", LooseFileList.itemPath, "", "");
LooseFileList.removeItem(LooseFileList.selectedItem, false);
LooseFileList.buildVisibleTree(true);
LooseFileList.expandItem(0);
}
function LooseFileAuditWindow::importShape(%this)
{
if(!ImportAssetWindow.isAwake())
ImportAssetWindow.showDialog();
AssetBrowser.addImportingAsset("ShapeAsset", LooseFileList.itemPath, "", "");
LooseFileList.removeItem(LooseFileList.selectedItem, false);
LooseFileList.buildVisibleTree(true);
LooseFileList.expandItem(0);
}
function LooseFileAuditWindow::importShapeAnimation(%this)
{
if(!ImportAssetWindow.isAwake())
ImportAssetWindow.showDialog();
AssetBrowser.addImportingAsset("ShapeAnimationAsset", LooseFileList.itemPath, "", "");
LooseFileList.removeItem(LooseFileList.selectedItem, false);
LooseFileList.buildVisibleTree(true);
LooseFileList.expandItem(0);
}
function LooseFileAuditWindow::importPostFX(%this)
{
if(!ImportAssetWindow.isAwake())
ImportAssetWindow.showDialog();
AssetBrowser.addImportingAsset("PostEffectAsset", LooseFileList.itemPath, "", "");
LooseFileList.removeItem(LooseFileList.selectedItem, false);
LooseFileList.buildVisibleTree(true);
LooseFileList.expandItem(0);
}
function LooseFileAuditWindow::importMaterial(%this)
{
if(!ImportAssetWindow.isAwake())
ImportAssetWindow.showDialog();
AssetBrowser.addImportingAsset("MaterialAsset", LooseFileList.itemPath, "", "");
LooseFileList.removeItem(LooseFileList.selectedItem, false);
LooseFileList.buildVisibleTree(true);
LooseFileList.expandItem(0);
}