From a5944aff19bd99046993d7d2b7ce1cafc39b261e Mon Sep 17 00:00:00 2001 From: Areloch Date: Fri, 26 Nov 2021 16:40:15 -0600 Subject: [PATCH] Adjusted callback handling of asset inspector fields when invoking AB to select asset for more consistent behavior and better handling of updating the objects and inspector Added logic to forcefully acquire newly imported asset definition to better try and ensure it's loaded immediately after import Added logic to asset importer so if a file is not found for an importing material asset, if populate maps is on, then it will try and find a matching image asset in the destination module Added logic to tsStatic to better handle fields being updated via the editor, forcing updates and refreshes of the shape and materialSlots Fixed handling of guiBitmapButtonCtrl so it will update the bitmap used when edited via the Gui Editor Updated image ref to the hudFill image asset for the console GUI Cleaned up names for the default camera model/material Defaulted import config to utilize the Prune action instead of rename for more predictable default behavior Added icons next to AB's preview slider bar for additional visual feedback of slider intent Added missing checkbox to asset import window and cleaned up scaling behavior Fixed handling of drag-n-drop behavior in GUI editor so it doesn't block further interaction Added logic for drag-n-drop of image assets to GUI Editor so it will create a GuiBitmapCtrl with the image Added handling for drag-n-drop import of folders of assets to AB/Asset Import Added missing asset import config option to indicate if config supported import of sound assets Added logic when opening asset import config editor, where if there is a default import config set in the settings, it will open that one by default Hid the collision section of the import config editor, as those options are currently unutilized Improved behavior for Create New Folder window in the AB, now always pushing to the front, and also selecting the text by default, so the user can just start typing the new name Also added return and escape key accelerators to Create New Folder window for better UX Fixed display of editor windows, adding a distinct blue color to highlighted windows' title bar and fixing display of minimize/maximize/window/close buttons Moved GUIEditor's onControlDropped function to the AB script to match placement of sibling world editor function Fixed issue with material editor where the ORM Config map slot was getting the normal map instead of the correct ORM map --- Engine/source/T3D/assets/CubemapAsset.cpp | 2 +- Engine/source/T3D/assets/GUIAsset.cpp | 2 +- Engine/source/T3D/assets/ImageAsset.cpp | 6 +- Engine/source/T3D/assets/MaterialAsset.cpp | 4 +- Engine/source/T3D/assets/ParticleAsset.cpp | 2 +- Engine/source/T3D/assets/ShapeAsset.cpp | 5 +- Engine/source/T3D/assets/TerrainAsset.cpp | 2 +- .../T3D/assets/TerrainMaterialAsset.cpp | 2 +- Engine/source/T3D/assets/assetImporter.cpp | 62 +- .../source/T3D/assets/stateMachineAsset.cpp | 2 +- Engine/source/T3D/tsStatic.cpp | 11 +- .../gui/buttons/guiBitmapButtonCtrl.cpp | 27 +- .../source/gui/buttons/guiBitmapButtonCtrl.h | 5 +- .../game/core/console/guis/console.gui | 2 +- .../core/console/scripts/profiles.tscript | 4 +- .../core/gameObjects/shapes/Camera.asset.taml | 5 - .../core/gameObjects/shapes/Green.asset.taml | 7 + .../gameObjects/{images => shapes}/camera.png | Bin .../core/gameObjects/shapes/camera.tscript | 2 +- .../camera_image.asset.taml | 0 .../core/gameObjects/shapes/green.tscript | 196 +++ .../rendering/materials/moon_noglow.tscript | 9 + .../rendering/materials/moon_wglow.tscript | 9 + .../tools/assetBrowser/assetImportConfigs.xml | 1 + .../tools/assetBrowser/guis/assetBrowser.gui | 34 +- .../tools/assetBrowser/guis/assetImport.gui | 1055 +++++++++-------- .../tools/assetBrowser/guis/newFolder.gui | 4 +- .../assetBrowser/scripts/assetBrowser.tscript | 71 +- .../assetBrowser/scripts/assetImport.tscript | 16 +- .../scripts/assetImportConfig.tscript | 1 + .../scripts/assetImportConfigEditor.tscript | 5 +- .../scripts/assetTypes/creatorObj.tscript | 1 + .../scripts/assetTypes/folder.tscript | 4 +- .../tools/gui/images/stencilIcons/larger.png | Bin 15389 -> 1544 bytes .../tools/gui/images/stencilIcons/smaller.png | Bin 15374 -> 1565 bytes .../BaseGame/game/tools/gui/images/window.png | Bin 6786 -> 7565 bytes .../guiEditor/scripts/guiEditor.ed.tscript | 24 - .../scripts/materialEditor.ed.tscript | 4 +- 38 files changed, 979 insertions(+), 607 deletions(-) create mode 100644 Templates/BaseGame/game/core/gameObjects/shapes/Green.asset.taml rename Templates/BaseGame/game/core/gameObjects/{images => shapes}/camera.png (100%) rename Templates/BaseGame/game/core/gameObjects/{images => shapes}/camera_image.asset.taml (100%) create mode 100644 Templates/BaseGame/game/core/gameObjects/shapes/green.tscript create mode 100644 Templates/BaseGame/game/core/rendering/materials/moon_noglow.tscript create mode 100644 Templates/BaseGame/game/core/rendering/materials/moon_wglow.tscript diff --git a/Engine/source/T3D/assets/CubemapAsset.cpp b/Engine/source/T3D/assets/CubemapAsset.cpp index 8c132ea74..0ecb56f8d 100644 --- a/Engine/source/T3D/assets/CubemapAsset.cpp +++ b/Engine/source/T3D/assets/CubemapAsset.cpp @@ -199,7 +199,7 @@ GuiControl* GuiInspectorTypeCubemapAssetPtr::constructEditControl() // Change filespec char szBuffer[512]; dSprintf(szBuffer, sizeof(szBuffer), "AssetBrowser.showDialog(\"CubemapAsset\", \"AssetBrowser.changeAsset\", %d, %s);", - mInspector->getInspectObject(), mCaption); + mInspector->getIdString(), mCaption); mBrowseButton->setField("Command", szBuffer); setDataField(StringTable->insert("object"), NULL, String::ToString(mInspector->getInspectObject()).c_str()); diff --git a/Engine/source/T3D/assets/GUIAsset.cpp b/Engine/source/T3D/assets/GUIAsset.cpp index cacc3f9be..acef864db 100644 --- a/Engine/source/T3D/assets/GUIAsset.cpp +++ b/Engine/source/T3D/assets/GUIAsset.cpp @@ -257,7 +257,7 @@ GuiControl* GuiInspectorTypeGUIAssetPtr::constructEditControl() // Change filespec char szBuffer[512]; dSprintf(szBuffer, sizeof(szBuffer), "AssetBrowser.showDialog(\"GUIAsset\", \"AssetBrowser.changeAsset\", %d, %s);", - mInspector->getComponentGroupTargetId(), mCaption); + mInspector->getIdString(), mCaption); mBrowseButton->setField("Command", szBuffer); // Create "Open in ShapeEditor" button diff --git a/Engine/source/T3D/assets/ImageAsset.cpp b/Engine/source/T3D/assets/ImageAsset.cpp index af55747ca..2c5f9f341 100644 --- a/Engine/source/T3D/assets/ImageAsset.cpp +++ b/Engine/source/T3D/assets/ImageAsset.cpp @@ -480,7 +480,7 @@ GuiControl* GuiInspectorTypeImageAssetPtr::constructEditControl() // Change filespec char szBuffer[512]; dSprintf(szBuffer, sizeof(szBuffer), "AssetBrowser.showDialog(\"ImageAsset\", \"AssetBrowser.changeAsset\", %s, %s);", - mInspector->getInspectObject()->getIdString(), mCaption); + mInspector->getIdString(), mCaption); mBrowseButton->setField("Command", szBuffer); setDataField(StringTable->insert("targetObject"), NULL, mInspector->getInspectObject()->getIdString()); @@ -488,11 +488,9 @@ GuiControl* GuiInspectorTypeImageAssetPtr::constructEditControl() // Create "Open in ShapeEditor" button mImageEdButton = new GuiBitmapButtonCtrl(); - dSprintf(szBuffer, sizeof(szBuffer), "ShapeEditorPlugin.openShapeAssetId(%d.getText());", retCtrl->getId()); - mImageEdButton->setField("Command", szBuffer); - char bitmapName[512] = "ToolsModule:GameTSCtrl_image"; mImageEdButton->setBitmap(StringTable->insert(bitmapName)); + mImageEdButton->setHidden(true); mImageEdButton->setDataField(StringTable->insert("Profile"), NULL, "GuiButtonProfile"); mImageEdButton->setDataField(StringTable->insert("tooltipprofile"), NULL, "GuiToolTipProfile"); diff --git a/Engine/source/T3D/assets/MaterialAsset.cpp b/Engine/source/T3D/assets/MaterialAsset.cpp index e51f9a709..f2197cf01 100644 --- a/Engine/source/T3D/assets/MaterialAsset.cpp +++ b/Engine/source/T3D/assets/MaterialAsset.cpp @@ -432,8 +432,8 @@ GuiControl* GuiInspectorTypeMaterialAssetPtr::constructEditControl() // Change filespec char szBuffer[512]; - dSprintf(szBuffer, sizeof(szBuffer), "AssetBrowser.showDialog(\"MaterialAsset\", \"AssetBrowser.changeAsset\", %s, \"\");", - getIdString()); + dSprintf(szBuffer, sizeof(szBuffer), "AssetBrowser.showDialog(\"MaterialAsset\", \"AssetBrowser.changeAsset\", %s, %s);", + mInspector->getIdString(), mCaption); mBrowseButton->setField("Command", szBuffer); setDataField(StringTable->insert("targetObject"), NULL, mInspector->getInspectObject()->getIdString()); diff --git a/Engine/source/T3D/assets/ParticleAsset.cpp b/Engine/source/T3D/assets/ParticleAsset.cpp index 566611355..24005973e 100644 --- a/Engine/source/T3D/assets/ParticleAsset.cpp +++ b/Engine/source/T3D/assets/ParticleAsset.cpp @@ -151,7 +151,7 @@ GuiControl* GuiInspectorTypeParticleAssetPtr::constructEditControl() // Change filespec char szBuffer[512]; dSprintf(szBuffer, sizeof(szBuffer), "AssetBrowser.showDialog(\"ParticleAsset\", \"AssetBrowser.changeAsset\", %d, %s);", - mInspector->getComponentGroupTargetId(), mCaption); + mInspector->getIdString(), mCaption); mBrowseButton->setField("Command", szBuffer); // Create "Open in ShapeEditor" button diff --git a/Engine/source/T3D/assets/ShapeAsset.cpp b/Engine/source/T3D/assets/ShapeAsset.cpp index 7a8628238..99becc8a6 100644 --- a/Engine/source/T3D/assets/ShapeAsset.cpp +++ b/Engine/source/T3D/assets/ShapeAsset.cpp @@ -49,6 +49,7 @@ #ifdef TORQUE_TOOLS #include "ts/tsLastDetail.h" #endif +#include "util/imposterCapture.h" StringTableEntry ShapeAsset::smNoShapeAssetFallback = NULL; @@ -599,8 +600,8 @@ GuiControl* GuiInspectorTypeShapeAssetPtr::constructEditControl() // Change filespec char szBuffer[512]; - dSprintf(szBuffer, sizeof(szBuffer), "AssetBrowser.showDialog(\"ShapeAsset\", \"AssetBrowser.changeAsset\", %s, %s);", - mInspector->getInspectObject()->getIdString(), mCaption); + dSprintf(szBuffer, sizeof(szBuffer), "AssetBrowser.showDialog(\"ShapeAsset\", \"AssetBrowser.changeAsset\", %s, %s);", + mInspector->getIdString(), mCaption); mBrowseButton->setField("Command", szBuffer); setDataField(StringTable->insert("targetObject"), NULL, mInspector->getInspectObject()->getIdString()); diff --git a/Engine/source/T3D/assets/TerrainAsset.cpp b/Engine/source/T3D/assets/TerrainAsset.cpp index 70ce8786b..2887cea2d 100644 --- a/Engine/source/T3D/assets/TerrainAsset.cpp +++ b/Engine/source/T3D/assets/TerrainAsset.cpp @@ -465,7 +465,7 @@ GuiControl* GuiInspectorTypeTerrainAssetPtr::constructEditControl() // Change filespec char szBuffer[512]; dSprintf(szBuffer, sizeof(szBuffer), "AssetBrowser.showDialog(\"TerrainAsset\", \"AssetBrowser.changeAsset\", %s, %s);", - mInspector->getInspectObject()->getIdString(), mCaption); + mInspector->getIdString(), mCaption); mBrowseButton->setField("Command", szBuffer); setDataField(StringTable->insert("targetObject"), NULL, mInspector->getInspectObject()->getIdString()); diff --git a/Engine/source/T3D/assets/TerrainMaterialAsset.cpp b/Engine/source/T3D/assets/TerrainMaterialAsset.cpp index b4d0c4214..ee5a36004 100644 --- a/Engine/source/T3D/assets/TerrainMaterialAsset.cpp +++ b/Engine/source/T3D/assets/TerrainMaterialAsset.cpp @@ -264,7 +264,7 @@ GuiControl* GuiInspectorTypeTerrainMaterialAssetPtr::constructEditControl() // Change filespec char szBuffer[512]; dSprintf(szBuffer, sizeof(szBuffer), "AssetBrowser.showDialog(\"TerrainMaterialAsset\", \"AssetBrowser.changeAsset\", %d, %s);", - mInspector->getComponentGroupTargetId(), mCaption); + mInspector->getIdString(), mCaption); mMatPreviewButton->setField("Command", szBuffer); mMatPreviewButton->setDataField(StringTable->insert("Profile"), NULL, "GuiButtonProfile"); diff --git a/Engine/source/T3D/assets/assetImporter.cpp b/Engine/source/T3D/assets/assetImporter.cpp index 2ceb677af..5d3d66180 100644 --- a/Engine/source/T3D/assets/assetImporter.cpp +++ b/Engine/source/T3D/assets/assetImporter.cpp @@ -1820,6 +1820,32 @@ void AssetImporter::processMaterialAsset(AssetImportObject* assetItem) } else { + //Check to see if our target module has a matching assetId for this slot already + String testAssetId = targetModuleId + ":" + assetItem->cleanAssetName + StringUnit::getUnit(suffixList.c_str(), i, ",;\t"); + bool localAssetFound = false; + + if (AssetDatabase.isDeclaredAsset(testAssetId.c_str())) + localAssetFound = true; + + if (localAssetFound == false) + //Didn't work, try checking the common default type suffix + testAssetId = targetModuleId + ":" + assetItem->cleanAssetName + StringUnit::getUnit(suffixList.c_str(), i, ",;\t") + activeImportConfig->AddedImageSuffix; + + if (localAssetFound) + { + //got a match! + ImageAsset* foundImageAsset = AssetDatabase.acquireAsset(testAssetId.c_str()); + imagePath = foundImageAsset->getImagePath(); + + AssetImportObject* newImageAssetObj = addImportingAsset("ImageAsset", imagePath, assetItem, ""); + + newImageAssetObj->imageSuffixType = ImageAsset::getImageTypeNameFromType((ImageAsset::ImageTypes)t); + newImageAssetObj->importStatus = AssetImportObject::UseForDependencies; //we aren't going to actually IMPORT an already imported asset, + //so mark it as dependency use only + matchedImageTypes[t] = newImageAssetObj; + break; + } + if (materialImageNoSuffix.isNotEmpty()) { testPath = assetItem->filePath.getRootAndPath(); @@ -1837,6 +1863,32 @@ void AssetImporter::processMaterialAsset(AssetImportObject* assetItem) matchedImageTypes[t] = newImageAssetObj; break; } + + //Check to see if our target module has a matching assetId for this slot already based on our trimmed mat name + testAssetId = targetModuleId + ":" + materialImageNoSuffix + StringUnit::getUnit(suffixList.c_str(), i, ",;\t"); + bool localAssetFound = false; + + if (AssetDatabase.isDeclaredAsset(testAssetId.c_str())) + localAssetFound = true; + + if (localAssetFound == false) + //Didn't work, try checking the common default type suffix + testAssetId = targetModuleId + ":" + materialImageNoSuffix + StringUnit::getUnit(suffixList.c_str(), i, ",;\t") + activeImportConfig->AddedImageSuffix; + + if (localAssetFound) + { + //got a match! + ImageAsset* foundImageAsset = AssetDatabase.acquireAsset(testAssetId.c_str()); + imagePath = foundImageAsset->getImagePath(); + + AssetImportObject* newImageAssetObj = addImportingAsset("ImageAsset", imagePath, assetItem, ""); + + newImageAssetObj->imageSuffixType = ImageAsset::getImageTypeNameFromType((ImageAsset::ImageTypes)t); + newImageAssetObj->importStatus = AssetImportObject::UseForDependencies; //we aren't going to actually IMPORT an already imported asset, + //so mark it as dependency use only + matchedImageTypes[t] = newImageAssetObj; + break; + } } } } @@ -2538,6 +2590,9 @@ void AssetImporter::importAssets(AssetImportObject* assetItem) { bool registerSuccess = AssetDatabase.addDeclaredAsset(moduleDef, assetPath.getFullPath().c_str()); + String assetIdStr = item->moduleName + ":" + item->assetName; + StringTableEntry assetId = StringTable->insert(assetIdStr.c_str()); + if (!registerSuccess) { dSprintf(importLogBuffer, sizeof(importLogBuffer), "AssetImporter::importAssets - Failed to successfully register new asset at path %s to moduleId %s", assetPath.getFullPath().c_str(), targetModuleId.c_str()); @@ -2548,9 +2603,6 @@ void AssetImporter::importAssets(AssetImportObject* assetItem) //Any special-case post-reg stuff here if (item->assetType == String("ShapeAsset")) { - String assetIdStr = item->moduleName + ":" + item->assetName; - StringTableEntry assetId = StringTable->insert(assetIdStr.c_str()); - //forcefully update it's shape constructor TSShapeConstructor* tss = TSShapeConstructor::findShapeConstructorByAssetId(assetId); @@ -2558,6 +2610,10 @@ void AssetImporter::importAssets(AssetImportObject* assetItem) tss->setShapeAssetId(assetId); } } + + //Go ahead and force the asset to load now just to kick it for immediate use + AssetBase* assetDef = AssetDatabase.acquireAsset(assetId); + AssetDatabase.releaseAsset(assetId); } else { diff --git a/Engine/source/T3D/assets/stateMachineAsset.cpp b/Engine/source/T3D/assets/stateMachineAsset.cpp index 888898bf3..c35b34d51 100644 --- a/Engine/source/T3D/assets/stateMachineAsset.cpp +++ b/Engine/source/T3D/assets/stateMachineAsset.cpp @@ -185,7 +185,7 @@ GuiControl* GuiInspectorTypeStateMachineAssetPtr::constructEditControl() // Change filespec char szBuffer[512]; dSprintf(szBuffer, sizeof(szBuffer), "AssetBrowser.showDialog(\"StateMachineAsset\", \"AssetBrowser.changeAsset\", %d, %s);", - mInspector->getComponentGroupTargetId(), mCaption); + mInspector->getIdString(), mCaption); mBrowseButton->setField("Command", szBuffer); // Create "Open in ShapeEditor" button diff --git a/Engine/source/T3D/tsStatic.cpp b/Engine/source/T3D/tsStatic.cpp index 8e090ef9f..dc3200f18 100644 --- a/Engine/source/T3D/tsStatic.cpp +++ b/Engine/source/T3D/tsStatic.cpp @@ -1086,15 +1086,16 @@ void TSStatic::unpackUpdate(NetConnection* con, BitStream* stream) stream->read(&mForceDetail); - if (stream->readFlag()) - mAnimOffset = stream->readFloat(7); + if (stream->readFlag()) + mAnimOffset = stream->readFloat(7); - if (stream->readFlag()) - mAnimSpeed = stream->readSignedFloat(7) * AnimSpeedMax; + if (stream->readFlag()) + mAnimSpeed = stream->readSignedFloat(7) * AnimSpeedMax; mPlayAmbient = stream->readFlag(); - + //update our shape, figuring that it likely changed + _createShape(); } mUseAlphaFade = stream->readFlag(); diff --git a/Engine/source/gui/buttons/guiBitmapButtonCtrl.cpp b/Engine/source/gui/buttons/guiBitmapButtonCtrl.cpp index 23c451fab..8e5e0fd76 100644 --- a/Engine/source/gui/buttons/guiBitmapButtonCtrl.cpp +++ b/Engine/source/gui/buttons/guiBitmapButtonCtrl.cpp @@ -232,32 +232,7 @@ void GuiBitmapButtonCtrl::inspectPostApply() { Parent::inspectPostApply(); - Torque::Path path( mBitmapName ); - const String& fileName = path.getFileName(); - - if( mUseStates ) - { - // If the filename points to a single state, automatically - // cut off the state part. Makes it easy to select files in - // the editor without having to go in and manually cut off the - // state parts all the time. - - static String s_n = "_n"; - static String s_d = "_d"; - static String s_h = "_h"; - static String s_i = "_i"; - - if( fileName.endsWith( s_n ) - || fileName.endsWith( s_d ) - || fileName.endsWith( s_h ) - || fileName.endsWith( s_i ) ) - { - path.setFileName( fileName.substr( 0, fileName.length() - 2 ) ); - path.setExtension( String::EmptyString ); - } - } - - setBitmap( StringTable->insert(path.getFullPath().c_str()) ); + setBitmap(getBitmap()); // if the extent is set to (0,0) in the gui editor and appy hit, this control will // set it's extent to be exactly the size of the normal bitmap (if present) diff --git a/Engine/source/gui/buttons/guiBitmapButtonCtrl.h b/Engine/source/gui/buttons/guiBitmapButtonCtrl.h index 1791c563a..000a77d0b 100644 --- a/Engine/source/gui/buttons/guiBitmapButtonCtrl.h +++ b/Engine/source/gui/buttons/guiBitmapButtonCtrl.h @@ -157,7 +157,10 @@ class GuiBitmapButtonCtrl : public GuiButtonCtrl /// @} - void onBitmapChange() {} + void onBitmapChange() + { + setBitmap(getBitmap()); + } public: diff --git a/Templates/BaseGame/game/core/console/guis/console.gui b/Templates/BaseGame/game/core/console/guis/console.gui index 3c5c217a6..daf013102 100644 --- a/Templates/BaseGame/game/core/console/guis/console.gui +++ b/Templates/BaseGame/game/core/console/guis/console.gui @@ -66,7 +66,7 @@ $guiContent = new GuiControl(ConsoleDlg) { canSaveDynamicFields = "0"; new GuiBitmapCtrl() { - bitmap = "data/ui/art/hudfill.png"; + bitmapAsset = "Core_GUI:hudFill"; color = "255 255 255 255"; wrap = "0"; position = "0 0"; diff --git a/Templates/BaseGame/game/core/console/scripts/profiles.tscript b/Templates/BaseGame/game/core/console/scripts/profiles.tscript index b83dd4fa7..fa358c3ca 100644 --- a/Templates/BaseGame/game/core/console/scripts/profiles.tscript +++ b/Templates/BaseGame/game/core/console/scripts/profiles.tscript @@ -50,11 +50,13 @@ new GuiControlProfile(GuiConsoleTextProfile) category = "Core"; }; +$ConsoleDefaultFillColor = "0 0 0 175"; + if(!isObject(ConsoleScrollProfile)) new GuiControlProfile(ConsoleScrollProfile : GuiScrollProfile) { opaque = true; - fillColor = "0 0 0 175"; + fillColor = $ConsoleDefaultFillColor; border = 1; //borderThickness = 0; borderColor = "0 0 0"; diff --git a/Templates/BaseGame/game/core/gameObjects/shapes/Camera.asset.taml b/Templates/BaseGame/game/core/gameObjects/shapes/Camera.asset.taml index bd49ffbb6..0f15637ff 100644 --- a/Templates/BaseGame/game/core/gameObjects/shapes/Camera.asset.taml +++ b/Templates/BaseGame/game/core/gameObjects/shapes/Camera.asset.taml @@ -1,6 +1 @@ - diff --git a/Templates/BaseGame/game/core/gameObjects/shapes/Green.asset.taml b/Templates/BaseGame/game/core/gameObjects/shapes/Green.asset.taml new file mode 100644 index 000000000..4eaaebab9 --- /dev/null +++ b/Templates/BaseGame/game/core/gameObjects/shapes/Green.asset.taml @@ -0,0 +1,7 @@ + diff --git a/Templates/BaseGame/game/core/gameObjects/images/camera.png b/Templates/BaseGame/game/core/gameObjects/shapes/camera.png similarity index 100% rename from Templates/BaseGame/game/core/gameObjects/images/camera.png rename to Templates/BaseGame/game/core/gameObjects/shapes/camera.png diff --git a/Templates/BaseGame/game/core/gameObjects/shapes/camera.tscript b/Templates/BaseGame/game/core/gameObjects/shapes/camera.tscript index 87d053808..6211dea72 100644 --- a/Templates/BaseGame/game/core/gameObjects/shapes/camera.tscript +++ b/Templates/BaseGame/game/core/gameObjects/shapes/camera.tscript @@ -1,5 +1,5 @@ -singleton TSShapeConstructor(cameradts) +singleton TSShapeConstructor(cameradts2) { baseShapeAsset = "Core_GameObjects:Camera"; singleDetailSize = "0"; diff --git a/Templates/BaseGame/game/core/gameObjects/images/camera_image.asset.taml b/Templates/BaseGame/game/core/gameObjects/shapes/camera_image.asset.taml similarity index 100% rename from Templates/BaseGame/game/core/gameObjects/images/camera_image.asset.taml rename to Templates/BaseGame/game/core/gameObjects/shapes/camera_image.asset.taml diff --git a/Templates/BaseGame/game/core/gameObjects/shapes/green.tscript b/Templates/BaseGame/game/core/gameObjects/shapes/green.tscript new file mode 100644 index 000000000..9ea7a7bd0 --- /dev/null +++ b/Templates/BaseGame/game/core/gameObjects/shapes/green.tscript @@ -0,0 +1,196 @@ +//--- OBJECT WRITE BEGIN --- +new Material(OctahedronMat) { + mapTo = "green"; + diffuseColor[0] = "0 1 0 1"; + diffuseColor[1] = "1 1 1 1"; + diffuseColor[2] = "1 1 1 1"; + diffuseColor[3] = "1 1 1 1"; + DiffuseMap[0] = "core/gameObjects/images/camera"; + diffuseMapSRGB[0] = "1"; + diffuseMapSRGB[1] = "1"; + diffuseMapSRGB[2] = "1"; + diffuseMapSRGB[3] = "1"; + detailScale[0] = "2 2"; + detailScale[1] = "2 2"; + detailScale[2] = "2 2"; + detailScale[3] = "2 2"; + detailNormalMapStrength[0] = "1"; + detailNormalMapStrength[1] = "1"; + detailNormalMapStrength[2] = "1"; + detailNormalMapStrength[3] = "1"; + roughness[0] = "1"; + roughness[1] = "1"; + roughness[2] = "1"; + roughness[3] = "1"; + metalness[0] = "0"; + metalness[1] = "0"; + metalness[2] = "0"; + metalness[3] = "0"; + glowMul[0] = "0"; + glowMul[1] = "0"; + glowMul[2] = "0"; + glowMul[3] = "0"; + accuEnabled[0] = "0"; + accuEnabled[1] = "0"; + accuEnabled[2] = "0"; + accuEnabled[3] = "0"; + accuScale[0] = "1"; + accuScale[1] = "1"; + accuScale[2] = "1"; + accuScale[3] = "1"; + accuDirection[0] = "1"; + accuDirection[1] = "1"; + accuDirection[2] = "1"; + accuDirection[3] = "1"; + accuStrength[0] = "0.6"; + accuStrength[1] = "0.6"; + accuStrength[2] = "0.6"; + accuStrength[3] = "0.6"; + accuCoverage[0] = "0.9"; + accuCoverage[1] = "0.9"; + accuCoverage[2] = "0.9"; + accuCoverage[3] = "0.9"; + accuSpecular[0] = "16"; + accuSpecular[1] = "16"; + accuSpecular[2] = "16"; + accuSpecular[3] = "16"; + isSRGB[0] = "0"; + isSRGB[1] = "0"; + isSRGB[2] = "0"; + isSRGB[3] = "0"; + invertRoughness[0] = "0"; + invertRoughness[1] = "0"; + invertRoughness[2] = "0"; + invertRoughness[3] = "0"; + roughnessChan[0] = "0"; + roughnessChan[1] = "0"; + roughnessChan[2] = "0"; + roughnessChan[3] = "0"; + AOChan[0] = "1"; + AOChan[1] = "1"; + AOChan[2] = "1"; + AOChan[3] = "1"; + metalChan[0] = "2"; + metalChan[1] = "2"; + metalChan[2] = "2"; + metalChan[3] = "2"; + glow[0] = "0"; + glow[1] = "0"; + glow[2] = "0"; + glow[3] = "0"; + parallaxScale[0] = "0"; + parallaxScale[1] = "0"; + parallaxScale[2] = "0"; + parallaxScale[3] = "0"; + useAnisotropic[0] = "1"; + useAnisotropic[1] = "1"; + useAnisotropic[2] = "1"; + useAnisotropic[3] = "1"; + vertLit[0] = "0"; + vertLit[1] = "0"; + vertLit[2] = "0"; + vertLit[3] = "0"; + vertColor[0] = "0"; + vertColor[1] = "0"; + vertColor[2] = "0"; + vertColor[3] = "0"; + minnaertConstant[0] = "-1"; + minnaertConstant[1] = "-1"; + minnaertConstant[2] = "-1"; + minnaertConstant[3] = "-1"; + subSurface[0] = "0"; + subSurface[1] = "0"; + subSurface[2] = "0"; + subSurface[3] = "0"; + subSurfaceColor[0] = "1 0.2 0.2 1"; + subSurfaceColor[1] = "1 0.2 0.2 1"; + subSurfaceColor[2] = "1 0.2 0.2 1"; + subSurfaceColor[3] = "1 0.2 0.2 1"; + subSurfaceRolloff[0] = "0.2"; + subSurfaceRolloff[1] = "0.2"; + subSurfaceRolloff[2] = "0.2"; + subSurfaceRolloff[3] = "0.2"; + emissive[0] = "0"; + emissive[1] = "0"; + emissive[2] = "0"; + emissive[3] = "0"; + foreground[0] = "0"; + foreground[1] = "0"; + foreground[2] = "0"; + foreground[3] = "0"; + doubleSided = "0"; + animFlags[0] = "0x00000000"; + animFlags[1] = "0x00000000"; + animFlags[2] = "0x00000000"; + animFlags[3] = "0x00000000"; + scrollDir[0] = "0 0"; + scrollDir[1] = "0 0"; + scrollDir[2] = "0 0"; + scrollDir[3] = "0 0"; + scrollSpeed[0] = "0"; + scrollSpeed[1] = "0"; + scrollSpeed[2] = "0"; + scrollSpeed[3] = "0"; + rotSpeed[0] = "0"; + rotSpeed[1] = "0"; + rotSpeed[2] = "0"; + rotSpeed[3] = "0"; + rotPivotOffset[0] = "0 0"; + rotPivotOffset[1] = "0 0"; + rotPivotOffset[2] = "0 0"; + rotPivotOffset[3] = "0 0"; + waveType[0] = "Sin"; + waveType[1] = "Sin"; + waveType[2] = "Sin"; + waveType[3] = "Sin"; + waveFreq[0] = "0"; + waveFreq[1] = "0"; + waveFreq[2] = "0"; + waveFreq[3] = "0"; + waveAmp[0] = "0"; + waveAmp[1] = "0"; + waveAmp[2] = "0"; + waveAmp[3] = "0"; + sequenceFramePerSec[0] = "0"; + sequenceFramePerSec[1] = "0"; + sequenceFramePerSec[2] = "0"; + sequenceFramePerSec[3] = "0"; + sequenceSegmentSize[0] = "0"; + sequenceSegmentSize[1] = "0"; + sequenceSegmentSize[2] = "0"; + sequenceSegmentSize[3] = "0"; + cellIndex[0] = "0 0"; + cellIndex[1] = "0 0"; + cellIndex[2] = "0 0"; + cellIndex[3] = "0 0"; + cellLayout[0] = "0 0"; + cellLayout[1] = "0 0"; + cellLayout[2] = "0 0"; + cellLayout[3] = "0 0"; + cellSize[0] = "0"; + cellSize[1] = "0"; + cellSize[2] = "0"; + cellSize[3] = "0"; + bumpAtlas[0] = "0"; + bumpAtlas[1] = "0"; + bumpAtlas[2] = "0"; + bumpAtlas[3] = "0"; + castShadows = "0"; + planarReflection = "0"; + translucent = "1"; + translucentBlendOp = "PreMul"; + translucentZWrite = "0"; + alphaTest = "0"; + alphaRef = "1"; + dynamicCubemap = "0"; + showFootprints = "1"; + showDust = "0"; + effectColor[0] = "0 0 0 0"; + effectColor[1] = "0 0 0 0"; + footstepSoundId = "-1"; + impactSoundId = "-1"; + ImpactFXIndex = "-1"; + canSave = "1"; + canSaveDynamicFields = "1"; +}; +//--- OBJECT WRITE END --- diff --git a/Templates/BaseGame/game/core/rendering/materials/moon_noglow.tscript b/Templates/BaseGame/game/core/rendering/materials/moon_noglow.tscript new file mode 100644 index 000000000..b9e69c0da --- /dev/null +++ b/Templates/BaseGame/game/core/rendering/materials/moon_noglow.tscript @@ -0,0 +1,9 @@ +//--- OBJECT WRITE BEGIN --- +singleton Material(moon_noglow) { + mapTo="moon_noglow"; + DiffuseMapAsset = "Core_Rendering:moon_noglow_image"; + emissive = true; + translucent = true; + vertColor[ 0 ] = true; +}; +//--- OBJECT WRITE END --- diff --git a/Templates/BaseGame/game/core/rendering/materials/moon_wglow.tscript b/Templates/BaseGame/game/core/rendering/materials/moon_wglow.tscript new file mode 100644 index 000000000..ad87ba5a3 --- /dev/null +++ b/Templates/BaseGame/game/core/rendering/materials/moon_wglow.tscript @@ -0,0 +1,9 @@ +//--- OBJECT WRITE BEGIN --- +singleton Material(moon_wglow) { + mapTo="moon_wglow"; + DiffuseMapAsset = "Core_Rendering:moon_wglow_image"; + emissive = true; + translucent = true; + vertColor[ 0 ] = true; +}; +//--- OBJECT WRITE END --- diff --git a/Templates/BaseGame/game/tools/assetBrowser/assetImportConfigs.xml b/Templates/BaseGame/game/tools/assetBrowser/assetImportConfigs.xml index ad9de2677..8417b1fa4 100644 --- a/Templates/BaseGame/game/tools/assetBrowser/assetImportConfigs.xml +++ b/Templates/BaseGame/game/tools/assetBrowser/assetImportConfigs.xml @@ -19,6 +19,7 @@ 0 0 AutoPrune + AutoPrune 1 0 diff --git a/Templates/BaseGame/game/tools/assetBrowser/guis/assetBrowser.gui b/Templates/BaseGame/game/tools/assetBrowser/guis/assetBrowser.gui index 59e7beb10..e03d27ecb 100644 --- a/Templates/BaseGame/game/tools/assetBrowser/guis/assetBrowser.gui +++ b/Templates/BaseGame/game/tools/assetBrowser/guis/assetBrowser.gui @@ -1084,6 +1084,22 @@ $guiContent = new GuiControl(AssetBrowser) { canSave = "1"; canSaveDynamicFields = "0"; }; + new GuiBitmapCtrl() { + bitmapAsset = "ToolsModule:smaller_image"; + position = "5 588"; + extent = "20 20"; + minExtent = "8 2"; + horizSizing = "left"; + vertSizing = "top"; + profile = "ToolsGuiDefaultProfile"; + visible = "1"; + active = "1"; + tooltipProfile = "GuiToolTipProfile"; + hovertime = "1000"; + isContainer = "0"; + canSave = "1"; + canSaveDynamicFields = "0"; + }; new GuiSliderCtrl() { range = "0 2"; ticks = "5"; @@ -1092,7 +1108,7 @@ $guiContent = new GuiControl(AssetBrowser) { useFillBar = "0"; fillBarColor = "255 255 255 255"; renderTicks = "0"; - position = "8 588"; + position = "28 590"; extent = "75 20"; minExtent = "8 2"; horizSizing = "right"; @@ -1109,6 +1125,22 @@ $guiContent = new GuiControl(AssetBrowser) { canSave = "1"; canSaveDynamicFields = "0"; }; + new GuiBitmapCtrl() { + bitmapAsset = "ToolsModule:larger_image"; + position = "103 588"; + extent = "20 20"; + minExtent = "8 2"; + horizSizing = "left"; + vertSizing = "top"; + profile = "ToolsGuiDefaultProfile"; + visible = "1"; + active = "1"; + tooltipProfile = "GuiToolTipProfile"; + hovertime = "1000"; + isContainer = "0"; + canSave = "1"; + canSaveDynamicFields = "0"; + }; }; }; //--- OBJECT WRITE END --- diff --git a/Templates/BaseGame/game/tools/assetBrowser/guis/assetImport.gui b/Templates/BaseGame/game/tools/assetBrowser/guis/assetImport.gui index 0f725dbd8..ccac94a50 100644 --- a/Templates/BaseGame/game/tools/assetBrowser/guis/assetImport.gui +++ b/Templates/BaseGame/game/tools/assetBrowser/guis/assetImport.gui @@ -14,522 +14,6 @@ $guiContent = new GuiControl(AssetImportCtrl) { canSave = "1"; canSaveDynamicFields = "1"; - new GuiWindowCtrl(ImportAssetWindow) { - text = "Import Assets"; - resizeWidth = "1"; - resizeHeight = "1"; - canMove = "1"; - canClose = "0"; - canMinimize = "0"; - canMaximize = "0"; - canCollapse = "0"; - edgeSnap = "1"; - margin = "0 0 0 0"; - padding = "0 0 0 0"; - anchorTop = "1"; - anchorBottom = "0"; - anchorLeft = "1"; - anchorRight = "0"; - position = "132 80"; - extent = "733 582"; - minExtent = "48 92"; - horizSizing = "center"; - vertSizing = "center"; - profile = "ToolsGuiWindowProfile"; - visible = "1"; - active = "1"; - tooltipProfile = "ToolsGuiToolTipProfile"; - hovertime = "1000"; - isContainer = "1"; - canSave = "1"; - canSaveDynamicFields = "0"; - - new GuiTextCtrl() { - text = "Target Path:"; - maxLength = "1024"; - margin = "0 0 0 0"; - padding = "0 0 0 0"; - anchorTop = "1"; - anchorBottom = "0"; - anchorLeft = "1"; - anchorRight = "0"; - position = "12 30"; - extent = "116 17"; - minExtent = "8 2"; - horizSizing = "right"; - vertSizing = "bottom"; - profile = "ToolsGuiTextProfile"; - visible = "1"; - active = "1"; - tooltipProfile = "GuiToolTipProfile"; - hovertime = "1000"; - isContainer = "1"; - canSave = "1"; - canSaveDynamicFields = "0"; - }; - new GuiTextEditCtrl(AssetImportTargetAddress) { - historySize = "0"; - tabComplete = "0"; - sinkAllKeyEvents = "0"; - password = "0"; - passwordMask = "*"; - maxLength = "1024"; - margin = "0 0 0 0"; - padding = "0 0 0 0"; - anchorTop = "1"; - anchorBottom = "0"; - anchorLeft = "1"; - anchorRight = "0"; - position = "135 30"; - extent = "569 18"; - minExtent = "8 2"; - horizSizing = "width"; - vertSizing = "bottom"; - profile = "ToolsGuiTextEditProfile"; - visible = "1"; - active = "0"; - tooltipProfile = "GuiToolTipProfile"; - hovertime = "1000"; - isContainer = "1"; - canSave = "1"; - canSaveDynamicFields = "0"; - }; - new GuiBitmapButtonCtrl() { - bitmapAsset = "ToolsModule:iconOpen_image"; - bitmapMode = "Centered"; - autoFitExtents = "0"; - useModifiers = "0"; - useStates = "1"; - masked = "0"; - groupNum = "-1"; - buttonType = "PushButton"; - useMouseEvents = "0"; - position = "707 27"; - extent = "22 22"; - minExtent = "8 2"; - horizSizing = "left"; - vertSizing = "bottom"; - profile = "ToolsGuiButtonProfile"; - visible = "1"; - active = "1"; - command = "SelectAssetPath.showDialog(AssetBrowser.dirHandler.currentAddress, \"assetImportUpdatePath\");\nSelectAssetPathWindow.selectWindow();"; - tooltipProfile = "GuiToolTipProfile"; - tooltip = "New Module"; - hovertime = "1000"; - isContainer = "0"; - canSave = "1"; - canSaveDynamicFields = "0"; - }; - new GuiTextCtrl() { - text = "Target Module:"; - maxLength = "1024"; - margin = "0 0 0 0"; - padding = "0 0 0 0"; - anchorTop = "1"; - anchorBottom = "0"; - anchorLeft = "1"; - anchorRight = "0"; - position = "12 54"; - extent = "116 17"; - minExtent = "8 2"; - horizSizing = "right"; - vertSizing = "bottom"; - profile = "ToolsGuiTextProfile"; - visible = "1"; - active = "1"; - tooltipProfile = "GuiToolTipProfile"; - hovertime = "1000"; - isContainer = "1"; - canSave = "1"; - canSaveDynamicFields = "0"; - }; - new GuiTextEditCtrl(AssetImportTargetModule) { - historySize = "0"; - tabComplete = "0"; - sinkAllKeyEvents = "0"; - password = "0"; - passwordMask = "*"; - maxLength = "1024"; - margin = "0 0 0 0"; - padding = "0 0 0 0"; - anchorTop = "1"; - anchorBottom = "0"; - anchorLeft = "1"; - anchorRight = "0"; - position = "135 53"; - extent = "569 18"; - minExtent = "8 2"; - horizSizing = "width"; - vertSizing = "bottom"; - profile = "ToolsGuiTextEditProfile"; - visible = "1"; - active = "0"; - tooltipProfile = "GuiToolTipProfile"; - hovertime = "1000"; - isContainer = "1"; - canSave = "1"; - canSaveDynamicFields = "0"; - }; - new GuiTextCtrl() { - text = "Import Options Config:"; - maxLength = "1024"; - margin = "0 0 0 0"; - padding = "0 0 0 0"; - anchorTop = "1"; - anchorBottom = "0"; - anchorLeft = "1"; - anchorRight = "0"; - position = "12 79"; - extent = "116 17"; - minExtent = "8 2"; - horizSizing = "right"; - vertSizing = "bottom"; - profile = "ToolsGuiTextProfile"; - visible = "1"; - active = "1"; - tooltipProfile = "GuiToolTipProfile"; - hovertime = "1000"; - isContainer = "1"; - canSave = "1"; - canSaveDynamicFields = "0"; - }; - new GuiPopUpMenuCtrlEx(ImportAssetConfigList) { - maxPopupHeight = "200"; - sbUsesNAColor = "0"; - reverseTextList = "0"; - bitmapBounds = "16 16"; - hotTrackCallback = "0"; - maxLength = "1024"; - margin = "0 0 0 0"; - padding = "0 0 0 0"; - anchorTop = "1"; - anchorBottom = "0"; - anchorLeft = "1"; - anchorRight = "0"; - position = "135 78"; - extent = "569 22"; - minExtent = "8 2"; - horizSizing = "width"; - vertSizing = "bottom"; - profile = "ToolsGuiPopUpMenuProfile"; - visible = "1"; - active = "1"; - tooltipProfile = "GuiToolTipProfile"; - hovertime = "1000"; - isContainer = "1"; - canSave = "1"; - canSaveDynamicFields = "0"; - }; - new GuiBitmapButtonCtrl() { - bitmapAsset = "ToolsModule:save_as_n_image"; - bitmapMode = "Centered"; - autoFitExtents = "0"; - useModifiers = "0"; - useStates = "1"; - masked = "0"; - groupNum = "-1"; - buttonType = "PushButton"; - useMouseEvents = "0"; - position = "711 77"; - extent = "15 22"; - minExtent = "8 2"; - horizSizing = "left"; - vertSizing = "bottom"; - profile = "ToolsGuiButtonProfile"; - visible = "1"; - active = "1"; - command = "Canvas.pushDialog(AssetImportConfigEditor);"; - tooltipProfile = "GuiToolTipProfile"; - tooltip = "Edit Config"; - hovertime = "1000"; - isContainer = "0"; - canSave = "1"; - canSaveDynamicFields = "0"; - }; - new GuiSplitContainer() { - orientation = "Vertical"; - splitterSize = "2"; - splitPoint = "182 100"; - fixedPanel = "None"; - fixedSize = "100"; - docking = "None"; - margin = "0 0 0 0"; - padding = "0 0 0 0"; - anchorTop = "1"; - anchorBottom = "0"; - anchorLeft = "1"; - anchorRight = "0"; - position = "5 102"; - extent = "723 447"; - minExtent = "64 64"; - horizSizing = "width"; - vertSizing = "height"; - profile = "ToolsGuiSolidDefaultProfile"; - visible = "1"; - active = "1"; - tooltipProfile = "GuiToolTipProfile"; - hovertime = "1000"; - isContainer = "1"; - canSave = "1"; - canSaveDynamicFields = "0"; - - new GuiPanel() { - docking = "Client"; - margin = "0 0 0 0"; - padding = "0 0 0 0"; - anchorTop = "1"; - anchorBottom = "0"; - anchorLeft = "1"; - anchorRight = "0"; - position = "0 0"; - extent = "180 447"; - minExtent = "16 16"; - horizSizing = "right"; - vertSizing = "bottom"; - profile = "ToolsGuiSolidDefaultProfile"; - visible = "1"; - active = "1"; - tooltipProfile = "GuiToolTipProfile"; - hovertime = "1000"; - isContainer = "1"; - internalName = "Panel1"; - canSave = "1"; - canSaveDynamicFields = "0"; - - new GuiScrollCtrl() { - willFirstRespond = "1"; - hScrollBar = "alwaysOff"; - vScrollBar = "dynamic"; - lockHorizScroll = "0"; - lockVertScroll = "0"; - constantThumbHeight = "0"; - childMargin = "0 0"; - mouseWheelScrollSpeed = "-1"; - margin = "0 0 0 0"; - padding = "0 0 0 0"; - anchorTop = "1"; - anchorBottom = "0"; - anchorLeft = "1"; - anchorRight = "0"; - position = "3 3"; - extent = "180 444"; - minExtent = "100 50"; - horizSizing = "width"; - vertSizing = "height"; - profile = "ToolsGuiScrollProfile"; - visible = "1"; - active = "1"; - tooltipProfile = "ToolsGuiToolTipProfile"; - hovertime = "1000"; - isContainer = "1"; - canSave = "1"; - canSaveDynamicFields = "0"; - - new GuiMouseEventCtrl(NewAssetsPanelInputs) { - lockMouse = "0"; - position = "1 0"; - extent = "339 467"; - minExtent = "8 2"; - horizSizing = "width"; - vertSizing = "height"; - profile = "GuiDefaultProfile"; - visible = "1"; - active = "1"; - tooltipProfile = "GuiToolTipProfile"; - hovertime = "1000"; - isContainer = "0"; - canSave = "1"; - canSaveDynamicFields = "0"; - }; - new GuiTreeViewCtrl() { - tabSize = "16"; - textOffset = "2"; - fullRowSelect = "0"; - itemHeight = "21"; - destroyTreeOnSleep = "1"; - mouseDragging = "1"; - multipleSelections = "1"; - deleteObjectAllowed = "1"; - dragToItemAllowed = "1"; - clearAllOnSingleSelection = "1"; - showRoot = "1"; - useInspectorTooltips = "0"; - tooltipOnWidthOnly = "0"; - showObjectIds = "1"; - showClassNames = "1"; - showObjectNames = "1"; - showInternalNames = "1"; - showClassNameForUnnamedObjects = "0"; - compareToObjectID = "1"; - canRenameObjects = "1"; - renameInternal = "0"; - position = "1 1"; - extent = "180 444"; - minExtent = "8 2"; - horizSizing = "width"; - vertSizing = "height"; - profile = "ToolsGuiTreeViewProfile"; - visible = "1"; - active = "1"; - tooltipProfile = "GuiToolTipProfile"; - hovertime = "1000"; - isContainer = "1"; - internalName = "NewAssetsTree"; - class = "NewAssetsViewTree"; - canSave = "1"; - canSaveDynamicFields = "0"; - }; - }; - }; - new GuiPanel() { - docking = "Client"; - margin = "0 0 0 0"; - padding = "0 0 0 0"; - anchorTop = "1"; - anchorBottom = "0"; - anchorLeft = "1"; - anchorRight = "0"; - position = "184 0"; - extent = "539 447"; - minExtent = "16 16"; - horizSizing = "right"; - vertSizing = "bottom"; - profile = "ToolsGuiSolidDefaultProfile"; - visible = "1"; - active = "1"; - tooltipProfile = "GuiToolTipProfile"; - hovertime = "1000"; - isContainer = "1"; - internalName = "panel2"; - canSave = "1"; - canSaveDynamicFields = "0"; - - new GuiScrollCtrl() { - willFirstRespond = "1"; - hScrollBar = "dynamic"; - vScrollBar = "dynamic"; - lockHorizScroll = "0"; - lockVertScroll = "0"; - constantThumbHeight = "0"; - childMargin = "0 0"; - mouseWheelScrollSpeed = "-1"; - margin = "0 0 0 0"; - padding = "0 0 0 0"; - anchorTop = "1"; - anchorBottom = "0"; - anchorLeft = "1"; - anchorRight = "0"; - position = "0 0"; - extent = "539 447"; - minExtent = "8 2"; - horizSizing = "width"; - vertSizing = "height"; - profile = "ToolsGuiScrollProfile"; - visible = "1"; - active = "1"; - tooltipProfile = "GuiToolTipProfile"; - hovertime = "1000"; - isContainer = "1"; - canSave = "1"; - canSaveDynamicFields = "0"; - - new GuiVariableInspector() { - dividerMargin = "5"; - showCustomFields = "1"; - stackingType = "Vertical"; - horizStacking = "Left to Right"; - vertStacking = "Top to Bottom"; - padding = "1"; - dynamicSize = "1"; - dynamicNonStackExtent = "0"; - dynamicPos = "0"; - changeChildSizeToFit = "1"; - changeChildPosition = "1"; - position = "1 1"; - extent = "522 615"; - minExtent = "16 16"; - horizSizing = "width"; - vertSizing = "height"; - profile = "ToolsGuiDefaultProfile"; - visible = "1"; - active = "1"; - tooltipProfile = "GuiToolTipProfile"; - hovertime = "1000"; - isContainer = "1"; - internalName = "NewAssetsInspector"; - canSave = "1"; - canSaveDynamicFields = "0"; - }; - }; - }; - }; - new GuiButtonCtrl(DoAssetImportButton) { - text = "Done"; - groupNum = "-1"; - buttonType = "PushButton"; - useMouseEvents = "0"; - position = "589 553"; - extent = "64 22"; - minExtent = "8 2"; - horizSizing = "left"; - vertSizing = "top"; - profile = "ToolsGuiButtonProfile"; - visible = "1"; - active = "1"; - command = "ImportAssetWindow.ImportAssets();"; - tooltipProfile = "ToolsGuiToolTipProfile"; - hovertime = "1000"; - isContainer = "0"; - canSave = "1"; - canSaveDynamicFields = "0"; - }; - new GuiButtonCtrl() { - text = "Cancel"; - groupNum = "-1"; - buttonType = "PushButton"; - useMouseEvents = "0"; - position = "657 553"; - extent = "64 22"; - minExtent = "8 2"; - horizSizing = "left"; - vertSizing = "top"; - profile = "ToolsGuiButtonProfile"; - visible = "1"; - active = "1"; - command = "ImportAssetWindow.close();"; - tooltipProfile = "ToolsGuiToolTipProfile"; - hovertime = "1000"; - isContainer = "0"; - canSave = "1"; - canSaveDynamicFields = "0"; - }; - new GuiBitmapButtonCtrl(ImportLogButton) { - bitmapAsset = "ToolsModule:iconInformation_image"; - bitmapMode = "Centered"; - autoFitExtents = "0"; - useModifiers = "0"; - useStates = "1"; - masked = "0"; - groupNum = "-1"; - buttonType = "PushButton"; - useMouseEvents = "0"; - position = "5 555"; - extent = "22 22"; - minExtent = "8 2"; - horizSizing = "left"; - vertSizing = "bottom"; - profile = "ToolsGuiButtonProfile"; - visible = "1"; - active = "1"; - command = "ImportAssetWindow.toggleLogWindow();"; - tooltipProfile = "GuiToolTipProfile"; - tooltip = "View Import Log"; - hovertime = "1000"; - isContainer = "0"; - canSave = "1"; - canSaveDynamicFields = "0"; - }; - }; new GuiWindowCtrl(ImportAssetConfigEditorWindow) { text = "Import Options Config"; resizeWidth = "1"; @@ -689,5 +173,544 @@ $guiContent = new GuiControl(AssetImportCtrl) { }; }; }; + new GuiWindowCtrl(ImportAssetWindow) { + text = "Import Assets"; + resizeWidth = "1"; + resizeHeight = "1"; + canMove = "1"; + canClose = "0"; + canMinimize = "0"; + canMaximize = "0"; + canCollapse = "0"; + edgeSnap = "1"; + margin = "0 0 0 0"; + padding = "0 0 0 0"; + anchorTop = "1"; + anchorBottom = "0"; + anchorLeft = "1"; + anchorRight = "0"; + position = "145 93"; + extent = "733 582"; + minExtent = "48 92"; + horizSizing = "center"; + vertSizing = "center"; + profile = "ToolsGuiWindowProfile"; + visible = "1"; + active = "1"; + tooltipProfile = "ToolsGuiToolTipProfile"; + hovertime = "1000"; + isContainer = "1"; + canSave = "1"; + canSaveDynamicFields = "0"; + + new GuiTextCtrl() { + text = "Target Path:"; + maxLength = "1024"; + margin = "0 0 0 0"; + padding = "0 0 0 0"; + anchorTop = "1"; + anchorBottom = "0"; + anchorLeft = "1"; + anchorRight = "0"; + position = "12 30"; + extent = "116 17"; + minExtent = "8 2"; + horizSizing = "right"; + vertSizing = "bottom"; + profile = "ToolsGuiTextProfile"; + visible = "1"; + active = "1"; + tooltipProfile = "GuiToolTipProfile"; + hovertime = "1000"; + isContainer = "1"; + canSave = "1"; + canSaveDynamicFields = "0"; + }; + new GuiTextEditCtrl(AssetImportTargetAddress) { + historySize = "0"; + tabComplete = "0"; + sinkAllKeyEvents = "0"; + password = "0"; + passwordMask = "*"; + text = "data/"; + maxLength = "1024"; + margin = "0 0 0 0"; + padding = "0 0 0 0"; + anchorTop = "1"; + anchorBottom = "0"; + anchorLeft = "1"; + anchorRight = "0"; + position = "135 30"; + extent = "569 18"; + minExtent = "8 2"; + horizSizing = "width"; + vertSizing = "bottom"; + profile = "ToolsGuiTextEditProfile"; + visible = "1"; + active = "0"; + tooltipProfile = "GuiToolTipProfile"; + hovertime = "1000"; + isContainer = "1"; + canSave = "1"; + canSaveDynamicFields = "0"; + }; + new GuiBitmapButtonCtrl() { + BitmapAsset = "ToolsModule:iconOpen_image"; + bitmapMode = "Centered"; + autoFitExtents = "0"; + useModifiers = "0"; + useStates = "1"; + masked = "0"; + groupNum = "-1"; + buttonType = "PushButton"; + useMouseEvents = "0"; + position = "707 27"; + extent = "22 22"; + minExtent = "8 2"; + horizSizing = "left"; + vertSizing = "bottom"; + profile = "ToolsGuiButtonProfile"; + visible = "1"; + active = "1"; + command = "SelectAssetPath.showDialog(AssetBrowser.dirHandler.currentAddress, \"assetImportUpdatePath\");\nSelectAssetPathWindow.selectWindow();"; + tooltipProfile = "GuiToolTipProfile"; + tooltip = "New Module"; + hovertime = "1000"; + isContainer = "0"; + canSave = "1"; + canSaveDynamicFields = "0"; + }; + new GuiTextCtrl() { + text = "Target Module:"; + maxLength = "1024"; + margin = "0 0 0 0"; + padding = "0 0 0 0"; + anchorTop = "1"; + anchorBottom = "0"; + anchorLeft = "1"; + anchorRight = "0"; + position = "12 54"; + extent = "116 17"; + minExtent = "8 2"; + horizSizing = "right"; + vertSizing = "bottom"; + profile = "ToolsGuiTextProfile"; + visible = "1"; + active = "1"; + tooltipProfile = "GuiToolTipProfile"; + hovertime = "1000"; + isContainer = "1"; + canSave = "1"; + canSaveDynamicFields = "0"; + }; + new GuiTextEditCtrl(AssetImportTargetModule) { + historySize = "0"; + tabComplete = "0"; + sinkAllKeyEvents = "0"; + password = "0"; + passwordMask = "*"; + maxLength = "1024"; + margin = "0 0 0 0"; + padding = "0 0 0 0"; + anchorTop = "1"; + anchorBottom = "0"; + anchorLeft = "1"; + anchorRight = "0"; + position = "135 53"; + extent = "569 18"; + minExtent = "8 2"; + horizSizing = "width"; + vertSizing = "bottom"; + profile = "ToolsGuiTextEditProfile"; + visible = "1"; + active = "0"; + tooltipProfile = "GuiToolTipProfile"; + hovertime = "1000"; + isContainer = "1"; + canSave = "1"; + canSaveDynamicFields = "0"; + }; + new GuiTextCtrl() { + text = "Import Options Config:"; + maxLength = "1024"; + margin = "0 0 0 0"; + padding = "0 0 0 0"; + anchorTop = "1"; + anchorBottom = "0"; + anchorLeft = "1"; + anchorRight = "0"; + position = "12 79"; + extent = "116 17"; + minExtent = "8 2"; + horizSizing = "right"; + vertSizing = "bottom"; + profile = "ToolsGuiTextProfile"; + visible = "1"; + active = "1"; + tooltipProfile = "GuiToolTipProfile"; + hovertime = "1000"; + isContainer = "1"; + canSave = "1"; + canSaveDynamicFields = "0"; + }; + new GuiPopUpMenuCtrlEx(ImportAssetConfigList) { + maxPopupHeight = "200"; + sbUsesNAColor = "0"; + reverseTextList = "0"; + bitmapBounds = "16 16"; + hotTrackCallback = "0"; + text = "DefaultImportConfig"; + maxLength = "1024"; + margin = "0 0 0 0"; + padding = "0 0 0 0"; + anchorTop = "1"; + anchorBottom = "0"; + anchorLeft = "1"; + anchorRight = "0"; + position = "135 78"; + extent = "569 22"; + minExtent = "8 2"; + horizSizing = "width"; + vertSizing = "bottom"; + profile = "ToolsGuiPopUpMenuProfile"; + visible = "1"; + active = "1"; + tooltipProfile = "GuiToolTipProfile"; + hovertime = "1000"; + isContainer = "1"; + canSave = "1"; + canSaveDynamicFields = "0"; + }; + new GuiBitmapButtonCtrl() { + BitmapAsset = "ToolsModule:save_as_n_image"; + bitmapMode = "Centered"; + autoFitExtents = "0"; + useModifiers = "0"; + useStates = "1"; + masked = "0"; + groupNum = "-1"; + buttonType = "PushButton"; + useMouseEvents = "0"; + position = "711 77"; + extent = "15 22"; + minExtent = "8 2"; + horizSizing = "left"; + vertSizing = "bottom"; + profile = "ToolsGuiButtonProfile"; + visible = "1"; + active = "1"; + command = "Canvas.pushDialog(AssetImportConfigEditor);"; + tooltipProfile = "GuiToolTipProfile"; + tooltip = "Edit Config"; + hovertime = "1000"; + isContainer = "0"; + canSave = "1"; + canSaveDynamicFields = "0"; + }; + new GuiSplitContainer() { + orientation = "Vertical"; + splitterSize = "2"; + splitPoint = "182 100"; + fixedPanel = "None"; + fixedSize = "100"; + docking = "None"; + margin = "0 0 0 0"; + padding = "0 0 0 0"; + anchorTop = "1"; + anchorBottom = "0"; + anchorLeft = "1"; + anchorRight = "0"; + position = "5 102"; + extent = "723 447"; + minExtent = "64 64"; + horizSizing = "width"; + vertSizing = "height"; + profile = "ToolsGuiSolidDefaultProfile"; + visible = "1"; + active = "1"; + tooltipProfile = "GuiToolTipProfile"; + hovertime = "1000"; + isContainer = "1"; + canSave = "1"; + canSaveDynamicFields = "0"; + + new GuiPanel() { + docking = "Client"; + margin = "0 0 0 0"; + padding = "0 0 0 0"; + anchorTop = "1"; + anchorBottom = "0"; + anchorLeft = "1"; + anchorRight = "0"; + position = "0 0"; + extent = "180 447"; + minExtent = "16 16"; + horizSizing = "right"; + vertSizing = "bottom"; + profile = "ToolsGuiSolidDefaultProfile"; + visible = "1"; + active = "1"; + tooltipProfile = "GuiToolTipProfile"; + hovertime = "1000"; + isContainer = "1"; + internalName = "Panel1"; + canSave = "1"; + canSaveDynamicFields = "0"; + + new GuiBitmapButtonCtrl(ImportLogButton) { + bitmapAsset = "ToolsModule:iconInformation_image"; + bitmapMode = "Centered"; + autoFitExtents = "0"; + useModifiers = "0"; + useStates = "1"; + masked = "0"; + groupNum = "-1"; + buttonType = "PushButton"; + useMouseEvents = "0"; + position = "5 0"; + extent = "22 22"; + minExtent = "8 2"; + horizSizing = "right"; + vertSizing = "bottom"; + profile = "ToolsGuiButtonProfile"; + visible = "1"; + active = "1"; + command = "ImportAssetWindow.toggleLogWindow();"; + tooltipProfile = "GuiToolTipProfile"; + tooltip = "View Import Log"; + hovertime = "1000"; + isContainer = "0"; + canSave = "1"; + canSaveDynamicFields = "0"; + }; + new GuiScrollCtrl() { + willFirstRespond = "1"; + hScrollBar = "alwaysOff"; + vScrollBar = "dynamic"; + lockHorizScroll = "0"; + lockVertScroll = "0"; + constantThumbHeight = "0"; + childMargin = "0 0"; + mouseWheelScrollSpeed = "-1"; + margin = "0 0 0 0"; + padding = "0 0 0 0"; + anchorTop = "1"; + anchorBottom = "0"; + anchorLeft = "1"; + anchorRight = "0"; + position = "3 22"; + extent = "180 426"; + minExtent = "100 50"; + horizSizing = "width"; + vertSizing = "height"; + profile = "ToolsGuiScrollProfile"; + visible = "1"; + active = "1"; + tooltipProfile = "ToolsGuiToolTipProfile"; + hovertime = "1000"; + isContainer = "1"; + canSave = "1"; + canSaveDynamicFields = "0"; + + new GuiMouseEventCtrl(NewAssetsPanelInputs) { + lockMouse = "0"; + position = "1 0"; + extent = "339 449"; + minExtent = "8 2"; + horizSizing = "width"; + vertSizing = "height"; + profile = "GuiDefaultProfile"; + visible = "1"; + active = "1"; + tooltipProfile = "GuiToolTipProfile"; + hovertime = "1000"; + isContainer = "0"; + canSave = "1"; + canSaveDynamicFields = "0"; + }; + new GuiTreeViewCtrl() { + tabSize = "16"; + textOffset = "2"; + fullRowSelect = "0"; + itemHeight = "21"; + destroyTreeOnSleep = "1"; + mouseDragging = "1"; + multipleSelections = "1"; + deleteObjectAllowed = "1"; + dragToItemAllowed = "1"; + clearAllOnSingleSelection = "1"; + showRoot = "1"; + useInspectorTooltips = "0"; + tooltipOnWidthOnly = "0"; + showObjectIds = "1"; + showClassNames = "1"; + showObjectNames = "1"; + showInternalNames = "1"; + showClassNameForUnnamedObjects = "0"; + compareToObjectID = "1"; + canRenameObjects = "1"; + renameInternal = "0"; + position = "1 1"; + extent = "102 21"; + minExtent = "8 2"; + horizSizing = "width"; + vertSizing = "height"; + profile = "ToolsGuiTreeViewProfile"; + visible = "1"; + active = "1"; + tooltipProfile = "GuiToolTipProfile"; + hovertime = "1000"; + isContainer = "1"; + internalName = "NewAssetsTree"; + class = "NewAssetsViewTree"; + canSave = "1"; + canSaveDynamicFields = "0"; + }; + }; + }; + new GuiPanel() { + docking = "Client"; + margin = "0 0 0 0"; + padding = "0 0 0 0"; + anchorTop = "1"; + anchorBottom = "0"; + anchorLeft = "1"; + anchorRight = "0"; + position = "184 0"; + extent = "539 447"; + minExtent = "16 16"; + horizSizing = "right"; + vertSizing = "bottom"; + profile = "ToolsGuiSolidDefaultProfile"; + visible = "1"; + active = "1"; + tooltipProfile = "GuiToolTipProfile"; + hovertime = "1000"; + isContainer = "1"; + internalName = "panel2"; + canSave = "1"; + canSaveDynamicFields = "0"; + + new GuiScrollCtrl() { + willFirstRespond = "1"; + hScrollBar = "dynamic"; + vScrollBar = "dynamic"; + lockHorizScroll = "0"; + lockVertScroll = "0"; + constantThumbHeight = "0"; + childMargin = "0 0"; + mouseWheelScrollSpeed = "-1"; + margin = "0 0 0 0"; + padding = "0 0 0 0"; + anchorTop = "1"; + anchorBottom = "0"; + anchorLeft = "1"; + anchorRight = "0"; + position = "0 0"; + extent = "539 447"; + minExtent = "8 2"; + horizSizing = "width"; + vertSizing = "height"; + profile = "ToolsGuiScrollProfile"; + visible = "1"; + active = "1"; + tooltipProfile = "GuiToolTipProfile"; + hovertime = "1000"; + isContainer = "1"; + canSave = "1"; + canSaveDynamicFields = "0"; + + new GuiVariableInspector() { + dividerMargin = "5"; + showCustomFields = "1"; + stackingType = "Vertical"; + horizStacking = "Left to Right"; + vertStacking = "Top to Bottom"; + padding = "1"; + dynamicSize = "1"; + dynamicNonStackExtent = "0"; + dynamicPos = "0"; + changeChildSizeToFit = "1"; + changeChildPosition = "1"; + position = "1 1"; + extent = "522 615"; + minExtent = "16 16"; + horizSizing = "width"; + vertSizing = "height"; + profile = "ToolsGuiDefaultProfile"; + visible = "1"; + active = "1"; + tooltipProfile = "GuiToolTipProfile"; + hovertime = "1000"; + isContainer = "1"; + internalName = "NewAssetsInspector"; + canSave = "1"; + canSaveDynamicFields = "0"; + }; + }; + }; + }; + new GuiButtonCtrl(DoAssetImportButton) { + text = "Done"; + groupNum = "-1"; + buttonType = "PushButton"; + useMouseEvents = "0"; + position = "589 553"; + extent = "64 22"; + minExtent = "8 2"; + horizSizing = "left"; + vertSizing = "top"; + profile = "ToolsGuiButtonProfile"; + visible = "1"; + active = "1"; + command = "ImportAssetWindow.ImportAssets();"; + tooltipProfile = "ToolsGuiToolTipProfile"; + hovertime = "1000"; + isContainer = "0"; + canSave = "1"; + canSaveDynamicFields = "0"; + }; + new GuiButtonCtrl() { + text = "Cancel"; + groupNum = "-1"; + buttonType = "PushButton"; + useMouseEvents = "0"; + position = "657 553"; + extent = "64 22"; + minExtent = "8 2"; + horizSizing = "left"; + vertSizing = "top"; + profile = "ToolsGuiButtonProfile"; + visible = "1"; + active = "1"; + command = "ImportAssetWindow.close();"; + tooltipProfile = "ToolsGuiToolTipProfile"; + hovertime = "1000"; + isContainer = "0"; + canSave = "1"; + canSaveDynamicFields = "0"; + }; + new GuiCheckBoxCtrl(toggleImportWindowVizBtn) { + text = "Don\'t show this every time"; + groupNum = "-1"; + buttonType = "ToggleButton"; + useMouseEvents = "0"; + position = "416 551"; + extent = "177 30"; + minExtent = "8 2"; + horizSizing = "left"; + vertSizing = "top"; + profile = "ToolsGuiCheckBoxProfile"; + visible = "1"; + active = "1"; + command = "toggleImportWindowViz();"; + tooltipProfile = "GuiToolTipProfile"; + tooltip = "If checked, this will make the importer run silently without prompting the window each time, using the Default Import Config"; + hovertime = "1000"; + isContainer = "0"; + canSave = "1"; + canSaveDynamicFields = "0"; + }; + }; }; //--- OBJECT WRITE END --- diff --git a/Templates/BaseGame/game/tools/assetBrowser/guis/newFolder.gui b/Templates/BaseGame/game/tools/assetBrowser/guis/newFolder.gui index 7030b5e40..924b1a256 100644 --- a/Templates/BaseGame/game/tools/assetBrowser/guis/newFolder.gui +++ b/Templates/BaseGame/game/tools/assetBrowser/guis/newFolder.gui @@ -47,7 +47,7 @@ $guiContent = new GuiControl(AssetBrowser_newFolder) { canSaveDynamicFields = "0"; new GuiButtonCtrl() { - text = "Select"; + text = "OK"; groupNum = "-1"; buttonType = "PushButton"; useMouseEvents = "0"; @@ -65,6 +65,7 @@ $guiContent = new GuiControl(AssetBrowser_newFolder) { isContainer = "0"; canSave = "1"; canSaveDynamicFields = "0"; + accelerator = "return"; }; new GuiButtonCtrl() { text = "Cancel"; @@ -85,6 +86,7 @@ $guiContent = new GuiControl(AssetBrowser_newFolder) { isContainer = "0"; canSave = "1"; canSaveDynamicFields = "0"; + accelerator = "escape"; }; new GuiTextEditCtrl(AssetBrowser_newFolderNameTxt) { historySize = "0"; diff --git a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetBrowser.tscript b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetBrowser.tscript index 3dd803a62..283030684 100644 --- a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetBrowser.tscript +++ b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetBrowser.tscript @@ -279,6 +279,7 @@ function AssetBrowser::selectAsset( %this, %asset ) %this.changeAsset(); } + if(isObject(Inspector)) Inspector.refresh(); AssetBrowser.hideDialog(); @@ -985,14 +986,31 @@ function AssetBrowser::toggleTagFilterPopup(%this) function AssetBrowser::changeAsset(%this) { + %targetObject = %this.fieldTargetObject; + %inspectorObject = ""; + + if(%this.fieldTargetObject.isInNamespaceHierarchy("GuiInspector")) + { + %inspectorObject = %this.fieldTargetObject; + %targetObject = %inspectorObject.getInspectObject(); + } + //alright, we've selectd an asset for a field, so time to set it! if(%this.fieldTargetName $= "") - %cmd = %this.fieldTargetObject @ ".apply(\""@ %this.selectedAsset @ "\");"; + %cmd = %targetObject @ ".apply(\""@ %this.selectedAsset @ "\");"; else - %cmd = %this.fieldTargetObject @ "." @ %this.fieldTargetName @ "=\"" @ %this.selectedAsset @ "\";"; - echo("Changing asset via the " @ %cmd @ " command"); + %cmd = %targetObject @ "." @ %this.fieldTargetName @ "=\"" @ %this.selectedAsset @ "\";"; + //echo("Changing asset via the " @ %cmd @ " command"); eval(%cmd); + //Force update our object with the field change + %targetObject.inspectPostApply(); + + if(isObject(%inspectorObject)) + { + %inspectorObject.refresh(); + } + //Flag us as dirty for editing purposes EWorldEditor.setSceneAsDirty(); } @@ -2317,6 +2335,53 @@ function EWorldEditor::onControlDropped( %this, %payload, %position ) EWorldEditor.isDirty = true; } +function GuiEditor::onControlDropped(%this, %payload, %position) +{ + Canvas.popDialog(EditorDragAndDropLayer); + // Make sure we have the right kind of D&D. + + if( !%payload.parentGroup.isInNamespaceHierarchy( "GuiDragAndDropControlType_GuiControl" ) && + !%payload.parentGroup.isInNamespaceHierarchy( "AssetPreviewControlType_AssetDrop" )) + return; + + if( %payload.dragSourceControl == %this ) + return; + + %pos = %payload.getGlobalPosition(); + %x = getWord(%pos, 0); + %y = getWord(%pos, 1); + + if(%payload.assetType !$= "Creator") + { + //dealing with an actual asset, so build the assetName + %assetId = %payload.moduleName @ ":" @ %payload.assetName; + %assetType = AssetDatabase.getAssetType(%assetId); + + if(%assetType $= "ImageAsset") + { + %cmd = "return new guiBitmapCtrl();"; + %ctrl = eval( %cmd ); + %ctrl.bitmap = %assetId; + } + } + else + { + %className = %payload.assetName; + %cmd = "return new " @ %className @ "();"; + %ctrl = eval( %cmd ); + } + + %this.addNewCtrl(%ctrl); + + %ctrl.setPositionGlobal(%x, %y); + %this.setFirstResponder(); + + if(EditorSettings.value("AssetManagement/Assets/closeBrowserOnDragAction", false)) + { + AssetBrowser.hideDialog(); + } +} + function AssetBrowserFilterTree::onControlDropped( %this, %payload, %position ) { Canvas.popDialog(EditorDragAndDropLayer); diff --git a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetImport.tscript b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetImport.tscript index f96b1b645..89f294486 100644 --- a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetImport.tscript +++ b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetImport.tscript @@ -181,6 +181,20 @@ function AssetBrowser::onBeginDropFiles( %this ) function AssetBrowser::onDropFile( %this, %filePath ) { + if(fileExt(%filePath) $= "") + { + //we're dealing with a folder, so we gotta parse through it + + %file = findFirstFile( %filePath @ "/*" ); + while( %file !$= "" ) + { + %this.onDropFile(%file); + %file = findNextFile( %filePath @ "/*" ); + } + + return; + } + if(!AssetBrowser.isAwake() || !AssetBrowser.isVisible()) { if(GuiEditorIsActive()) @@ -501,7 +515,7 @@ function ImportAssetWindow::doRefresh(%this) } if(%this.autoRenamedAssets != 0) { - %ImportActionSummary = %ImportActionSummary SPC %this.autoRenamedAssets @ " Auto Renamed|"; + %ImportActionSummary = %ImportActionSummary SPC %this.autoRenamedAssets @ " Automatically Renamed|"; } if(%ImportActionSummary !$= "") diff --git a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetImportConfig.tscript b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetImportConfig.tscript index 175d0f4d5..787983fe1 100644 --- a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetImportConfig.tscript +++ b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetImportConfig.tscript @@ -109,6 +109,7 @@ function setupImportConfigSettingsList() ImportAssetConfigSettingsList.addNewConfigSetting("Images/GenerateMaterialOnImport", "Generate Material On Import", "bool", "", "1", ""); //Sounds + ImportAssetConfigSettingsList.addNewConfigSetting("Images/ImportSounds", "Import Sounds", "bool", "", "1", ""); ImportAssetConfigSettingsList.addNewConfigSetting("Sounds/VolumeAdjust", "Volume Adjustment", "float", "", "1.0", ""); ImportAssetConfigSettingsList.addNewConfigSetting("Sounds/PitchAdjust", "Pitch Adjustment", "float", "", "1.0", ""); ImportAssetConfigSettingsList.addNewConfigSetting("Sounds/Compressed", "Is Compressed", "bool", "", "0", ""); diff --git a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetImportConfigEditor.tscript b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetImportConfigEditor.tscript index effa43f52..929c1ddfe 100644 --- a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetImportConfigEditor.tscript +++ b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetImportConfigEditor.tscript @@ -1,6 +1,9 @@ function AssetImportConfigEditor::onWake(%this) { %this.refresh(); + + %index = AssetImportConfigList.findTextIndex(EditorSettings.value("Assets/AssetImporDefaultConfig", "")); + AssetImportConfigList.setSelectedRow(%index); } function AssetImportConfigEditor::refresh(%this) @@ -41,7 +44,7 @@ function AssetImportConfigList::onSelect( %this, %id, %text ) %this.populateConfigListByGroup("Images"); %this.populateConfigListByGroup("Sounds"); %this.populateConfigListByGroup("Animations"); - %this.populateConfigListByGroup("Collision"); + //%this.populateConfigListByGroup("Collision"); ImportOptionsConfigList.update(); } diff --git a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/creatorObj.tscript b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/creatorObj.tscript index 1dec09e34..44c84bec7 100644 --- a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/creatorObj.tscript +++ b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/creatorObj.tscript @@ -6,6 +6,7 @@ function AssetBrowser::buildCreatorPreview(%this, %assetDef, %previewData) %previewData.assetName = %name; %previewData.assetPath = ""; + %previewData.moduleName = ""; %previewData.previewImage = "ToolsModule:" @ %class @ "_image"; diff --git a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/folder.tscript b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/folder.tscript index 33dd9a98b..8817cc337 100644 --- a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/folder.tscript +++ b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/folder.tscript @@ -1,7 +1,9 @@ function AssetBrowser::createNewFolder(%this) { AssetBrowser_newFolderNameTxt.text = "NewFolder"; - Canvas.pushDialog(AssetBrowser_newFolder); + Canvas.pushDialog(AssetBrowser_newFolder, 99, true); + + AssetBrowser_newFolderNameTxt.selectAllText(); } function AssetBrowser::doCreateNewFolder(%this) diff --git a/Templates/BaseGame/game/tools/gui/images/stencilIcons/larger.png b/Templates/BaseGame/game/tools/gui/images/stencilIcons/larger.png index 4f5d73310dca5211a7e69b92d834df08fd3ffecb..b7aba1dad58f7b51ac2c1c08f947c0182a47b746 100644 GIT binary patch delta 1508 zcmZuxX*3iH6dp2$#xnL~8(Y!HI;gCJ!BBcK*+XQCEHjMkW-^wsWX;UO*g|Dj!+R;) zFdm-0P$5Y?NwzE_#e39w@ATuH`{RB;zH{$)@BPj#2qW`k$P?J#MW7w=m#&6Fu|a_t zA3tv>J{;=}^$zpF003bV%T(K-DJW0E+q1}YqCy-KSFfSff=GWW(;q?4_rIREUBZ9U zljQ9r_;(^oFiqxdZz z{kg7wX%FZ^*l#eHAT7hv>Wr5dr;AhjQxPu6TH}rf1>@05QGCAp>IEUm0}$%QMzkh* zMA-ZWGcki1KChLXnq4+4>5%%)GE3dY^Mz{B7MO}x<7hU&xZ4%|dS10#{DV%-x3U+H zvs=dlD>om>&BC+@)je}o>!`Nrd{zvNUZo7`$$3dA3$V+TKNFC#ftD{7x9NI?f!&b4 zIVBs_iT)j;J0vgX-sv!DT0GsYc``Z1C;n+zwc1^co;$E+K-}(g^n+I6 zK~+P7%#mthu}!X&P&H1^)X$35sF+PR6hXKZ%$jY)3ix>)w^FrlzIzFlHI5dj>S*hz zUq9h8f$z)rZ_TM$aWssa2pM{|+)8cH33y%)jHBdh2bPbK_*BZ}r6T4!`HcRw)f;!F z7Czmcs)71Kr?MC9XY_|HN%yp-g5Wh zGFcQ3C+rI5i&3$ca;1fYU`03>{19E;lSnb;bpomcSqAQZcV%S-)0T2&JGJB;8qrwY4o(Cf&K{YcL)rp3Nqm8J4z~fNVzS z(|s0ctfV60Z9>3T?v{^ zM?K~ojk!-Lbo1|n+Ma3C?Xm;1jCdN_UTt@C%}fG)MJD$Re_Nj5o{8qHZAfTC12IOZ zI(Wm3z%ZTH)m0ZB&i`bJjk6Hnn<3e2ZP$aj&C=Sv4<8N%<7=B*##p#rfI>ypyu{25 zC`r*+Gr~^lP$Sd1lIr5da`O>H-op z4;B$t<6Z9gVta5qF_akseejm1MtD1*!p0+sIDiE%?pBb)2c$$UkHI#oV>RqB)JCobH!``*Rt4bxHQ&Q52PhAM6G~ zU$o`6_szvVOcBJILIemvpzQ2s#zZdicYNIKk5yTVbuY@fHq3_j{}JA#E{qNhq&t25 zhS7g8tph?86e;$dJ*@DrphIjKkNHI1T3uR#$*suLU0<2}noMS$hkV^OQPnZDrUd`! wHZgBF=NL6;ojw%&k)rb7I0vG>V|cUL(LA{p#p2PVgB=1;NE@?S6OY(`07$yB3;+NC literal 15389 zcmeI3du$X%9LE=eLJKIC@=}AFQ!GU8cK2TGt#^m*T}z7|l(s-oqilDl?b^HB<96G- ztBUo7;3L+GC@K&i#Gp|k2)+;vT4*Xt#79t!rbvPi2=)&HT71mjb9%jFF!9g1YzH?!N*x4pJB*Q#+p)<-ug8@f>&=XTj!U#Q zm!VuAkZ$zV(jFxYXq(Aq6j?JzmpV+G&FbK|xwM((EDXmoW`~jEcxx%o+3DoR;4Xxb zGb}apb>6DvaPTjep;gmDJi|mH5mUrsQo=0^=WsX}*36jAMyN2Vv7jbIjY0L=gh|TB z3sf;IhcsCU(z>tEq_k@;gFzoC{YlO%5K0deRFmu=MJ6hQ7|z5pd6Im-3#SDFIWtwQ z4rFGQb3nBr76MEiP?h$u2%!AhT(_WVl^t+ONkkW6RM`Q7T23oTO#6h|!~QsENo0T@ z1Yn8^DR4RG5^7a6MQv5`08Dr1#i+^6d06N@dDB2t&XcD1B+}wFl~`&gEM(pj27;!9 z8x+OwPLykH>h5Wehn~Gm4oXTyo#SM()tQ>f7y+-K0XM8^E39TCYi=-eyoKX!wi{TE zXIaD~q0I8|DU#eA8{uK**)ra0MLiH@wg=pUlAs9}<$`L5`}ll(O;FW@pa^QbZa8<7 zEK9u2!HPne!)!D=ETXZAvjU^TEW$q}3v1y@ORW~MEI!HM=_9PYirB8#P|{k0*4DBr zuiakhwVORv99L;At0=RSdu&!qg~!f0Z1$8bk~-2Bgyjw(RfUy6e0zt4unP2D<1(bS zP5L}Y)ty05T&gW|Q;7_HpoAdDnqFM_j!4fxMx+%4hi&()t(vfktMZ$uO0yOb!l1kb?g-2w zlrS8gk>6Qt6@o25ax*DtsfO$nC!?>LUmm__iPqt3nX12$YwwgqzF7$e1kEi6gciVr zf-O!a)0i34nf?#JdlbJChKCt&TbxX;W+Y2L`}NX>l!SOaa871KTeiMY-}wIaxW3fP z!Vi4ffS+V4+MS)c{KBbdcXnzfb4gIv+~(wHS|v)G(Wc5`+{ ztsDjZMz0LdQdQp}aB9h|HV}c8d2o(@qC=F~(aA6Ul0)h*rfsF|+EFx4uaG^A?F~NmJgbD~Q zlm<2?xUh&&0l|gRz{Ug@77;2SxKJ9{nBc-9LIngDN&_1cTv$Y?fZ#%DU}J&{iwG4E zTqq4}OmJZlp#p*nrGbqJE-WHcKyaZnura}fMT80nE|dl~Cb+POPyxY((!j<97ZwpJ zAh=K(*qGqLB0>cO7fJ&g6I@tCsDR)?X<%c53yTO95L_q?Y)o)r5upNt3#EaL2`(%m zR6uZ{G_dgnaTR7>wgf@=hGhi4O8IiZcTxBnCM{Oi`6#M$7DaVENKt?M1HVsDR69#i zCs$Au{~Se4Q+n>~t)i&WqiVe64bdM?{rJ^Wd+Fk;fvfh7K2$UJ{?mPRyVjk)>E<;X zTQB+k+1;ncubgT+->u%UadD4w%ieJdkL;RpqPXmmu1Pd{jTuL$uU8NC4!F*IDgJ$B z?4GATHHkE>w1V9rC*&J9y!)w+41e*U*gf7Z)~{tU1zj6*4H*qKG=V} ziQDnWhA$3y{8a0tm1ou! zRZe|nO5gKqdv3dIA8)8W;GHuV7-FifzT()%wM|d#`F7-%@^70+JLcVyt4`>vx0Tb|oGImaX$ zKA1Z6P5sb&({B7}^T0=o{%St)=A_8M!JUV%G0$RWcI*!J-@WpOoG=*Fte!l$>p8*oT@+GQ`tpTWUj=z)ef#2OKo4WdVImS S!Xo_z-kQpV-nS}NJn%2AIqYZv diff --git a/Templates/BaseGame/game/tools/gui/images/stencilIcons/smaller.png b/Templates/BaseGame/game/tools/gui/images/stencilIcons/smaller.png index c1520a5120492f4c22bfbe2172af38a04d1b75b4..de6acb30c743b9944bd3a41fbcb31ee53e45ddc0 100644 GIT binary patch delta 1529 zcmeCHn9DOkxt{4^RY*ihP-3}4K~a8MW=^U?No7H*LTW{38UsVct+&$yi|#1!wB5IK z?Qc+Nd0>%{u+03$$KTD7`DL5m`dqgAlIWYWLC5>ie*@2${~v32Wbr;ex-`%-_AFTJeEt)ur?DxAn>`&pB+*JgPo-+uSc(>%5otiwefi{F&^k z7T)FmtM}q1iNAAVIWIb{+flDxI{TE=!HrISk?UPe4zHBBoh7OJ^ASJCeS@p7YL5D< zwLNNPGSxC!vHsrzW>vO#IWK1Nzp%^o>@k)vQgT>)@R^D?Gxs#+CoF0EvKCG?KVRc9 zZNg4Lo0$SUJ@T`w&1$yVvPdQC6)VlxTN@yL{%fm|+Rn;W@rDaGX1%&J{m#vw_0N-= zL79V2iUZ38vsw6&olSOwp`}GIsRsFA(F?h7x=}OwLi}|O=B9W8Qn*|+@v)Hjt z-ORF1!Qs^u=~Yh@gc#L7p6M;`nWnEjKP^X}VWH5`1~qTSH3B9sHTj(0D=b8LS4mwp z$-E|{+P1>bt-E->mYSH4?ySg7IjWvqp7p^#(}GT|OgYz->l52|v*?uN^rj`MB1g17 z=o^Hr3v#|HwfbsEu`c_x^MZV~j}qOjJ_SmdXWn3n={_5kwR5VUtoO?Hb+%=%S3Zwp zyLM}WU|XL>&XS4lJ6Ghc>c2AYA!H{X0C*7U4w(PYVvLIr{Co($Zx z)Q#uYYp~3FqGmila!!ZQsw#|w7!VRk;-E4%!f?tMS{NAPaWwCg&#H1N3-G#e7x5&hQumAAj ztKN~#QS*NnmuO2)W|W&)(f6{=b&sRX=FFFKzIQU~=xZK%e&jJ*?1Uc^UvD~{Kc|?F z+r~IS~lL!Y+EtTW^|Je8MHr*UNId76Z z&zAi+z8&XyaGNzt^!7iyZEtUJKB#3|x20`=2y2?X=X#SZ4+Jl4=8cIlH>u>`afgv@ zUdhP`GAF%*Poy<|H~zKE?==sU!*VdCN)6SXb6q#ra^TV9wI{^OrE=gJySLGFla zrMypHJ`-RN6i{Gda&c(j;1FO$VyC{GSK#x0?pyCqf8|%H>^Yg3@1XkgpKs(jMJA?t z7Y7!Wjs}=kz4-pG6K+) zwMy~(H#4|@eZ|inO>c;`j7ka)ED$GbeRuzR>edX)&p+-=pPEy%Oy{`(BS_lhROyMB zn`W*@vOgq$3-5U=InnO^%)R=nVNODK(Xs#hGuiL|Uud&D@01XR56}K){Kld2WBzX5 R<-mYt@O1TaS?83{1OPxBrsV(t literal 15374 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 PA5>OSQKCl7DCmCxC4WN| literal 6786 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 Z>B2*0AN63r`R5q`UnormalMapDisplayBitmap.setBitmap( getAssetPreviewImage(%normalMap) ); //ORM Config - %ormMap = (%material).getNormalMap(%layer); + %ormMap = (%material).getORMConfigMap(%layer); %hasOrmMap = (%ormMap !$= "" && %ormMap !$=$MaterialEditor::emptyMaterialImage); - %ormMapText = %hasOrmMap ? (%material).getNormalMapAsset(%layer) : "None"; + %ormMapText = %hasOrmMap ? (%material).getORMConfigMapAsset(%layer) : "None"; MaterialEditorPropertiesWindow-->ORMConfigMapNameText.setText(%ormMapText ); MaterialEditorPropertiesWindow-->ORMConfigMapDisplayBitmap.setBitmap( getAssetPreviewImage(%ormMap) );