From 81eec1dcb4a0d9f7b19d8825000be9c48bcfaa42 Mon Sep 17 00:00:00 2001 From: JeffR Date: Sun, 24 Apr 2022 13:03:33 -0500 Subject: [PATCH] Added multi type filter support to AB select mode Adjusted logic for World Editor's Assets tab to filter by ShapeAssets and Datablocks Improved ShapeEditor's Assets tab filter and select logic Added ability for AB search to work on creator section Fixed icon display of AB on preview cards when in list mode --- .../tools/assetBrowser/guis/assetBrowser.gui | 2 +- .../assetBrowser/scripts/assetBrowser.tscript | 29 +++++++++++++++++-- .../scripts/shapeEditor.ed.tscript | 11 +++++-- .../worldEditor/scripts/EditorGui.ed.tscript | 5 +--- 4 files changed, 37 insertions(+), 10 deletions(-) diff --git a/Templates/BaseGame/game/tools/assetBrowser/guis/assetBrowser.gui b/Templates/BaseGame/game/tools/assetBrowser/guis/assetBrowser.gui index 1d3209b90..5a7aade06 100644 --- a/Templates/BaseGame/game/tools/assetBrowser/guis/assetBrowser.gui +++ b/Templates/BaseGame/game/tools/assetBrowser/guis/assetBrowser.gui @@ -771,7 +771,7 @@ $guiContent = new GuiControl(AssetBrowser) { position = "0 0"; extent = "23 23"; minExtent = "8 2"; - horizSizing = "left"; + horizSizing = "right"; vertSizing = "bottom"; profile = "ToolsGuiSolidDefaultProfile"; visible = "1"; diff --git a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetBrowser.tscript b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetBrowser.tscript index 3dd7b881d..0c7270d10 100644 --- a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetBrowser.tscript +++ b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetBrowser.tscript @@ -527,6 +527,7 @@ function AssetBrowser::buildAssetPreview( %this, %asset, %moduleName ) %previewButton.iconLocation = "Left"; %previewButton.textLocation = "Right"; %previewButton.setextent(120,20); + %previewButton.buttonMargin = "0 0"; AssetBrowser.previewListMode = true; } @@ -1519,7 +1520,11 @@ function AssetBrowser::doRebuildAssetArray(%this) { if(AssetBrowser.assetTypeFilter !$= "") { - if(AssetBrowser.assetTypeFilter $= %assetType) + %filtersCount = getWordCount(AssetBrowser.assetTypeFilter); + for(%fltrIdx = 0; %fltrIdx < %filtersCount; %fltrIdx++) + { + %fltr = getWord(AssetBrowser.assetTypeFilter, %fltrIdx); + if(%fltr $= %assetType) { $AssetBrowser::AssetArray.add( %moduleName, %assetId ); @@ -1527,6 +1532,7 @@ function AssetBrowser::doRebuildAssetArray(%this) %finalAssetCount++; } } + } else { //got it. @@ -1574,7 +1580,22 @@ function AssetBrowser::doRebuildAssetArray(%this) } //Add Non-Asset Scripted Objects. Datablock, etc based - if(AssetBrowser.assetTypeFilter $= "" && %breadcrumbPath !$= "" && isDirectory(%breadcrumbPath)) + %hasDBFilter = true; + if(AssetBrowser.assetTypeFilter !$= "") + { + %hasDBFilter = false; + %filterCount = getWordCount(AssetBrowser.assetTypeFilter); + for(%fltrIdx = 0; %fltrIdx < %filterCount; %fltrIdx++) + { + %fltr = getWord(AssetBrowser.assetTypeFilter, %fltrIdx); + if(%fltr $= "Datablock" || %fltr $= "Datablocks") + { + %hasDBFilter = true; + break; + } + } + } + if(%hasDBFilter && %breadcrumbPath !$= "" && isDirectory(%breadcrumbPath)) { %category = getWord( %breadcrumbPath, 1 ); %dataGroup = "DataBlockGroup"; @@ -1792,6 +1813,10 @@ function AssetBrowser::doRebuildAssetArray(%this) %name = %creatorObj.val[1]; %func = %creatorObj.val[2]; + %searchActive = AssetSearchTerms.count() != 0; + if(%searchActive && !matchesSearch(%name, "Creator")) + continue; + $AssetBrowser::AssetArray.add( %name, "Creator" TAB %creatorObj ); } } diff --git a/Templates/BaseGame/game/tools/shapeEditor/scripts/shapeEditor.ed.tscript b/Templates/BaseGame/game/tools/shapeEditor/scripts/shapeEditor.ed.tscript index 4d60f1f9e..929fc510e 100644 --- a/Templates/BaseGame/game/tools/shapeEditor/scripts/shapeEditor.ed.tscript +++ b/Templates/BaseGame/game/tools/shapeEditor/scripts/shapeEditor.ed.tscript @@ -3224,9 +3224,14 @@ function showShapeEditorPreview() // function ShapeEditorTabbook::onTabSelected( %this ) { - if( EditorTreeTabBook.getSelectedPage() == 1) + if( ShapeEditorTabbook.getSelectedPage() == 1) { - AssetBrowser.toggleDialog(); - AssetBrowser.toggleAssetTypeFilter(12); //show only shapeAssets + AssetBrowser.showDialog("ShapeAsset", "openShapeInShapeEditor"); } +} + +function openShapeInShapeEditor(%shapeAssetId) +{ + %assetDef = AssetDatabase.acquireAsset(%shapeAssetId); + AssetBrowser.editShapeAsset(%assetDef); } \ No newline at end of file diff --git a/Templates/BaseGame/game/tools/worldEditor/scripts/EditorGui.ed.tscript b/Templates/BaseGame/game/tools/worldEditor/scripts/EditorGui.ed.tscript index 74a4e30a7..58686e20e 100644 --- a/Templates/BaseGame/game/tools/worldEditor/scripts/EditorGui.ed.tscript +++ b/Templates/BaseGame/game/tools/worldEditor/scripts/EditorGui.ed.tscript @@ -1932,11 +1932,8 @@ function EditorTreeTabBook::onTabSelected( %this ) } else { - AssetBrowser.toggleDialog(); + AssetBrowser.showDialog("ShapeAsset Datablock"); EditorTreeTabBook.selectPage(0); - EWTreeWindow-->DeleteSelection.visible = false; - EWTreeWindow-->LockSelection.visible = false; - EWTreeWindow-->AddSimGroup.visible = false; } }