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 ] = "Reload 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 ] = "Regenerate Preview Image" TAB "" TAB "AssetBrowser.regeneratePreviewImage();"; item[ 8 ] = "-"; item[ 9 ] = "Re-Import Asset" TAB "" TAB "AssetBrowser.reImportAsset();"; item[ 10 ] = "-"; item[ 11 ] = "Open File Location" TAB "" TAB "AssetBrowser.openFileLocation();"; item[ 12 ] = "-"; item[ 13 ] = "Delete Asset" TAB "" TAB "AssetBrowser.deleteAsset();"; jumpFileName = ""; jumpLineNumber = ""; }; } if( !isObject( RestoreBackupListPopup ) ) { new PopupMenu( RestoreBackupListPopup ) { superClass = "MenuBuilder"; class = "EditorWorldMenu"; //isPopup = true; radioSelection = false; }; } 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 ] = "Reload 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 ] = "Restore Backup" TAB RestoreBackupListPopup; item[ 9 ] = "-"; item[ 10 ] = "Open File Location" TAB "" TAB "AssetBrowser.openFileLocation();"; item[ 11 ] = "-"; item[ 12 ] = "Delete Asset" TAB "" TAB "AssetBrowser.deleteAsset();"; jumpFileName = ""; jumpLineNumber = ""; }; } if( !isObject( EditTerrainAssetPopup ) ) { new PopupMenu( EditTerrainAssetPopup ) { superClass = "MenuBuilder"; class = "EditorWorldMenu"; //isPopup = true; item[ 0 ] = "Export Terraform Data" TAB "" TAB "Heightfield::saveBitmap(\"\");"; item[ 1 ] = "Rename Asset" TAB "" TAB "AssetBrowser.renameAsset();"; item[ 2 ] = "Asset Properties" TAB "" TAB "AssetBrowser.editAssetInfo();"; item[ 3 ] = "-"; Item[ 4 ] = "Duplicate Asset" TAB "" TAB "AssetBrowser.duplicateAsset();"; item[ 5 ] = "-"; Item[ 6 ] = "Restore Backup" TAB RestoreBackupListPopup; item[ 7 ] = "-"; item[ 8 ] = "Open File Location" TAB "" TAB "AssetBrowser.openFileLocation();"; item[ 9 ] = "-"; item[ 10 ] = "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[ 0 ] = "Create Script" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"ScriptAsset\", AssetBrowser.selectedModule);"; item[ 1 ] = "Create State Machine" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"StateMachineAsset\", AssetBrowser.selectedModule);"; item[ 2 ] = "-"; item[ 3 ] = "Create Game Mode" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"GameModeType\", AssetBrowser.selectedModule);"; //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 ] = "Create Material" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"MaterialAsset\", AssetBrowser.selectedModule);";//"createNewMaterialAsset(\"NewMaterial\", AssetBrowser.selectedModule);"; item[ 1 ] = "Create Terrain Material" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"TerrainMaterialAsset\", AssetBrowser.selectedModule);";//"AssetBrowser.createNewImageAsset(\"NewImage\", AssetBrowser.selectedModule);"; item[ 2 ] = "Create Image" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"ImageAsset\", AssetBrowser.selectedModule);";//"AssetBrowser.createNewImageAsset(\"NewImage\", AssetBrowser.selectedModule);"; item[ 3 ] = "-"; item[ 4 ] = "Create Terrain Data" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"TerrainAsset\", AssetBrowser.selectedModule);"; item[ 5 ] = "-"; item[ 6 ] = "Create GUI" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"GUIAsset\", AssetBrowser.selectedModule);";//"AssetBrowser.createNewGUIAsset(\"NewGUI\", AssetBrowser.selectedModule);"; item[ 7 ] = "-"; item[ 8 ] = "Create Post Effect" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"PostEffectAsset\", AssetBrowser.selectedModule);";//"AssetBrowser.createNewPostEffectAsset(\"NewPostEffect\", AssetBrowser.selectedModule);"; }; } if( !isObject( AddNewCppAssetPopup ) ) { %this.AddNewCppAssetPopup = new PopupMenu( AddNewCppAssetPopup ) { superClass = "MenuBuilder"; class = "EditorWorldMenu"; //isPopup = true; item[ 0 ] = "Create Static C++ Class" TAB "" TAB "$AssetBrowser::newAssetTypeOverride = \"StaticClass\"; AssetBrowser.setupCreateNewAsset(\"CppAsset\", AssetBrowser.selectedModule);"; item[ 1 ] = "Create ScriptObject C++ Class" TAB "" TAB "$AssetBrowser::newAssetTypeOverride = \"ScriptClass\"; AssetBrowser.setupCreateNewAsset(\"CppAsset\", AssetBrowser.selectedModule);"; item[ 2 ] = "Create AssetType C++ Class" TAB "" TAB "$AssetBrowser::newAssetTypeOverride = \"AssetTypeCppClass\"; AssetBrowser.setupCreateNewAsset(\"CppAsset\", AssetBrowser.selectedModule);"; item[ 3 ] = "Create Render C++ Class" TAB "" TAB "$AssetBrowser::newAssetTypeOverride = \"RenderCppClass\"; AssetBrowser.setupCreateNewAsset(\"CppAsset\", AssetBrowser.selectedModule);"; item[ 3 ] = "Create SceneObject Class" TAB "" TAB "$AssetBrowser::newAssetTypeOverride = \"SceneObjectCppClass\"; 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] = "Create Folder" TAB "" TAB "AssetBrowser.CreateNewFolder();"; item[1] = "-"; item[2] = "Create Code Asset" TAB AddNewScriptAssetPopup; item[3] = "-"; item[4] = "Create Art Asset" TAB AddNewArtAssetPopup; item[5] = "-"; item[6] = "Create Level" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"LevelAsset\", AssetBrowser.selectedModule);";//"AssetBrowser.createNewLevelAsset(\"NewLevel\", AssetBrowser.selectedModule);"; item[7] = "-"; item[8] = "Create C++ Asset" TAB AddNewCppAssetPopup; item[9] = "-"; item[10] = "Create New Module" TAB "" TAB "AssetBrowser.CreateNewModule();"; item[11] = "-"; item[12] = "View Loose Files" TAB "" TAB "AssetBrowser.importLooseFiles();"; Item[ 13 ] = "-"; item[ 14 ] = "Open Folder Location" TAB "" TAB "AssetBrowser.openFolderLocation();"; }; } 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 ] = "Edit Module" TAB "" TAB "AssetBrowser.editModuleScript();"; Item[ 3 ] = "-"; Item[ 4 ] = "Module Properties" TAB "" TAB "AssetBrowser.editModuleInfo();"; Item[ 5 ] = "-"; item[ 6 ] = "Open Folder Location" TAB "" TAB "AssetBrowser.openFolderLocation();"; item[ 7 ] = "-"; Item[ 8 ] = "Duplicate Module" TAB "" TAB "AssetBrowser.copyModule();"; Item[ 9 ] = "-"; Item[ 10 ] = "Delete Module" TAB "" TAB "AssetBrowser.deleteModule();"; item[ 11 ] = "-"; item[ 12 ] = "View Loose Files" TAB "" TAB "AssetBrowser.importLooseFiles();"; }; } if( !isObject( EditNonModulePopup ) ) { new PopupMenu( EditNonModulePopup ) { superClass = "MenuBuilder"; class = "EditorWorldMenu"; //isPopup = true; item[ 0 ] = "Turn Folder into Module" TAB "" TAB "AssetBrowser.ConvertFolderIntoModule();"; }; } 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();"; item[ 6 ] = "-"; item[ 7 ] = "View Loose Files" TAB "" TAB "AssetBrowser.importLooseFiles();"; }; } if( !isObject( EditAssetCategoryPopup ) ) { new PopupMenu( EditAssetCategoryPopup ) { superClass = "MenuBuilder"; class = "EditorWorldMenu"; //isPopup = true; item[ 0 ] = "Toggle Autoloading of Script Assets" TAB "" TAB "AssetBrowser.toggleAutoloadAsset(\"Script\");"; }; } if( !isObject( AssetTypeListPopup ) ) { new PopupMenu( AssetTypeListPopup ) { superClass = "MenuBuilder"; class = "EditorWorldMenu"; //isPopup = true; radioSelection = false; }; AssetTypeListPopup.addItem(0, "All" TAB "" TAB %this @ ".toggleAssetTypeFilter(0);"); AssetTypeListPopup.addItem(1, "-"); %listIndex = 1; for(%i=0; %i < ABAssetTypesList.Count(); %i++) { %assetTypeData = ABAssetTypesList.getValue(%i); if(getField(%assetTypeData, 3) != true) continue; AssetTypeListPopup.addItem(%listIndex, getField(%assetTypeData,1) TAB "" TAB %this @ ".toggleAssetTypeFilter(" @ %listIndex @ ");"); %listIndex++; } } //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();"; }; BrowserVisibilityPopup.enableItem(5, false); BrowserVisibilityPopup.enableItem(9, false); } // //Import Legacy menus if( !isObject( ImportAssetsPopup ) ) { new PopupMenu( ImportAssetsPopup ) { superClass = "MenuBuilder"; class = "EditorWorldMenu"; item[ 1 ] = "Import new assets" TAB "" TAB "Canvas.pushDialog(AssetImportCtrl);"; }; } // // Import Asset Actions // if( !isObject( ImportAssetMaterialMaps ) ) { %this.ImportAssetActions = new PopupMenu( ImportAssetMaterialMaps ) { superClass = "MenuBuilder"; class = "EditorWorldMenu"; item[0] = "Add Color Map" TAB "" TAB "ImportAssetWindow.addMaterialMap(\"Color\");"; item[1] = "Add Normal Map" TAB "" TAB "ImportAssetWindow.addMaterialMap(\"Normal\");"; item[2] = "Add Composite Map" TAB "" TAB "ImportAssetWindow.addMaterialMap(\"Composite\");"; item[3] = "Add Metalness Map" TAB "" TAB "ImportAssetWindow.addMaterialMap(\"Metalness\");"; item[4] = "Add AO Map" TAB "" TAB "ImportAssetWindow.addMaterialMap(\"AO\");"; item[5] = "Add Roughness Map" TAB "" TAB "ImportAssetWindow.addMaterialMap(\"Roughness\");"; item[6] = "Add Glow Map" TAB "" TAB "ImportAssetWindow.addMaterialMap(\"Glow\");"; Item[7] = "-"; Item[8] = "Add Existing Image Asset" TAB "" TAB "ImportAssetWindow.addExistingImageAsset();"; }; } if( !isObject( ImportAssetActions ) ) { %this.ImportAssetActions = new PopupMenu( ImportAssetActions ) { superClass = "MenuBuilder"; class = "EditorWorldMenu"; item[0] = "Add New Asset" TAB "" TAB "ImportAssetWindow.addNewImportingAsset();"; item[1] = "Import Existing File as Asset" TAB "" TAB "ImportAssetWindow.importExistingFile();"; item[2] = "-"; item[3] = "Add Reference to Existing Asset" TAB "" TAB "ImportAssetWindow.addRefExistingAsset();"; item[4] = "-"; item[5] = "Remove asset" TAB "" TAB "ImportAssetWindow.removeImportingAsset();"; }; } if( !isObject( AddNewToolPopup ) ) { new PopupMenu( AddNewToolPopup ) { superClass = "MenuBuilder"; class = "EditorWorldMenu"; isPopup = true; item[ 0 ] = "Create New Editor Tool" TAB "" TAB "AssetBrowser.createNewEditorTool(AddNewToolPopup.targetFolder);"; }; AddNewModulePopup.enableItem(1, false); } if( !isObject( EditCollectionSets ) ) { new PopupMenu( EditCollectionSets ) { superClass = "MenuBuilder"; class = "EditorWorldMenu"; //isPopup = true; item[ 0 ] = "Delete Collection Set" TAB "" TAB "AssetBrowser.deleteCollectionSet();"; }; } } 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) { } function RestoreBackupListPopup::populateList(%this, %assetId) { //process it and then check if we have any autosave backups %processedId = strReplace(%assetId, ":", "_"); %autosavePath = "tools/autosave/" @ %processedId @ "/"; RestoreBackupListPopup.clearItems(); if(isDirectory(%autosavePath)) { %dirs = getDirectoryList(%autosavePath); %count = getFieldCount(%dirs); if(%count > 0) { %saveArray = new ArrayObject(){}; //loop over the entries and find the oldest one for(%f=0; %f < %count; %f++) { %saveArray.add(getField(%dirs, %f)); } %saveArray.sortk(); for(%i=0; %i < %count; %i++) { %folderName = %saveArray.getKey(%i); %labelText = %folderName @ " (" @ fileModifiedTime(%autosavePath @ %folderName) @ ")"; RestoreBackupListPopup.addItem(%i, %labelText TAB "" TAB "AssetBrowser.restoreAssetBackup(\"" @ %assetId @ "\"," @ %i @ ");"); echo("Added restore item: " @ %labelText TAB "" TAB "AssetBrowser.restoreAssetBackup(\"" @ %assetId @ "\"," @ %i @ ");"); } %saveArray.delete(); } } }