From 87bd7bbeae98d0b3874a5aa2366d9086d04f91c4 Mon Sep 17 00:00:00 2001 From: Areloch Date: Sun, 21 Feb 2021 02:16:34 -0600 Subject: [PATCH 1/2] Fixes script presentation logic in the AB so it only shows scripts that isn't an asset file for an asset. Also fixes a reference to the Inspector for refreshing purposes. Adds a pop call to ensure AB is in focus when shown --- .../assetBrowser/scripts/assetBrowser.tscript | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetBrowser.tscript b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetBrowser.tscript index 33f67ddf7..3831adf2e 100644 --- a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetBrowser.tscript +++ b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetBrowser.tscript @@ -256,7 +256,7 @@ function AssetBrowser::selectAsset( %this, %asset ) %this.changeAsset(); } - EWInspectorWindow.refresh(); + Inspector.refresh(); AssetBrowser.hideDialog(); } @@ -270,6 +270,7 @@ function AssetBrowser::showDialog( %this, %AssetTypeFilter, %selectCallback, %ta AssetBrowser.fieldTargetObject = %targetObj; AssetBrowser.fieldTargetName = %fieldName; + Canvas.popDialog(AssetBrowser); Canvas.pushDialog(AssetBrowser); AssetBrowser.setVisible(1); AssetBrowserWindow.setVisible(1); @@ -1701,6 +1702,30 @@ function AssetBrowser::doRebuildAssetArray(%this) %tscriptPattern = %breadcrumbPath @ "/" @ "*.tscript"; for (%fullScriptPath = findFirstFile(%tscriptPattern); %fullScriptPath !$= ""; %fullScriptPath = findNextFile(%tscriptPattern)) { + //If it's associated to an asset, we'll want to do extra checks + %assetQuery = new AssetQuery(); + %foundAssets = AssetDatabase.findAssetLooseFile(%assetQuery, %fullScriptPath); + + if(%foundAssets != 0) + { + %doSkip = false; + %count = %assetQuery.getCount(); + for(%i=0; %i < %count; %i++) + { + %assetId = %assetQuery.getAsset(%i); + %foundAssetType = AssetDatabase.getAssetType(%assetId); + + if(%foundAssetType !$= "ScriptAsset" && %foundAssetType !$= "GUIAsset") + { + %doSkip = true; + break; + } + } + + if(%doSkip) + continue; + } + %tscriptPath = filePath(%fullScriptPath); %tscriptName = fileName(%fullScriptPath); From 9a10d52e0bf7360a2ba86cc29ce2355e3cb739d9 Mon Sep 17 00:00:00 2001 From: Areloch Date: Sun, 21 Feb 2021 02:21:50 -0600 Subject: [PATCH 2/2] Added logic to correctly associate constructor script file for shape asset to asset as an assetfile --- Engine/source/T3D/assets/assetImporter.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Engine/source/T3D/assets/assetImporter.cpp b/Engine/source/T3D/assets/assetImporter.cpp index 37ba57c53..1edf3d0d6 100644 --- a/Engine/source/T3D/assets/assetImporter.cpp +++ b/Engine/source/T3D/assets/assetImporter.cpp @@ -2877,11 +2877,12 @@ Torque::Path AssetImporter::importShapeAsset(AssetImportObject* assetItem) StringTableEntry assetName = StringTable->insert(assetItem->assetName.c_str()); String shapeFileName = assetItem->filePath.getFileName() + "." + assetItem->filePath.getExtension(); + String constructorFileName = assetItem->filePath.getFileName() + "." TORQUE_SCRIPT_EXTENSION; String assetPath = targetPath + "/" + shapeFileName; - String constructorPath = targetPath + "/" + assetItem->filePath.getFileName() + "." TORQUE_SCRIPT_EXTENSION; + String constructorPath = targetPath + "/" + constructorFileName; String tamlPath = targetPath + "/" + assetName + ".asset.taml"; String originalPath = assetItem->filePath.getFullPath().c_str(); - String originalConstructorPath = assetItem->filePath.getPath() + "/" + assetItem->filePath.getFileName() + "." TORQUE_SCRIPT_EXTENSION; + String originalConstructorPath = assetItem->filePath.getPath() + "/" + constructorFileName; char qualifiedFromFile[2048]; char qualifiedToFile[2048]; @@ -2896,6 +2897,7 @@ Torque::Path AssetImporter::importShapeAsset(AssetImportObject* assetItem) newAsset->setAssetName(assetName); newAsset->setShapeFile(shapeFileName.c_str()); + newAsset->setShapeConstructorFile(constructorFileName.c_str()); AssetImportConfig* cachedConfig = new AssetImportConfig();; cachedConfig->registerObject();