mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-03-27 16:19:34 +00:00
Added ability to check if popup menu is currently Visible Removed unwanted path debug/testing code from tsShapeConstructor Made a number of default postFX's names more consistent and set up asset definitions for them. Began adding hooks to PostFX editor as well Refactored Asset Import window with new layout, revamped import behavior to work with new layout concept and easier editing of import 'session' Updated Asset Browser to utilize a common 'DirectoryHandler' object to standardize/centralize all folder navigation behavior for the asset tool ecosystem Added new window to select path for assets Refactored import config editor to be easier to utilize Added field in editor settings to edit import configs without needing to first try and import assets Updated a number of asset types' scripts to handle address-based system Began standardizing a number of 'actions' for the asset browser, including drag-n-drop, renaming, deleting, moving, etc. Made refreshing behavior of AB more consistent When making new in AB folder, it will automatically navigate to the new folder When making a new folder, prompts the folder name via new popup window Refactored PostFX editor to use newer layout with side list for easier use
372 lines
15 KiB
C#
372 lines
15 KiB
C#
function AssetBrowser::buildPopupMenus(%this)
|
|
{
|
|
if( !isObject( AddNewModulePopup ) )
|
|
{
|
|
new PopupMenu( AddNewModulePopup )
|
|
{
|
|
superClass = "MenuBuilder";
|
|
class = "EditorWorldMenu";
|
|
isPopup = true;
|
|
|
|
item[ 0 ] = "Create New Module" TAB "" TAB "AssetBrowser.CreateNewModule();";
|
|
item[ 1 ] = "Refresh Module Dependencies" TAB "" TAB "AssetBrowser.RefreshModuleDependencies();";
|
|
};
|
|
|
|
AddNewModulePopup.enableItem(1, false);
|
|
}
|
|
|
|
if( !isObject( EditAssetPopup ) )
|
|
{
|
|
new PopupMenu( EditAssetPopup )
|
|
{
|
|
superClass = "MenuBuilder";
|
|
class = "EditorWorldMenu";
|
|
//isPopup = true;
|
|
|
|
item[ 0 ] = "Edit Asset" TAB "" TAB "AssetBrowser.editAsset();";
|
|
item[ 1 ] = "Rename Asset" TAB "" TAB "AssetBrowser.renameAsset();";
|
|
item[ 2 ] = "Refresh Asset" TAB "" TAB "AssetBrowser.refreshAsset();";
|
|
item[ 3 ] = "Asset Properties" TAB "" TAB "AssetBrowser.editAssetInfo();";
|
|
item[ 4 ] = "-";
|
|
Item[ 5 ] = "Duplicate Asset" TAB "" TAB "AssetBrowser.duplicateAsset();";
|
|
item[ 6 ] = "-";
|
|
item[ 7 ] = "Re-Import Asset" TAB "" TAB "AssetBrowser.reImportAsset();";
|
|
item[ 8 ] = "-";
|
|
item[ 9 ] = "Delete Asset" TAB "" TAB "AssetBrowser.deleteAsset();";
|
|
|
|
jumpFileName = "";
|
|
jumpLineNumber = "";
|
|
};
|
|
}
|
|
|
|
if( !isObject( EditLevelAssetPopup ) )
|
|
{
|
|
new PopupMenu( EditLevelAssetPopup )
|
|
{
|
|
superClass = "MenuBuilder";
|
|
class = "EditorWorldMenu";
|
|
//isPopup = true;
|
|
|
|
item[ 0 ] = "Edit Level" TAB "" TAB "AssetBrowser.editAsset();";
|
|
item[ 1 ] = "Append as Sublevel" TAB "" TAB "AssetBrowser.appendSublevel();";
|
|
item[ 2 ] = "Rename Asset" TAB "" TAB "AssetBrowser.renameAsset();";
|
|
item[ 3 ] = "Refresh Asset" TAB "" TAB "AssetBrowser.refreshAsset();";
|
|
item[ 4 ] = "Asset Properties" TAB "" TAB "AssetBrowser.editAssetInfo();";
|
|
item[ 5 ] = "-";
|
|
Item[ 6 ] = "Duplicate Asset" TAB "" TAB "AssetBrowser.duplicateAsset();";
|
|
item[ 7 ] = "-";
|
|
//item[ 8 ] = "Re-Import Asset" TAB "" TAB "AssetBrowser.reImportAsset();";
|
|
//item[ 9 ] = "-";
|
|
item[ 8 ] = "Delete Asset" TAB "" TAB "AssetBrowser.deleteAsset();";
|
|
|
|
jumpFileName = "";
|
|
jumpLineNumber = "";
|
|
};
|
|
}
|
|
|
|
if( !isObject( AddNewComponentAssetPopup ) )
|
|
{
|
|
new PopupMenu( AddNewComponentAssetPopup )
|
|
{
|
|
superClass = "MenuBuilder";
|
|
class = "EditorWorldMenu";
|
|
//isPopup = true;
|
|
|
|
//item[ 0 ] = "Create Component" TAB "" TAB "Canvas.pushDialog(AssetBrowser_newComponentAsset); AssetBrowser_newComponentAsset-->NewComponentPackageList.setText(AssetBrowser.selectedModule);";
|
|
item[ 0 ] = "Component" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"ComponentAsset\", AssetBrowser.selectedModule);";
|
|
|
|
//list other common component types here to shortcut the creation process
|
|
};
|
|
}
|
|
|
|
if( !isObject( AddNewScriptAssetPopup ) )
|
|
{
|
|
%this.AddNewScriptAssetPopup = new PopupMenu( AddNewScriptAssetPopup )
|
|
{
|
|
superClass = "MenuBuilder";
|
|
class = "EditorWorldMenu";
|
|
//isPopup = true;
|
|
|
|
item[ 0 ] = "Create Component" TAB AddNewComponentAssetPopup;
|
|
item[ 1 ] = "Create Script" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"ScriptAsset\", AssetBrowser.selectedModule);";
|
|
item[ 2 ] = "Create State Machine" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"StateMachineAsset\", AssetBrowser.selectedModule);";
|
|
//item[ 3 ] = "-";
|
|
//item[ 3 ] = "Create Game Object" TAB "" TAB "AssetBrowser.createNewGameObjectAsset(\"NewGameObject\", AssetBrowser.selectedModule);";
|
|
};
|
|
//%this.AddNewScriptAssetPopup.insertSubMenu(0, "Create Component", AddNewComponentAssetPopup);
|
|
}
|
|
|
|
if( !isObject( AddNewArtAssetPopup ) )
|
|
{
|
|
%this.AddNewArtAssetPopup = new PopupMenu( AddNewArtAssetPopup )
|
|
{
|
|
superClass = "MenuBuilder";
|
|
class = "EditorWorldMenu";
|
|
//isPopup = true;
|
|
|
|
item[ 0 ] = "Material" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"MaterialAsset\", AssetBrowser.selectedModule);";//"createNewMaterialAsset(\"NewMaterial\", AssetBrowser.selectedModule);";
|
|
item[ 1 ] = "Terrain Material" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"TerrainMaterialAsset\", AssetBrowser.selectedModule);";//"AssetBrowser.createNewImageAsset(\"NewImage\", AssetBrowser.selectedModule);";
|
|
item[ 2 ] = "Image" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"ImageAsset\", AssetBrowser.selectedModule);";//"AssetBrowser.createNewImageAsset(\"NewImage\", AssetBrowser.selectedModule);";
|
|
item[ 3 ] = "-";
|
|
item[ 4 ] = "Terrain Data" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"TerrainAsset\", AssetBrowser.selectedModule);";
|
|
item[ 5 ] = "-";
|
|
item[ 6 ] = "Shape" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"Shape\", AssetBrowser.selectedModule);";
|
|
item[ 7 ] = "Shape Animation" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"ShapeAnimationAsset\", AssetBrowser.selectedModule);";//"AssetBrowser.createNewShapeAnimationAsset(\"NewShapeAnimation\", AssetBrowser.selectedModule);";
|
|
item[ 8 ] = "-";
|
|
item[ 9 ] = "GUI" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"GUIAsset\", AssetBrowser.selectedModule);";//"AssetBrowser.createNewGUIAsset(\"NewGUI\", AssetBrowser.selectedModule);";
|
|
item[ 10 ] = "-";
|
|
item[ 11 ] = "Post Effect" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"PostEffectAsset\", AssetBrowser.selectedModule);";//"AssetBrowser.createNewPostEffectAsset(\"NewPostEffect\", AssetBrowser.selectedModule);";
|
|
item[ 12 ] = "-";
|
|
item[ 13 ] = "Sound" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"SoundAsset\", AssetBrowser.selectedModule);";//"AssetBrowser.createNewSoundAsset(\"NewSound\", AssetBrowser.selectedModule);";
|
|
item[ 14 ] = "-";
|
|
item[ 15 ] = "Particle Effect" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"ParticleEffectAsset\", AssetBrowser.selectedModule);";//"AssetBrowser.createNewParticleEffectAsset(\"NewParticleEffect\", AssetBrowser.selectedModule);";
|
|
item[ 16 ] = "-";
|
|
item[ 17 ] = "Cubemap" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"CubemapAsset\", AssetBrowser.selectedModule);";
|
|
};
|
|
}
|
|
|
|
if( !isObject( AddNewCppAssetPopup ) )
|
|
{
|
|
%this.AddNewCppAssetPopup = new PopupMenu( AddNewCppAssetPopup )
|
|
{
|
|
superClass = "MenuBuilder";
|
|
class = "EditorWorldMenu";
|
|
//isPopup = true;
|
|
|
|
/*item[ 0 ] = "Create Static Class" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"CppStaticClassAsset\", AssetBrowser.selectedModule);";
|
|
item[ 1 ] = "Create Regular Class" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"CppRegularClassAsset\", AssetBrowser.selectedModule);";
|
|
item[ 2 ] = "Create GameObject Class" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"CppGameObjectAsset\", AssetBrowser.selectedModule);";
|
|
item[ 3 ] = "Create Component Class" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"CppComponentAsset\", AssetBrowser.selectedModule);";
|
|
item[ 4 ] = "Create Script Class" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"CppScriptClass\", AssetBrowser.selectedModule);";*/
|
|
|
|
item[ 0 ] = "C++ Class" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"CppAsset\", AssetBrowser.selectedModule);";
|
|
};
|
|
//%this.AddNewScriptAssetPopup.insertSubMenu(0, "Create Component", AddNewComponentAssetPopup);
|
|
}
|
|
|
|
if( !isObject( AddNewAssetPopup ) )
|
|
{
|
|
%this.AddNewAssetPopup = new PopupMenu( AddNewAssetPopup )
|
|
{
|
|
superClass = "MenuBuilder";
|
|
class = "EditorWorldMenu";
|
|
|
|
item[0] = "Folder" TAB "" TAB "AssetBrowser.CreateNewFolder();";
|
|
item[1] = "-";
|
|
item[2] = "Code Asset" TAB AddNewScriptAssetPopup;
|
|
item[3] = "-";
|
|
item[4] = "Art Asset" TAB AddNewArtAssetPopup;
|
|
item[5] = "-";
|
|
item[6] = "Level" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"LevelAsset\", AssetBrowser.selectedModule);";//"AssetBrowser.createNewLevelAsset(\"NewLevel\", AssetBrowser.selectedModule);";
|
|
item[7] = "-";
|
|
item[8] = "C++ Asset" TAB AddNewCppAssetPopup;
|
|
item[9] = "-";
|
|
item[10] = "New Module" TAB "" TAB "AssetBrowser.CreateNewModule();";
|
|
|
|
};
|
|
}
|
|
|
|
if( !isObject( EditModulePopup ) )
|
|
{
|
|
new PopupMenu( EditModulePopup )
|
|
{
|
|
superClass = "MenuBuilder";
|
|
class = "EditorWorldMenu";
|
|
//isPopup = true;
|
|
|
|
item[ 0 ] = "New Asset" TAB AddNewAssetPopup;
|
|
item[ 1 ] = "Reload Module" TAB "" TAB "AssetBrowser.reloadModule();";
|
|
Item[ 2 ] = "-";
|
|
Item[ 3 ] = "Edit Module" TAB "" TAB "AssetBrowser.editModuleInfo();";
|
|
Item[ 4 ] = "-";
|
|
Item[ 5 ] = "Duplicate Module" TAB "" TAB "AssetBrowser.copyModule();";
|
|
Item[ 6 ] = "-";
|
|
Item[ 7 ] = "Delete Module" TAB "" TAB "AssetBrowser.deleteModule();";
|
|
};
|
|
}
|
|
|
|
//Some assets are not yet ready/implemented, so disable their creation here
|
|
AddNewArtAssetPopup.enableItem(6, false); //shape
|
|
AddNewArtAssetPopup.enableItem(7, false); //shape animation
|
|
AddNewArtAssetPopup.enableItem(13, false); //sound asset
|
|
AddNewArtAssetPopup.enableItem(15, false); //particle effect
|
|
|
|
if( !isObject( EditFolderPopup ) )
|
|
{
|
|
new PopupMenu( EditFolderPopup )
|
|
{
|
|
superClass = "MenuBuilder";
|
|
class = "EditorWorldMenu";
|
|
//isPopup = true;
|
|
|
|
Item[ 0 ] = "Create" TAB AddNewAssetPopup;
|
|
item[ 1 ] = "-";
|
|
item[ 2 ] = "Rename Folder" TAB "" TAB "AssetBrowser.renameAsset();";
|
|
Item[ 3 ] = "Duplicate Folder" TAB "" TAB "AssetBrowser.duplicateAsset();";
|
|
item[ 4 ] = "-";
|
|
item[ 5 ] = "Delete Folder" TAB "" TAB "AssetBrowser.deleteAsset();";
|
|
};
|
|
}
|
|
|
|
if( !isObject( EditAssetCategoryPopup ) )
|
|
{
|
|
new PopupMenu( EditAssetCategoryPopup )
|
|
{
|
|
superClass = "MenuBuilder";
|
|
class = "EditorWorldMenu";
|
|
//isPopup = true;
|
|
|
|
item[ 0 ] = "Toggle Autoloading of Script Assets" TAB "" TAB "AssetBrowser.toggleAutoloadAsset(\"Script\");";
|
|
};
|
|
}
|
|
|
|
//Asset Preview size presets
|
|
if( !isObject( AssetPreviewSizePopup ) )
|
|
{
|
|
new PopupMenu( AssetPreviewSizePopup )
|
|
{
|
|
superClass = "MenuBuilder";
|
|
class = "EditorWorldMenu";
|
|
|
|
item[ 0 ] = "Small" TAB "" TAB "AssetBrowser.setPreviewSize(\"Small\");";
|
|
item[ 1 ] = "Medium" TAB "" TAB "AssetBrowser.setPreviewSize(\"Medium\");";
|
|
Item[ 2 ] = "Large" TAB "" TAB "AssetBrowser.setPreviewSize(\"Large\");";
|
|
};
|
|
|
|
AssetPreviewSizePopup.checkItem(0, true);
|
|
}
|
|
|
|
if( !isObject( AssetTypeListPopup ) )
|
|
{
|
|
new PopupMenu( AssetTypeListPopup )
|
|
{
|
|
superClass = "MenuBuilder";
|
|
class = "EditorWorldMenu";
|
|
//isPopup = true;
|
|
|
|
radioSelection = false;
|
|
};
|
|
|
|
AssetTypeListPopup.addItem(0, AssetFilterTypeList.getKey(0) TAB "" TAB "AssetBrowser.toggleAssetTypeFilter(" @ 0 @ ");");
|
|
AssetTypeListPopup.addItem(1, "-");
|
|
|
|
for(%i=1; %i < AssetFilterTypeList.Count(); %i++)
|
|
{
|
|
%assetTypeName = AssetFilterTypeList.getKey(%i);
|
|
AssetTypeListPopup.addItem(%i+1, %assetTypeName TAB "" TAB "AssetBrowser.toggleAssetTypeFilter(" @ %i + 1 @ ");");
|
|
}
|
|
}
|
|
|
|
AssetBrowser.toggleAssetTypeFilter(0);
|
|
|
|
//Browser visibility menu
|
|
if( !isObject( BrowserVisibilityPopup ) )
|
|
{
|
|
new PopupMenu( BrowserVisibilityPopup )
|
|
{
|
|
superClass = "MenuBuilder";
|
|
class = "EditorWorldMenu";
|
|
//isPopup = true;
|
|
|
|
item[ 0 ] = "Toggle Show Core Modules" TAB "" TAB "AssetBrowser.viewCoreModulesFilter();";
|
|
item[ 1 ] = "Toggle Show Tools Modules" TAB "" TAB "AssetBrowser.viewToolsModulesFilter();";
|
|
item[ 2 ] = "Toggle Only Show Modules with Assets" TAB "" TAB "AssetBrowser.viewPopulatedModulesFilter();";
|
|
Item[ 3 ] = "-";
|
|
item[ 4 ] = "Show Folders" TAB "" TAB "AssetBrowser.toggleShowingFolders();";
|
|
item[ 5 ] = "Show Empty Folders" TAB "" TAB "AssetBrowser.toggleShowingEmptyFolders();";
|
|
item[ 6 ] = "-";
|
|
item[ 7 ] = "Filter by Asset Type" TAB AssetTypeListPopup;
|
|
item[ 8 ] = "-";
|
|
item[ 9 ] = "Enable Auto-refresh" TAB "" TAB "AssetBrowser.toggleAutorefresh();";
|
|
Item[ 10 ] = "-";
|
|
Item[ 11 ] = "Asset Preview Size" TAB AssetPreviewSizePopup;
|
|
};
|
|
|
|
BrowserVisibilityPopup.enableItem(5, false);
|
|
BrowserVisibilityPopup.enableItem(9, false);
|
|
}
|
|
|
|
//
|
|
|
|
//Import Legacy menus
|
|
if( !isObject( ImportAssetsPopup ) )
|
|
{
|
|
new PopupMenu( ImportAssetsPopup )
|
|
{
|
|
superClass = "MenuBuilder";
|
|
class = "EditorWorldMenu";
|
|
|
|
item[ 0 ] = "Import Legacy Game" TAB "" TAB "AssetBrowser.importLegacyGame();";
|
|
Item[ 1 ] = "-";
|
|
item[ 2 ] = "Import new assets" TAB "" TAB "AssetBrowser.importNewAssetFile();";
|
|
};
|
|
}
|
|
|
|
if( !isObject( EditGameObjectAssetPopup ) )
|
|
{
|
|
new PopupMenu( EditGameObjectAssetPopup )
|
|
{
|
|
superClass = "MenuBuilder";
|
|
class = "EditorWorldMenu";
|
|
//isPopup = true;
|
|
|
|
item[ 0 ] = "Open GameObject Editor" TAB "" TAB "echo(\"Not yet implemented.\");";
|
|
item[ 1 ] = "Edit GameObject Script" TAB "" TAB "AssetBrowser.editGameObjectAssetScript(AssetDatabase.acquireAsset(EditGameObjectAssetPopup.assetId));";
|
|
item[ 2 ] = "-";
|
|
item[ 3 ] = "Apply Instance to GameObject" TAB "" TAB "AssetBrowser.applyInstanceToGameObject(AssetDatabase.acquireAsset(EditGameObjectAssetPopup.assetId));";
|
|
item[ 4 ] = "Reset Instance to GameObject" TAB "" TAB "echo(\"Not yet implemented.\");";
|
|
item[ 5 ] = "-";
|
|
item[ 6 ] = "Create Child GameObject" TAB "" TAB "echo(\"Not yet implemented.\");";
|
|
};
|
|
}
|
|
|
|
//Asset Import Resolution menus
|
|
if( !isObject( ImportAssetResolutionsPopup ) )
|
|
{
|
|
%this.ImportAssetResolutionsPopup = new PopupMenu( ImportAssetResolutionsPopup )
|
|
{
|
|
superClass = "MenuBuilder";
|
|
class = "EditorWorldMenu";
|
|
|
|
item[0] = "Use original Asset for duplicates" TAB "" TAB "";
|
|
item[1] = "Override duplicate with new Asset" TAB "" TAB "";
|
|
item[2] = "-";
|
|
item[3] = "Rename Asset" TAB "" TAB "";
|
|
item[4] = "-";
|
|
item[5] = "Find missing file" TAB "" TAB "ImportAssetWindow.findMissingFile(ImportAssetResolutionsPopup.assetItem);";
|
|
item[6] = "-";
|
|
item[7] = "Edit Asset properties" TAB "" TAB "";
|
|
|
|
};
|
|
}
|
|
|
|
//
|
|
//
|
|
if( !isObject( ImportAssetActions ) )
|
|
{
|
|
%this.ImportAssetActions = new PopupMenu( ImportAssetActions )
|
|
{
|
|
superClass = "MenuBuilder";
|
|
class = "EditorWorldMenu";
|
|
|
|
item[0] = "Add asset" TAB "" TAB "ImportAssetWindow.addNewImportingAsset();";
|
|
item[1] = "Remove asset" TAB "" TAB "ImportAssetWindow.removeImportingAsset();";
|
|
};
|
|
}
|
|
}
|
|
|
|
function AddNewScriptAssetPopupMenu::onSelectItem(%this, %id, %text)
|
|
{
|
|
return true;
|
|
}
|
|
function AddNewScriptAssetPopupMenu::setupDefaultState(%this)
|
|
{
|
|
// Setup camera speed gui's. Both menu and editorgui
|
|
%this.setupGuiControls();
|
|
|
|
Parent::setupDefaultState(%this);
|
|
}
|
|
|
|
function AddNewScriptAssetPopupMenu::setupGuiControls(%this)
|
|
{
|
|
}
|