فهرست منبع

Merge branch 'EngineAssetify' of https://github.com/Areloch/Torque3D into EngineAssetify_Followups_XML2Check

# Conflicts:
#	Engine/source/ts/tsShapeConstruct.cpp
AzaezelX 4 سال پیش
والد
کامیت
c5d0310bc3
100فایلهای تغییر یافته به همراه978 افزوده شده و 615 حذف شده
  1. 9 2
      Engine/source/T3D/assets/ShapeAsset.cpp
  2. 9 9
      Engine/source/T3D/assets/assetImporter.cpp
  3. 1 1
      Engine/source/T3D/assets/assetImporter.h
  4. 15 0
      Engine/source/console/fileSystemFunctions.cpp
  5. 101 27
      Engine/source/gui/buttons/guiBitmapButtonCtrl.cpp
  6. 13 3
      Engine/source/gui/buttons/guiBitmapButtonCtrl.h
  7. 40 0
      Engine/source/gui/editor/guiShapeEdPreview.cpp
  8. 1 0
      Engine/source/gui/editor/guiShapeEdPreview.h
  9. 1 1
      Engine/source/ts/assimp/assimpShapeLoader.cpp
  10. 1 1
      Engine/source/ts/collada/colladaShapeLoader.cpp
  11. 322 287
      Engine/source/ts/tsShapeConstruct.cpp
  12. 141 122
      Engine/source/ts/tsShapeConstruct.h
  13. 1 1
      Templates/BaseGame/game/core/gameObjects/shapes/camera.tscript
  14. 1 1
      Templates/BaseGame/game/core/gameObjects/shapes/noshape.tscript
  15. 1 1
      Templates/BaseGame/game/core/gameObjects/shapes/octahedron.tscript
  16. 1 1
      Templates/BaseGame/game/core/gameObjects/shapes/simplecone.tscript
  17. 1 1
      Templates/BaseGame/game/core/gameObjects/shapes/unit_capsule.tscript
  18. 1 1
      Templates/BaseGame/game/core/gameObjects/shapes/unit_cube.tscript
  19. 1 1
      Templates/BaseGame/game/core/gameObjects/shapes/unit_sphere.tscript
  20. 1 1
      Templates/BaseGame/game/core/gui/scripts/profiles.tscript
  21. 7 0
      Templates/BaseGame/game/core/rendering/scripts/gfxData/UnderwaterBasicMat.asset.taml
  22. 7 0
      Templates/BaseGame/game/core/rendering/scripts/gfxData/UnderwaterMat.asset.taml
  23. 7 0
      Templates/BaseGame/game/core/rendering/scripts/gfxData/WaterBasicMat.asset.taml
  24. 7 0
      Templates/BaseGame/game/core/rendering/scripts/gfxData/WaterMat.asset.taml
  25. 1 1
      Templates/BaseGame/game/core/rendering/shapes/Fog_Cube.tscript
  26. 1 1
      Templates/BaseGame/game/data/Prototyping/shapes/ConePrimitive.tscript
  27. 1 1
      Templates/BaseGame/game/data/Prototyping/shapes/CubePrimitive.tscript
  28. 1 1
      Templates/BaseGame/game/data/Prototyping/shapes/CylinderPrimitive.tscript
  29. 1 1
      Templates/BaseGame/game/data/Prototyping/shapes/SpherePrimitive.tscript
  30. 1 1
      Templates/BaseGame/game/data/Prototyping/shapes/TorusPrimitive.tscript
  31. 1 1
      Templates/BaseGame/game/data/Prototyping/shapes/TubePrimitive.tscript
  32. 1 1
      Templates/BaseGame/game/data/Prototyping/shapes/kork_chanShape.tscript
  33. 2 2
      Templates/BaseGame/game/data/ui/guis/startupGui.gui
  34. 8 0
      Templates/BaseGame/game/tools/VPathEditor/GUI/Images/Images_btn_Palette_d_image.asset.taml
  35. 8 0
      Templates/BaseGame/game/tools/VPathEditor/GUI/Images/Images_btn_Palette_h_image.asset.taml
  36. 8 0
      Templates/BaseGame/game/tools/VPathEditor/GUI/Images/Images_btn_Palette_n_image.asset.taml
  37. 2 2
      Templates/BaseGame/game/tools/VPathEditor/GUI/VPathEditor.gui
  38. 7 7
      Templates/BaseGame/game/tools/VPathEditor/GUI/VPathEditorPalette.gui
  39. 2 2
      Templates/BaseGame/game/tools/VPathEditor/Scripts/Plugin.tscript
  40. 1 1
      Templates/BaseGame/game/tools/VerveEditor/GUI/GuiProfiles.tscript
  41. 8 0
      Templates/BaseGame/game/tools/VerveEditor/GUI/Images/Images_ScrollBar_image.asset.taml
  42. 11 11
      Templates/BaseGame/game/tools/VerveEditor/GUI/VerveEditor.gui
  43. 1 1
      Templates/BaseGame/game/tools/VerveEditor/Scripts/Inspector/Fields/main.tscript
  44. 1 1
      Templates/BaseGame/game/tools/VerveEditor/Scripts/Inspector/main.tscript
  45. 1 1
      Templates/BaseGame/game/tools/VerveEditor/Scripts/Plugin.tscript
  46. 1 1
      Templates/BaseGame/game/tools/VerveEditor/main.tscript
  47. 1 1
      Templates/BaseGame/game/tools/assetBrowser/assetImportConfigs.xml
  48. 7 7
      Templates/BaseGame/game/tools/assetBrowser/guis/assetBrowser.gui
  49. 3 3
      Templates/BaseGame/game/tools/assetBrowser/guis/assetImport.gui
  50. 2 2
      Templates/BaseGame/game/tools/assetBrowser/guis/assetImportConfigEditor.gui
  51. 1 1
      Templates/BaseGame/game/tools/assetBrowser/guis/gameObjectCreator.gui
  52. 1 1
      Templates/BaseGame/game/tools/assetBrowser/guis/newAsset.gui
  53. 1 1
      Templates/BaseGame/game/tools/assetBrowser/guis/newComponentAsset.gui
  54. 1 1
      Templates/BaseGame/game/tools/assetBrowser/guis/selectModule.gui
  55. 1 1
      Templates/BaseGame/game/tools/assetBrowser/guis/selectPackage.gui
  56. 1 1
      Templates/BaseGame/game/tools/assetBrowser/guis/selectPath.gui
  57. 1 1
      Templates/BaseGame/game/tools/assetBrowser/main.tscript
  58. 3 4
      Templates/BaseGame/game/tools/assetBrowser/scripts/assetBrowser.tscript
  59. 1 1
      Templates/BaseGame/game/tools/assetBrowser/scripts/assetImportConfig.tscript
  60. 1 1
      Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/component.tscript
  61. 1 1
      Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/gameObject.tscript
  62. 1 1
      Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/gui.tscript
  63. 2 2
      Templates/BaseGame/game/tools/assetBrowser/scripts/directoryHandling.tscript
  64. 7 0
      Templates/BaseGame/game/tools/base/images/Grid_512_Black.asset.taml
  65. 7 0
      Templates/BaseGame/game/tools/base/images/Grid_512_ForestGreen.asset.taml
  66. 7 0
      Templates/BaseGame/game/tools/base/images/Grid_512_ForestGreen_Lines.asset.taml
  67. 7 0
      Templates/BaseGame/game/tools/base/images/Grid_512_Green.asset.taml
  68. 7 0
      Templates/BaseGame/game/tools/base/images/Grid_512_Grey.asset.taml
  69. 7 0
      Templates/BaseGame/game/tools/base/images/Grid_512_Grey_Base.asset.taml
  70. 7 0
      Templates/BaseGame/game/tools/base/images/Grid_512_Orange.asset.taml
  71. 7 0
      Templates/BaseGame/game/tools/base/images/Grid_512_Orange_Lines.asset.taml
  72. 7 0
      Templates/BaseGame/game/tools/base/images/Grid_512_Red.asset.taml
  73. 3 3
      Templates/BaseGame/game/tools/componentEditor/interface/materialFieldType.tscript
  74. 1 1
      Templates/BaseGame/game/tools/componentEditor/main.tscript
  75. 4 4
      Templates/BaseGame/game/tools/convexEditor/convexEditorToolbar.ed.gui
  76. 2 2
      Templates/BaseGame/game/tools/convexEditor/main.tscript
  77. 2 2
      Templates/BaseGame/game/tools/datablockEditor/DatablockEditorInspectorWindow.ed.gui
  78. 3 3
      Templates/BaseGame/game/tools/datablockEditor/DatablockEditorTreeWindow.ed.gui
  79. 1 1
      Templates/BaseGame/game/tools/datablockEditor/datablockEditor.tscript
  80. 4 4
      Templates/BaseGame/game/tools/decalEditor/decalEditorGui.gui
  81. 1 1
      Templates/BaseGame/game/tools/decalEditor/main.tscript
  82. 8 0
      Templates/BaseGame/game/tools/editorClasses/gui/images/images_window_image.asset.taml
  83. 6 6
      Templates/BaseGame/game/tools/editorClasses/gui/panels/navPanelProfiles.ed.tscript
  84. 1 1
      Templates/BaseGame/game/tools/editorClasses/scripts/guiFormLayoutManager.ed.tscript
  85. 3 3
      Templates/BaseGame/game/tools/forestEditor/forestEditToolbar.ed.gui
  86. 5 5
      Templates/BaseGame/game/tools/forestEditor/forestEditorGui.gui
  87. 2 2
      Templates/BaseGame/game/tools/forestEditor/main.tscript
  88. 2 2
      Templates/BaseGame/game/tools/gui/assimpImport.ed.tscript
  89. 2 2
      Templates/BaseGame/game/tools/gui/colladaImport.ed.gui
  90. 9 9
      Templates/BaseGame/game/tools/gui/cubemapEditor.gui
  91. 1 1
      Templates/BaseGame/game/tools/gui/editorSettingsWindow.ed.tscript
  92. 1 1
      Templates/BaseGame/game/tools/gui/guiObjectInspector.ed.gui
  93. 8 0
      Templates/BaseGame/game/tools/gui/images/menubar/menubar_snap_grid_d_image.asset.taml
  94. 8 0
      Templates/BaseGame/game/tools/gui/images/menubar/menubar_snap_grid_h_image.asset.taml
  95. 8 0
      Templates/BaseGame/game/tools/gui/images/menubar/menubar_snap_grid_n_image.asset.taml
  96. 8 0
      Templates/BaseGame/game/tools/gui/images/treeview/treeview_default_image.asset.taml
  97. 6 6
      Templates/BaseGame/game/tools/gui/materialSelector.ed.gui
  98. 2 2
      Templates/BaseGame/game/tools/gui/postFxEditor.gui
  99. 1 1
      Templates/BaseGame/game/tools/gui/profiles.ed.tscript
  100. 25 25
      Templates/BaseGame/game/tools/guiEditor/gui/guiEditor.ed.gui

+ 9 - 2
Engine/source/T3D/assets/ShapeAsset.cpp

@@ -536,12 +536,19 @@ DefineEngineMethod(ShapeAsset, getAnimation, ShapeAnimationAsset*, (S32 index),
 }
 }
 
 
 DefineEngineMethod(ShapeAsset, getShapeFile, const char*, (), ,
 DefineEngineMethod(ShapeAsset, getShapeFile, const char*, (), ,
-   "Creates a new script asset using the targetFilePath.\n"
-   "@return The bool result of calling exec")
+   "Gets the shape's file path\n"
+   "@return The filename of the shape file")
 {
 {
    return object->getShapeFilePath();
    return object->getShapeFilePath();
 }
 }
 
 
+DefineEngineMethod(ShapeAsset, getShapeConstructorFilePath, const char*, (), ,
+   "Gets the shape's constructor file.\n"
+   "@return The filename of the shape constructor file")
+{
+   return object->getShapeConstructorFilePath();
+}
+
 DefineEngineMethod(ShapeAsset, getStatusString, String, (), , "get status string")\
 DefineEngineMethod(ShapeAsset, getStatusString, String, (), , "get status string")\
 {
 {
    return ShapeAsset::getAssetErrstrn(object->getStatus());
    return ShapeAsset::getAssetErrstrn(object->getStatus());

+ 9 - 9
Engine/source/T3D/assets/assetImporter.cpp

@@ -32,7 +32,7 @@ ConsoleDocClass(AssetImportConfig,
 IMPLEMENT_CONOBJECT(AssetImportConfig);
 IMPLEMENT_CONOBJECT(AssetImportConfig);
 
 
 AssetImportConfig::AssetImportConfig() :
 AssetImportConfig::AssetImportConfig() :
-   DuplicatAutoResolution("AutoRename"),
+   DuplicateAutoResolution("AutoRename"),
    WarningsAsErrors(false),
    WarningsAsErrors(false),
    PreventImportWithErrors(true),
    PreventImportWithErrors(true),
    AutomaticallyPromptMissingFiles(false),
    AutomaticallyPromptMissingFiles(false),
@@ -132,7 +132,7 @@ void AssetImportConfig::initPersistFields()
    Parent::initPersistFields();
    Parent::initPersistFields();
 
 
    addGroup("General");
    addGroup("General");
-      addField("DuplicatAutoResolution", TypeRealString, Offset(DuplicatAutoResolution, AssetImportConfig), "Duplicate Asset Auto-Resolution Action. Options are None, AutoPrune, AutoRename, FolderPrefix");
+      addField("DuplicateAutoResolution", TypeRealString, Offset(DuplicateAutoResolution, AssetImportConfig), "Duplicate Asset Auto-Resolution Action. Options are None, AutoPrune, AutoRename, FolderPrefix");
       addField("WarningsAsErrors", TypeBool, Offset(WarningsAsErrors, AssetImportConfig), "Indicates if warnings should be treated as errors");
       addField("WarningsAsErrors", TypeBool, Offset(WarningsAsErrors, AssetImportConfig), "Indicates if warnings should be treated as errors");
       addField("PreventImportWithErrors", TypeBool, Offset(PreventImportWithErrors, AssetImportConfig), "Indicates if importing should be prevented from completing if any errors are detected at all");
       addField("PreventImportWithErrors", TypeBool, Offset(PreventImportWithErrors, AssetImportConfig), "Indicates if importing should be prevented from completing if any errors are detected at all");
       addField("AutomaticallyPromptMissingFiles", TypeBool, Offset(AutomaticallyPromptMissingFiles, AssetImportConfig), "Should the importer automatically prompt to find missing files if they are not detected automatically by the importer");
       addField("AutomaticallyPromptMissingFiles", TypeBool, Offset(AutomaticallyPromptMissingFiles, AssetImportConfig), "Should the importer automatically prompt to find missing files if they are not detected automatically by the importer");
@@ -230,7 +230,7 @@ void AssetImportConfig::initPersistFields()
 void AssetImportConfig::loadImportConfig(Settings* configSettings, String configName)
 void AssetImportConfig::loadImportConfig(Settings* configSettings, String configName)
 {
 {
    //General
    //General
-   DuplicatAutoResolution = configSettings->value(String(configName + "/General/DuplicatAutoResolution").c_str());
+   DuplicateAutoResolution = configSettings->value(String(configName + "/General/DuplicateAutoResolution").c_str());
    WarningsAsErrors = dAtob(configSettings->value(String(configName + "/General/WarningsAsErrors").c_str()));
    WarningsAsErrors = dAtob(configSettings->value(String(configName + "/General/WarningsAsErrors").c_str()));
    PreventImportWithErrors = dAtob(configSettings->value(String(configName + "/General/PreventImportWithErrors").c_str()));
    PreventImportWithErrors = dAtob(configSettings->value(String(configName + "/General/PreventImportWithErrors").c_str()));
    AutomaticallyPromptMissingFiles = dAtob(configSettings->value(String(configName + "/General/AutomaticallyPromptMissingFiles").c_str()));
    AutomaticallyPromptMissingFiles = dAtob(configSettings->value(String(configName + "/General/AutomaticallyPromptMissingFiles").c_str()));
@@ -320,7 +320,7 @@ void AssetImportConfig::loadImportConfig(Settings* configSettings, String config
 
 
 void AssetImportConfig::CopyTo(AssetImportConfig* target) const
 void AssetImportConfig::CopyTo(AssetImportConfig* target) const
 {
 {
-   target->DuplicatAutoResolution = DuplicatAutoResolution;
+   target->DuplicateAutoResolution = DuplicateAutoResolution;
    target->WarningsAsErrors = WarningsAsErrors;
    target->WarningsAsErrors = WarningsAsErrors;
    target->PreventImportWithErrors = PreventImportWithErrors;
    target->PreventImportWithErrors = PreventImportWithErrors;
    target->AutomaticallyPromptMissingFiles = AutomaticallyPromptMissingFiles;
    target->AutomaticallyPromptMissingFiles = AutomaticallyPromptMissingFiles;
@@ -2345,7 +2345,7 @@ void AssetImporter::resolveAssetItemIssues(AssetImportObject* assetItem)
       String humanReadableReason = assetItem->statusType == String("DuplicateImportAsset") ? "Importing asset was duplicate of another importing asset" : "Importing asset was duplicate of an existing asset";
       String humanReadableReason = assetItem->statusType == String("DuplicateImportAsset") ? "Importing asset was duplicate of another importing asset" : "Importing asset was duplicate of an existing asset";
 
 
       //get the config value for duplicateAutoResolution
       //get the config value for duplicateAutoResolution
-      if (activeImportConfig->DuplicatAutoResolution == String("AutoPrune"))
+      if (activeImportConfig->DuplicateAutoResolution == String("AutoPrune"))
       {
       {
          //delete the item
          //delete the item
          deleteImportingAsset(assetItem);
          deleteImportingAsset(assetItem);
@@ -2356,7 +2356,7 @@ void AssetImporter::resolveAssetItemIssues(AssetImportObject* assetItem)
 
 
          importIssues = false;
          importIssues = false;
       }
       }
-      else if (activeImportConfig->DuplicatAutoResolution == String("AutoRename"))
+      else if (activeImportConfig->DuplicateAutoResolution == String("AutoRename"))
       {
       {
          //Set trailing number
          //Set trailing number
          String renamedAssetName = assetItem->assetName;
          String renamedAssetName = assetItem->assetName;
@@ -2375,11 +2375,11 @@ void AssetImporter::resolveAssetItemIssues(AssetImportObject* assetItem)
          resetAssetValidationStatus(assetItem);
          resetAssetValidationStatus(assetItem);
          importIssues = false;
          importIssues = false;
       }
       }
-      else if (activeImportConfig->DuplicatAutoResolution == String("UseExisting"))
+      else if (activeImportConfig->DuplicateAutoResolution == String("UseExisting"))
       {
       {
 
 
       }
       }
-      else if (activeImportConfig->DuplicatAutoResolution == String("FolderPrefix"))
+      else if (activeImportConfig->DuplicateAutoResolution == String("FolderPrefix"))
       {
       {
          //Set trailing number
          //Set trailing number
          String renamedAssetName = assetItem->assetName;
          String renamedAssetName = assetItem->assetName;
@@ -3150,7 +3150,7 @@ Torque::Path AssetImporter::importShapeAsset(AssetImportObject* assetItem)
       activityLog.push_back(importLogBuffer);
       activityLog.push_back(importLogBuffer);
 
 
       //find/create shape constructor
       //find/create shape constructor
-      TSShapeConstructor* constructor = TSShapeConstructor::findShapeConstructor(Torque::Path(qualifiedToFile).getFullPath());
+      TSShapeConstructor* constructor = TSShapeConstructor::findShapeConstructorByFilename(Torque::Path(qualifiedToFile).getFullPath());
       if (constructor == nullptr)
       if (constructor == nullptr)
       {
       {
          constructor = new TSShapeConstructor(StringTable->insert(qualifiedToFile));
          constructor = new TSShapeConstructor(StringTable->insert(qualifiedToFile));

+ 1 - 1
Engine/source/T3D/assets/assetImporter.h

@@ -22,7 +22,7 @@ public:
    /// <summary>
    /// <summary>
    /// Duplicate Asset Auto-Resolution Action. Options are None, AutoPrune, AutoRename
    /// Duplicate Asset Auto-Resolution Action. Options are None, AutoPrune, AutoRename
    /// </summary>
    /// </summary>
-   String DuplicatAutoResolution;
+   String DuplicateAutoResolution;
 
 
    /// <summary>
    /// <summary>
    /// Indicates if warnings should be treated as errors.
    /// Indicates if warnings should be treated as errors.

+ 15 - 0
Engine/source/console/fileSystemFunctions.cpp

@@ -398,6 +398,21 @@ DefineEngineFunction(isFile, bool, ( const char* fileName ),,
    return Torque::FS::IsFile(givenPath);
    return Torque::FS::IsFile(givenPath);
 }
 }
 
 
+DefineEngineFunction(isScriptFile, bool, (const char* fileName), ,
+   "@brief Determines if the specified file exists or not\n\n"
+
+   "@param fileName The path to the file.\n"
+   "@return Returns true if the file was found.\n"
+
+   "@ingroup FileSystem")
+{
+   String cleanfilename(Torque::Path::CleanSeparators(fileName));
+   Con::expandScriptFilename(sgScriptFilenameBuffer, sizeof(sgScriptFilenameBuffer), cleanfilename.c_str());
+
+   Torque::Path givenPath(Torque::Path::CompressPath(sgScriptFilenameBuffer));
+   return Torque::FS::IsScriptFile(givenPath.getFullPath());
+}
+
 DefineEngineFunction( IsDirectory, bool, ( const char* directory ),,
 DefineEngineFunction( IsDirectory, bool, ( const char* directory ),,
    "@brief Determines if a specified directory exists or not\n\n"
    "@brief Determines if a specified directory exists or not\n\n"
 
 

+ 101 - 27
Engine/source/gui/buttons/guiBitmapButtonCtrl.cpp

@@ -128,6 +128,8 @@ GuiBitmapButtonCtrl::GuiBitmapButtonCtrl()
    mUseStates = true;
    mUseStates = true;
    setExtent( 140, 30 );
    setExtent( 140, 30 );
    mMasked = false;
    mMasked = false;
+
+   INIT_IMAGEASSET(Bitmap);
 }
 }
 
 
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
@@ -135,13 +137,12 @@ GuiBitmapButtonCtrl::GuiBitmapButtonCtrl()
 void GuiBitmapButtonCtrl::initPersistFields()
 void GuiBitmapButtonCtrl::initPersistFields()
 {
 {
    addGroup( "Bitmap" );
    addGroup( "Bitmap" );
-   
-      addProtectedField( "bitmap", TypeStringFilename, Offset( mBitmapName, GuiBitmapButtonCtrl ),
-         &_setBitmap, &defaultProtectedGetFn,
-         "Texture file to display on this button.\n"
+
+      INITPERSISTFIELD_IMAGEASSET(Bitmap, GuiBitmapButtonCtrl, "Texture file to display on this button.\n"
          "If useStates is false, this will be the file that renders on the control.  Otherwise, this will "
          "If useStates is false, this will be the file that renders on the control.  Otherwise, this will "
          "specify the default texture name to which the various state and modifier suffixes are appended "
          "specify the default texture name to which the various state and modifier suffixes are appended "
-         "to find the per-state and per-modifier (if enabled) textures." );
+         "to find the per-state and per-modifier (if enabled) textures.");
+
       addField( "bitmapMode", TYPEID< BitmapMode >(), Offset( mBitmapMode, GuiBitmapButtonCtrl ),
       addField( "bitmapMode", TYPEID< BitmapMode >(), Offset( mBitmapMode, GuiBitmapButtonCtrl ),
          "Behavior for fitting the bitmap to the control extents.\n"
          "Behavior for fitting the bitmap to the control extents.\n"
          "If set to 'Stretched', the bitmap will be stretched both verticall and horizontally to fit inside "
          "If set to 'Stretched', the bitmap will be stretched both verticall and horizontally to fit inside "
@@ -176,7 +177,7 @@ bool GuiBitmapButtonCtrl::onWake()
       return false;
       return false;
       
       
    setActive( true );
    setActive( true );
-   setBitmap( mBitmapName );
+   setBitmap( getBitmap() );
    
    
    return true;
    return true;
 }
 }
@@ -208,22 +209,22 @@ bool GuiBitmapButtonCtrl::_setAutoFitExtents( void *object, const char *index, c
 
 
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 
 
-bool GuiBitmapButtonCtrl::_setBitmap( void *object, const char *index, const char *data )
+/*bool GuiBitmapButtonCtrl::_setBitmap(void* object, const char* index, const char* data)
 {
 {
    GuiBitmapButtonCtrl* ctrl = reinterpret_cast< GuiBitmapButtonCtrl* >( object );
    GuiBitmapButtonCtrl* ctrl = reinterpret_cast< GuiBitmapButtonCtrl* >( object );
    ctrl->setBitmap( StringTable->insert(data) );
    ctrl->setBitmap( StringTable->insert(data) );
    return false;
    return false;
-}
+}*/
 
 
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 
 
 // Legacy method.  Can just assign to bitmap field.
 // Legacy method.  Can just assign to bitmap field.
-DefineEngineMethod( GuiBitmapButtonCtrl, setBitmap, void, ( const char* path ),,
+/*DefineEngineMethod(GuiBitmapButtonCtrl, setBitmap, void, (const char* path), ,
    "Set the bitmap to show on the button.\n"
    "Set the bitmap to show on the button.\n"
    "@param path Path to the texture file in any of the supported formats.\n" )
    "@param path Path to the texture file in any of the supported formats.\n" )
 {
 {
    object->setBitmap( StringTable->insert(path) );
    object->setBitmap( StringTable->insert(path) );
-}
+}*/
 
 
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 
 
@@ -282,13 +283,13 @@ void GuiBitmapButtonCtrl::setBitmap( StringTableEntry name )
 {
 {
    PROFILE_SCOPE( GuiBitmapButtonCtrl_setBitmap );
    PROFILE_SCOPE( GuiBitmapButtonCtrl_setBitmap );
    
    
-   mBitmapName = name;
+   _setBitmap(name);
    if( !isAwake() )
    if( !isAwake() )
       return;
       return;
 
 
-   if( mBitmapName != StringTable->EmptyString())
+   if( mBitmapAsset.notNull())
    {
    {
-      if( dStricmp( mBitmapName, "texhandle" ) != 0 )
+      if( dStricmp( getBitmap(), "texhandle" ) != 0 )
       {
       {
          const U32 count = mUseModifiers ? NumModifiers : 1;
          const U32 count = mUseModifiers ? NumModifiers : 1;
          for( U32 i = 0; i < count; ++ i )
          for( U32 i = 0; i < count; ++ i )
@@ -301,31 +302,102 @@ void GuiBitmapButtonCtrl::setBitmap( StringTableEntry name )
                "_shift"
                "_shift"
             };
             };
             
             
-            static String s_n = "_n";
-            static String s_d = "_d";
-            static String s_h = "_h";
-            static String s_i = "_i";
+            static String s_n[2] = { "_n", "_n_image" };
+            static String s_d[2] = { "_d", "_d_image" };
+            static String s_h[2] = { "_h", "_h_image" };
+            static String s_i[2] = { "_i", "_i_image" };
+
+            String baseName = mBitmapAssetId;
+
+            //strip any pre-assigned suffix, just in case
+            baseName = baseName.replace("_n_image", "");
+            baseName = baseName.replace("_n", "");
 
 
-            String baseName = mBitmapName;
             if( mUseModifiers )
             if( mUseModifiers )
                baseName += modifiers[ i ];
                baseName += modifiers[ i ];
 
 
-            mTextures[ i ].mTextureNormal = GFXTexHandle( baseName, &GFXDefaultGUIProfile, avar("%s() - mTextureNormal (line %d)", __FUNCTION__, __LINE__));
+            mTextures[ i ].mTextureNormal = GFXTexHandle( mBitmapAsset->getImagePath(), &GFXDefaultGUIProfile, avar("%s() - mTextureNormal (line %d)", __FUNCTION__, __LINE__));
             
             
             if( mUseStates )
             if( mUseStates )
             {
             {
-               if( !mTextures[ i ].mTextureNormal )
-                  mTextures[ i ].mTextureNormal = GFXTexHandle( baseName + s_n, &GFXDefaultGUIProfile, avar("%s() - mTextureNormal (line %d)", __FUNCTION__, __LINE__));
-               
-               mTextures[ i ].mTextureHilight = GFXTexHandle( baseName + s_h, &GFXDefaultGUIProfile, avar("%s() - mTextureHighlight (line %d)", __FUNCTION__, __LINE__));
+               //normal lookup
+               StringTableEntry lookupName;
+               for (U32 s = 0; s < 2; s++)
+               {
+                  if (!mTextures[i].mTextureNormal)
+                  {
+                     lookupName = StringTable->insert(String(baseName + s_n[s]).c_str());
+                     if (AssetDatabase.isDeclaredAsset(lookupName))
+                     {
+                        mTextures[i].mTextureNormalAssetId = lookupName;
+                        mTextures[i].mTextureNormalAsset = mTextures[i].mTextureNormalAssetId;
+                     }
+
+                     if (mTextures[i].mTextureNormalAsset.notNull() && mTextures[i].mTextureNormalAsset->getStatus() == AssetBase::Ok)
+                     {
+                        mTextures[i].mTextureNormal = GFXTexHandle(mTextures[i].mTextureNormalAsset->getImagePath(), &GFXDefaultGUIProfile, avar("%s() - mTextureNormal (line %d)", __FUNCTION__, __LINE__));
+                        break;
+                     }
+                  }
+               }
+
+               //Hilight lookup
+               for (U32 s = 0; s < 2; s++)
+               {
+                  lookupName = StringTable->insert(String(baseName + s_h[s]).c_str());
+                  if (AssetDatabase.isDeclaredAsset(lookupName))
+                  {
+                     mTextures[i].mTextureHilightAssetId = lookupName;
+                     mTextures[i].mTextureHilightAsset = mTextures[i].mTextureHilightAssetId;
+                  }
+
+                  if (mTextures[i].mTextureHilightAsset.notNull() && mTextures[i].mTextureHilightAsset->getStatus() == AssetBase::Ok)
+                  {
+                     mTextures[i].mTextureHilight = GFXTexHandle(mTextures[i].mTextureHilightAsset->getImagePath(), &GFXDefaultGUIProfile, avar("%s() - mTextureHighlight (line %d)", __FUNCTION__, __LINE__));
+                     break;
+                  }
+               }
+
                if( !mTextures[ i ].mTextureHilight )
                if( !mTextures[ i ].mTextureHilight )
                   mTextures[ i ].mTextureHilight = mTextures[ i ].mTextureNormal;
                   mTextures[ i ].mTextureHilight = mTextures[ i ].mTextureNormal;
-                  
-               mTextures[ i ].mTextureDepressed = GFXTexHandle( baseName + s_d, &GFXDefaultGUIProfile, avar("%s() - mTextureDepressed (line %d)", __FUNCTION__, __LINE__));
+
+               //Depressed lookup
+               for (U32 s = 0; s < 2; s++)
+               {
+                  lookupName = StringTable->insert(String(baseName + s_d[s]).c_str());
+                  if (AssetDatabase.isDeclaredAsset(lookupName))
+                  {
+                     mTextures[i].mTextureDepressedAssetId = lookupName;
+                     mTextures[i].mTextureDepressedAsset = mTextures[i].mTextureDepressedAssetId;
+                  }
+
+                  if (mTextures[i].mTextureDepressedAsset.notNull() && mTextures[i].mTextureDepressedAsset->getStatus() == AssetBase::Ok)
+                  {
+                     mTextures[i].mTextureDepressed = GFXTexHandle(mTextures[i].mTextureDepressedAsset->getImagePath(), &GFXDefaultGUIProfile, avar("%s() - mTextureDepressed (line %d)", __FUNCTION__, __LINE__));
+                     break;
+                  }
+               }
+
                if( !mTextures[ i ].mTextureDepressed )
                if( !mTextures[ i ].mTextureDepressed )
                   mTextures[ i ].mTextureDepressed = mTextures[ i ].mTextureHilight;
                   mTextures[ i ].mTextureDepressed = mTextures[ i ].mTextureHilight;
 
 
-               mTextures[ i ].mTextureInactive = GFXTexHandle( baseName + s_i, &GFXDefaultGUIProfile, avar("%s() - mTextureInactive (line %d)", __FUNCTION__, __LINE__));
+               //Depressed lookup
+               for (U32 s = 0; s < 2; s++)
+               {
+                  lookupName = StringTable->insert(String(baseName + s_i[s]).c_str());
+                  if (AssetDatabase.isDeclaredAsset(lookupName))
+                  {
+                     mTextures[i].mTextureInactiveAssetId = lookupName;
+                     mTextures[i].mTextureInactiveAsset = mTextures[i].mTextureInactiveAssetId;
+                  }
+
+                  if (mTextures[i].mTextureInactiveAsset.notNull() && mTextures[i].mTextureInactiveAsset->getStatus() == AssetBase::Ok)
+                  {
+                     mTextures[i].mTextureInactive = GFXTexHandle(mTextures[i].mTextureInactiveAsset->getImagePath(), &GFXDefaultGUIProfile, avar("%s() - mTextureInactive (line %d)", __FUNCTION__, __LINE__));
+                     break;
+                  }
+               }
+
                if( !mTextures[ i ].mTextureInactive )
                if( !mTextures[ i ].mTextureInactive )
                   mTextures[ i ].mTextureInactive = mTextures[ i ].mTextureNormal;
                   mTextures[ i ].mTextureInactive = mTextures[ i ].mTextureNormal;
             }
             }
@@ -594,4 +666,6 @@ bool GuiBitmapButtonCtrl::pointInControl(const Point2I& parentCoordPoint)
    }
    }
    else
    else
       return Parent::pointInControl(parentCoordPoint);
       return Parent::pointInControl(parentCoordPoint);
-}
+}
+
+DEF_IMAGEASSET_BINDS(GuiBitmapButtonCtrl, Bitmap);

+ 13 - 3
Engine/source/gui/buttons/guiBitmapButtonCtrl.h

@@ -84,15 +84,23 @@ class GuiBitmapButtonCtrl : public GuiButtonCtrl
       struct Textures
       struct Textures
       {
       {
          /// Texture for normal state.
          /// Texture for normal state.
+         StringTableEntry mTextureNormalAssetId;
+         AssetPtr<ImageAsset> mTextureNormalAsset;
          GFXTexHandle mTextureNormal;
          GFXTexHandle mTextureNormal;
          
          
          /// Texture for highlight state.
          /// Texture for highlight state.
+         StringTableEntry mTextureHilightAssetId;
+         AssetPtr<ImageAsset> mTextureHilightAsset;
          GFXTexHandle mTextureHilight;
          GFXTexHandle mTextureHilight;
          
          
          /// Texture for depressed state.
          /// Texture for depressed state.
+         StringTableEntry mTextureDepressedAssetId;
+         AssetPtr<ImageAsset> mTextureDepressedAsset;
          GFXTexHandle mTextureDepressed;
          GFXTexHandle mTextureDepressed;
          
          
          /// Texture for inactive state.
          /// Texture for inactive state.
+         StringTableEntry mTextureInactiveAssetId;
+         AssetPtr<ImageAsset> mTextureInactiveAsset;
          GFXTexHandle mTextureInactive;
          GFXTexHandle mTextureInactive;
       };
       };
 
 
@@ -110,8 +118,8 @@ class GuiBitmapButtonCtrl : public GuiButtonCtrl
       ///
       ///
       BitmapMode mBitmapMode;
       BitmapMode mBitmapMode;
 
 
-      /// File name for bitmap.
-      StringTableEntry mBitmapName;
+      DECLARE_IMAGEASSET(GuiBitmapButtonCtrl, Bitmap, onBitmapChange, GFXDefaultGUIProfile);
+      DECLARE_IMAGEASSET_SETGET(GuiBitmapButtonCtrl, Bitmap);
       
       
       /// alpha masking
       /// alpha masking
       bool mMasked;
       bool mMasked;
@@ -122,7 +130,7 @@ class GuiBitmapButtonCtrl : public GuiButtonCtrl
       virtual void renderButton( GFXTexHandle &texture, const Point2I& offset, const RectI& updateRect );
       virtual void renderButton( GFXTexHandle &texture, const Point2I& offset, const RectI& updateRect );
       
       
       static bool _setAutoFitExtents( void *object, const char *index, const char *data );
       static bool _setAutoFitExtents( void *object, const char *index, const char *data );
-      static bool _setBitmap( void *object, const char *index, const char *data );
+      //static bool _setBitmap( void *object, const char *index, const char *data );
       
       
       State getState() const
       State getState() const
       {
       {
@@ -149,6 +157,8 @@ class GuiBitmapButtonCtrl : public GuiButtonCtrl
       
       
       /// @}
       /// @}
 
 
+      void onBitmapChange() {}
+
    public:
    public:
                            
                            
       GuiBitmapButtonCtrl();
       GuiBitmapButtonCtrl();

+ 40 - 0
Engine/source/gui/editor/guiShapeEdPreview.cpp

@@ -35,6 +35,9 @@
 #include "gfx/gfxDrawUtil.h"
 #include "gfx/gfxDrawUtil.h"
 #include "collision/concretePolyList.h"
 #include "collision/concretePolyList.h"
 
 
+#include "T3D/assets/ShapeAsset.h"
+#include "T3D/assets/ShapeAnimationAsset.h"
+
 #ifdef TORQUE_COLLADA
 #ifdef TORQUE_COLLADA
    #include "collision/optimizedPolyList.h"
    #include "collision/optimizedPolyList.h"
    #include "ts/collada/colladaUtils.h"
    #include "ts/collada/colladaUtils.h"
@@ -399,6 +402,35 @@ bool GuiShapeEdPreview::setObjectModel(const char* modelName)
    return true;
    return true;
 }
 }
 
 
+bool GuiShapeEdPreview::setObjectShapeAsset(const char* assetId)
+{
+   SAFE_DELETE(mModel);
+   unmountAll();
+   mThreads.clear();
+   mActiveThread = -1;
+
+   StringTableEntry modelName = StringTable->EmptyString();
+   if (AssetDatabase.isDeclaredAsset(assetId))
+   {
+      StringTableEntry id = StringTable->insert(assetId);
+      StringTableEntry assetType = AssetDatabase.getAssetType(id);
+      if (assetType == StringTable->insert("ShapeAsset"))
+      {
+         ShapeAsset* asset = AssetDatabase.acquireAsset<ShapeAsset>(id);
+         modelName = asset->getShapeFilePath();
+         AssetDatabase.releaseAsset(id);
+      }
+      else if (assetType == StringTable->insert("ShapeAnimationAsset"))
+      {
+         ShapeAnimationAsset* asset = AssetDatabase.acquireAsset<ShapeAnimationAsset>(id);
+         modelName = asset->getAnimationPath();
+         AssetDatabase.releaseAsset(id);
+      }
+   }
+
+   return setObjectModel(modelName);
+}
+
 void GuiShapeEdPreview::_onResourceChanged(const Torque::Path& path)
 void GuiShapeEdPreview::_onResourceChanged(const Torque::Path& path)
 {
 {
    if (path != Torque::Path(mModelName))
    if (path != Torque::Path(mModelName))
@@ -1717,6 +1749,14 @@ DefineEngineMethod( GuiShapeEdPreview, setModel, bool, ( const char* shapePath )
    return object->setObjectModel( shapePath );
    return object->setObjectModel( shapePath );
 }
 }
 
 
+DefineEngineMethod(GuiShapeEdPreview, setShapeAsset, bool, (const char* shapeAsset), ,
+   "Sets the model to be displayed in this control\n\n"
+   "@param shapeName Name of the model to display.\n"
+   "@return True if the model was loaded successfully, false otherwise.\n")
+{
+   return object->setObjectShapeAsset(shapeAsset);
+}
+
 DefineEngineMethod( GuiShapeEdPreview, fitToShape, void, (),,
 DefineEngineMethod( GuiShapeEdPreview, fitToShape, void, (),,
    "Adjust the camera position and zoom to fit the shape within the view.\n\n" )
    "Adjust the camera position and zoom to fit the shape within the view.\n\n" )
 {
 {

+ 1 - 0
Engine/source/gui/editor/guiShapeEdPreview.h

@@ -199,6 +199,7 @@ public:
 
 
    void setCurrentDetail(S32 dl);
    void setCurrentDetail(S32 dl);
    bool setObjectModel(const char * modelName);
    bool setObjectModel(const char * modelName);
+   bool setObjectShapeAsset(const char* assetId);
 
 
    void _onResourceChanged(const Torque::Path& path);
    void _onResourceChanged(const Torque::Path& path);
 
 

+ 1 - 1
Engine/source/ts/assimp/assimpShapeLoader.cpp

@@ -805,7 +805,7 @@ TSShape* assimpLoadShape(const Torque::Path &path)
 
 
    // Allow TSShapeConstructor object to override properties
    // Allow TSShapeConstructor object to override properties
    ColladaUtils::getOptions().reset();
    ColladaUtils::getOptions().reset();
-   TSShapeConstructor* tscon = TSShapeConstructor::findShapeConstructor(path.getFullPath());
+   TSShapeConstructor* tscon = TSShapeConstructor::findShapeConstructorByFilename(path.getFullPath());
    if (tscon)
    if (tscon)
    {
    {
       ColladaUtils::getOptions() = tscon->mOptions;
       ColladaUtils::getOptions() = tscon->mOptions;

+ 1 - 1
Engine/source/ts/collada/colladaShapeLoader.cpp

@@ -693,7 +693,7 @@ TSShape* loadColladaShape(const Torque::Path &path)
 
 
    // Allow TSShapeConstructor object to override properties
    // Allow TSShapeConstructor object to override properties
    ColladaUtils::getOptions().reset();
    ColladaUtils::getOptions().reset();
-   TSShapeConstructor* tscon = TSShapeConstructor::findShapeConstructor(path.getFullPath());
+   TSShapeConstructor* tscon = TSShapeConstructor::findShapeConstructorByFilename(path.getFullPath());
    if (tscon)
    if (tscon)
    {
    {
       ColladaUtils::getOptions() = tscon->mOptions;
       ColladaUtils::getOptions() = tscon->mOptions;

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 322 - 287
Engine/source/ts/tsShapeConstruct.cpp


+ 141 - 122
Engine/source/ts/tsShapeConstruct.h

@@ -42,6 +42,9 @@
 #include "console/engineAPI.h"
 #include "console/engineAPI.h"
 #endif
 #endif
 
 
+#include "T3D/assets/ShapeAsset.h"
+#include "T3D/assets/ShapeAnimationAsset.h"
+
 /// This class allows an artist to export their animations for the model
 /// This class allows an artist to export their animations for the model
 /// into the .dsq format.  This class in particular matches up the model
 /// into the .dsq format.  This class in particular matches up the model
 /// with the .dsqs to create a nice animated model.
 /// with the .dsqs to create a nice animated model.
@@ -101,17 +104,17 @@ public:
          String            argv[MAX_ARGS];   // Command arguments
          String            argv[MAX_ARGS];   // Command arguments
          S32               argc;       // Number of arguments
          S32               argc;       // Number of arguments
          Command() : type(CmdInvalid), name(0), argc(0) { }
          Command() : type(CmdInvalid), name(0), argc(0) { }
-         Command( const char* _name )
+         Command(const char* _name)
             : type(CmdInvalid), argc(0)
             : type(CmdInvalid), argc(0)
          {
          {
-            name = StringTable->insert( _name );
+            name = StringTable->insert(_name);
+         }
+
+         // Helper functions to fill in the command arguments
+         template<typename ...ArgTs> inline void addArgs(ArgTs ...args) {
+            using Helper = engineAPI::detail::MarshallHelpers<String>;
+            Helper::marshallEach(argc, argv, args...);
          }
          }
-        
-        // Helper functions to fill in the command arguments
-        template<typename ...ArgTs> inline void addArgs(ArgTs ...args){
-           using Helper = engineAPI::detail::MarshallHelpers<String>;
-           Helper::marshallEach(argc, argv, args...);
-        }
       };
       };
 
 
       Vector<Command>   mCommands;
       Vector<Command>   mCommands;
@@ -120,40 +123,40 @@ public:
       void clear() { mCommands.clear(); }
       void clear() { mCommands.clear(); }
       bool empty() { return mCommands.empty(); }
       bool empty() { return mCommands.empty(); }
 
 
-      void add( Command& cmd );
+      void add(Command& cmd);
 
 
       // These methods handle change set optimisation based on the newly added command
       // These methods handle change set optimisation based on the newly added command
-      bool addCmd_setNodeParent( const Command& newCmd );
-      bool addCmd_setNodeTransform( const Command& newCmd );
-      bool addCmd_renameNode( const Command& newCmd );
-      bool addCmd_removeNode( const Command& newCmd );
-
-      bool addCmd_setMeshSize( const Command& newCmd );
-      bool addCmd_setMeshType( const Command& newCmd );
-      bool addCmd_setMeshMaterial( const Command& newCmd );
-      bool addCmd_removeMesh( const Command& newCmd );
-
-      bool addCmd_setObjectNode( const Command& newCmd );
-      bool addCmd_renameObject( const Command& newCmd );
-      bool addCmd_removeObject( const Command& newCmd );
-      bool addCmd_setBounds( const Command& newCmd );
-
-      bool addCmd_renameDetailLevel( const Command& newCmd );
-      bool addCmd_removeDetailLevel( const Command& newCmd );
-      bool addCmd_setDetailSize( const Command& newCmd );
-      bool addCmd_addImposter( const Command& newCmd );
-      bool addCmd_removeImposter( const Command& newCmd );
-
-      bool addCmd_addSequence( Command& newCmd );
-      bool addCmd_setSequencePriority( const Command& newCmd );
-      bool addCmd_setSequenceGroundSpeed( const Command& newCmd );
-      bool addCmd_setSequenceCyclic( const Command& newCmd );
-      bool addCmd_setSequenceBlend( const Command& newCmd );
-      bool addCmd_renameSequence( const Command& newCmd );
-      bool addCmd_removeSequence( const Command& newCmd );
-
-      bool addCmd_addTrigger( const Command& newCmd );
-      bool addCmd_removeTrigger( const Command& newCmd );
+      bool addCmd_setNodeParent(const Command& newCmd);
+      bool addCmd_setNodeTransform(const Command& newCmd);
+      bool addCmd_renameNode(const Command& newCmd);
+      bool addCmd_removeNode(const Command& newCmd);
+
+      bool addCmd_setMeshSize(const Command& newCmd);
+      bool addCmd_setMeshType(const Command& newCmd);
+      bool addCmd_setMeshMaterial(const Command& newCmd);
+      bool addCmd_removeMesh(const Command& newCmd);
+
+      bool addCmd_setObjectNode(const Command& newCmd);
+      bool addCmd_renameObject(const Command& newCmd);
+      bool addCmd_removeObject(const Command& newCmd);
+      bool addCmd_setBounds(const Command& newCmd);
+
+      bool addCmd_renameDetailLevel(const Command& newCmd);
+      bool addCmd_removeDetailLevel(const Command& newCmd);
+      bool addCmd_setDetailSize(const Command& newCmd);
+      bool addCmd_addImposter(const Command& newCmd);
+      bool addCmd_removeImposter(const Command& newCmd);
+
+      bool addCmd_addSequence(Command& newCmd);
+      bool addCmd_setSequencePriority(const Command& newCmd);
+      bool addCmd_setSequenceGroundSpeed(const Command& newCmd);
+      bool addCmd_setSequenceCyclic(const Command& newCmd);
+      bool addCmd_setSequenceBlend(const Command& newCmd);
+      bool addCmd_renameSequence(const Command& newCmd);
+      bool addCmd_removeSequence(const Command& newCmd);
+
+      bool addCmd_addTrigger(const Command& newCmd);
+      bool addCmd_removeTrigger(const Command& newCmd);
 
 
       void write(TSShape* shape, Stream& stream, const String& savePath);
       void write(TSShape* shape, Stream& stream, const String& savePath);
    };
    };
@@ -161,8 +164,12 @@ public:
    static const S32 MaxLegacySequences = 127;
    static const S32 MaxLegacySequences = 127;
 
 
 protected:
 protected:
-   StringTableEntry          mShapePath;
-   Vector<StringTableEntry>  mSequences;
+   StringTableEntry     mShapeAssetId;
+   AssetPtr<ShapeAsset> mShapeAsset;
+
+   Vector<StringTableEntry>  mSequenceAssetIds;
+   Vector<AssetPtr<ShapeAnimationAsset>> mSequencesAssets;
+
    ChangeSet         mChangeSet;
    ChangeSet         mChangeSet;
 
 
    // Paths to shapes used by MeshFit
    // Paths to shapes used by MeshFit
@@ -170,46 +177,47 @@ protected:
    static String smCubeShapePath;
    static String smCubeShapePath;
    static String smSphereShapePath;
    static String smSphereShapePath;
 
 
-   static bool addSequenceFromField( void *obj, const char *index, const char *data );
-   
-   static void       _onTSShapeLoaded( Resource< TSShape >& shape );
-   static void       _onTSShapeUnloaded( const Torque::Path& path, TSShape* shape );
-   
+   static bool addSequenceFromField(void* obj, const char* index, const char* data);
+
+   static void       _onTSShapeLoaded(Resource< TSShape >& shape);
+   static void       _onTSShapeUnloaded(const Torque::Path& path, TSShape* shape);
+
    static ResourceRegisterPostLoadSignal< TSShape > _smAutoLoad;
    static ResourceRegisterPostLoadSignal< TSShape > _smAutoLoad;
    static ResourceRegisterUnloadSignal< TSShape > _smAutoUnload;
    static ResourceRegisterUnloadSignal< TSShape > _smAutoUnload;
-   
+
    /// @name Callbacks
    /// @name Callbacks
    ///@{
    ///@{
-   DECLARE_CALLBACK( void, onLoad, () );
-   DECLARE_CALLBACK( void, onUnload, () );
+   DECLARE_CALLBACK(void, onLoad, ());
+   DECLARE_CALLBACK(void, onUnload, ());
    ///@}
    ///@}
 
 
-   virtual void      _onLoad( TSShape* shape );
+   virtual void      _onLoad(TSShape* shape);
    virtual void      _onUnload();
    virtual void      _onUnload();
 
 
 public:
 public:
 
 
-   TSShape*                mShape;        // Edited shape; NULL while not loaded; not a Resource<TSShape> as we don't want it to prevent from unloading.
+   TSShape* mShape;        // Edited shape; NULL while not loaded; not a Resource<TSShape> as we don't want it to prevent from unloading.
    ColladaUtils::ImportOptions   mOptions;
    ColladaUtils::ImportOptions   mOptions;
    bool mLoadingShape;
    bool mLoadingShape;
 
 
 public:
 public:
 
 
    TSShapeConstructor();
    TSShapeConstructor();
-   TSShapeConstructor(StringTableEntry path) : mShapePath(path), mShape(NULL), mLoadingShape(false){ }
+   TSShapeConstructor(StringTableEntry path) : mShapeAssetId(path), mShape(NULL), mLoadingShape(false) { }
    ~TSShapeConstructor();
    ~TSShapeConstructor();
 
 
    DECLARE_CONOBJECT(TSShapeConstructor);
    DECLARE_CONOBJECT(TSShapeConstructor);
    static void initPersistFields();
    static void initPersistFields();
    static void consoleInit();
    static void consoleInit();
-   static TSShapeConstructor* findShapeConstructor(const FileName& path);
+   static TSShapeConstructor* findShapeConstructorByAssetId(StringTableEntry path);
+   static TSShapeConstructor* findShapeConstructorByFilename(const FileName& path);
 
 
    bool onAdd();
    bool onAdd();
 
 
    void onScriptChanged(const Torque::Path& path);
    void onScriptChanged(const Torque::Path& path);
    void onActionPerformed();
    void onActionPerformed();
 
 
-   bool writeField(StringTableEntry fieldname, const char *value);
+   bool writeField(StringTableEntry fieldname, const char* value);
    void writeChangeSet();
    void writeChangeSet();
 
 
    void notifyShapeChanged();
    void notifyShapeChanged();
@@ -222,107 +230,118 @@ public:
    ///@}
    ///@}
 
 
    TSShape* getShape() const { return mShape; }
    TSShape* getShape() const { return mShape; }
-   StringTableEntry getShapePath() const { return mShapePath; }
+   StringTableEntry getShapePath() const
+   {
+      if (mShapeAsset.notNull())
+         return mShapeAsset->getShapeFilePath();
+      else
+         return StringTable->EmptyString();
+   }
+
+   StringTableEntry getShapeAssetId() const
+   {
+      return mShapeAssetId;
+   }
 
 
    /// @name Dumping
    /// @name Dumping
    ///@{
    ///@{
-   void dumpShape( const char* filename );
-   void saveShape( const char* filename );
+   void dumpShape(const char* filename);
+   void saveShape(const char* filename);
    ///@}
    ///@}
 
 
    /// @name Nodes
    /// @name Nodes
    ///@{
    ///@{
    S32 getNodeCount();
    S32 getNodeCount();
-   S32 getNodeIndex( const char* name );
-   const char* getNodeName( S32 index );
-   const char* getNodeParentName( const char* name );
-   bool setNodeParent( const char* name, const char* parentName );
-   S32 getNodeChildCount( const char* name );
-   const char* getNodeChildName( const char* name, S32 index );
-   S32 getNodeObjectCount( const char* name );
-   const char* getNodeObjectName( const char* name, S32 index );
-   TransformF getNodeTransform( const char* name, bool isWorld=false );
-   bool setNodeTransform( const char* name, TransformF txfm, bool isWorld=false );
-   bool renameNode( const char* oldName, const char* newName );
-   bool addNode( const char* name, const char* parentName, TransformF txfm=TransformF::Identity, bool isWorld=false);
-   bool removeNode( const char* name );
+   S32 getNodeIndex(const char* name);
+   const char* getNodeName(S32 index);
+   const char* getNodeParentName(const char* name);
+   bool setNodeParent(const char* name, const char* parentName);
+   S32 getNodeChildCount(const char* name);
+   const char* getNodeChildName(const char* name, S32 index);
+   S32 getNodeObjectCount(const char* name);
+   const char* getNodeObjectName(const char* name, S32 index);
+   TransformF getNodeTransform(const char* name, bool isWorld = false);
+   bool setNodeTransform(const char* name, TransformF txfm, bool isWorld = false);
+   bool renameNode(const char* oldName, const char* newName);
+   bool addNode(const char* name, const char* parentName, TransformF txfm = TransformF::Identity, bool isWorld = false);
+   bool removeNode(const char* name);
    ///@}
    ///@}
 
 
    /// @name Materials
    /// @name Materials
    ///@{
    ///@{
    S32 getTargetCount();
    S32 getTargetCount();
-   const char* getTargetName( S32 index );
+   const char* getTargetName(S32 index);
    ///@}
    ///@}
 
 
    ///@{
    ///@{
    S32 getObjectCount();
    S32 getObjectCount();
-   const char* getObjectName( S32 index );
-   S32 getObjectIndex( const char* name );
-   const char* getObjectNode( const char* name );
-   bool setObjectNode( const char* objName, const char* nodeName );
-   bool renameObject( const char* oldName, const char* newName );
-   bool removeObject( const char* name );
+   const char* getObjectName(S32 index);
+   S32 getObjectIndex(const char* name);
+   const char* getObjectNode(const char* name);
+   bool setObjectNode(const char* objName, const char* nodeName);
+   bool renameObject(const char* oldName, const char* newName);
+   bool removeObject(const char* name);
    ///@}
    ///@}
 
 
    /// @name Meshes
    /// @name Meshes
    ///@{
    ///@{
-   S32 getMeshCount( const char* name );
-   const char* getMeshName( const char* name, S32 index );
-   S32 getMeshSize( const char* name, S32 index );
-   bool setMeshSize( const char* name, S32 size );
-   const char* getMeshType( const char* name );
-   bool setMeshType( const char* name, const char* type );
-   const char* getMeshMaterial( const char* name );
-   bool setMeshMaterial( const char* meshName, const char* matName );
-   bool addMesh( const char* meshName, const char* srcShape, const char* srcMesh );
-   bool addPrimitive( const char* meshName, const char* type, const char* params, TransformF txfm, const char* nodeName );
-   bool removeMesh( const char* name );
+   S32 getMeshCount(const char* name);
+   const char* getMeshName(const char* name, S32 index);
+   S32 getMeshSize(const char* name, S32 index);
+   bool setMeshSize(const char* name, S32 size);
+   const char* getMeshType(const char* name);
+   bool setMeshType(const char* name, const char* type);
+   const char* getMeshMaterial(const char* name);
+   bool setMeshMaterial(const char* meshName, const char* matName);
+   bool addMesh(const char* meshName, const char* srcShape, const char* srcMesh);
+   bool addPrimitive(const char* meshName, const char* type, const char* params, TransformF txfm, const char* nodeName);
+   bool removeMesh(const char* name);
    ///@}
    ///@}
 
 
    /// @name Detail Levels
    /// @name Detail Levels
    ///@{
    ///@{
    Box3F getBounds();
    Box3F getBounds();
-   bool setBounds( Box3F bbox );
+   bool setBounds(Box3F bbox);
    S32 getDetailLevelCount();
    S32 getDetailLevelCount();
-   const char* getDetailLevelName( S32 index );
-   S32 getDetailLevelSize( S32 index);
-   S32 getDetailLevelIndex( S32 size );
-   bool renameDetailLevel( const char* oldName, const char* newName );
-   bool removeDetailLevel( S32 index );
-   S32 setDetailLevelSize( S32 index, S32 newSize );
+   const char* getDetailLevelName(S32 index);
+   S32 getDetailLevelSize(S32 index);
+   S32 getDetailLevelIndex(S32 size);
+   bool renameDetailLevel(const char* oldName, const char* newName);
+   bool removeDetailLevel(S32 index);
+   S32 setDetailLevelSize(S32 index, S32 newSize);
    S32 getImposterDetailLevel();
    S32 getImposterDetailLevel();
-   const char* getImposterSettings( S32 index );
-   S32 addImposter( S32 size, S32 equatorSteps, S32 polarSteps, S32 dl, S32 dim, bool includePoles, F32 polarAngle );
+   const char* getImposterSettings(S32 index);
+   S32 addImposter(S32 size, S32 equatorSteps, S32 polarSteps, S32 dl, S32 dim, bool includePoles, F32 polarAngle);
    bool removeImposter();
    bool removeImposter();
-   bool addCollisionDetail( S32 size, const char* type, const char* target, S32 depth=4, F32 merge=30.0f, F32 concavity=30.0f, S32 maxVerts=32, F32 boxMaxError=0, F32 sphereMaxError=0, F32 capsuleMaxError=0 );
+   bool addCollisionDetail(S32 size, const char* type, const char* target, S32 depth = 4, F32 merge = 30.0f, F32 concavity = 30.0f, S32 maxVerts = 32, F32 boxMaxError = 0, F32 sphereMaxError = 0, F32 capsuleMaxError = 0);
    ///@}
    ///@}
 
 
    /// @name Sequences
    /// @name Sequences
    ///@{
    ///@{
    S32 getSequenceCount();
    S32 getSequenceCount();
-   S32 getSequenceIndex( const char* name);
-   const char* getSequenceName( S32 index );
-   const char* getSequenceSource( const char* name );
-   S32 getSequenceFrameCount( const char* name );
-   F32 getSequencePriority( const char* name );
-   bool setSequencePriority( const char* name, F32 priority );
-   const char* getSequenceGroundSpeed( const char* name );
-   bool setSequenceGroundSpeed( const char* name, Point3F transSpeed, Point3F rotSpeed=Point3F::Zero );
-   bool getSequenceCyclic( const char* name );
-   bool setSequenceCyclic( const char* name, bool cyclic );
-   const char* getSequenceBlend( const char* name );
-   bool setSequenceBlend( const char* name, bool blend, const char* blendSeq, S32 blendFrame );
-   bool renameSequence( const char* oldName, const char* newName );
-   bool addSequence( const char* source, const char* name, S32 start=0, S32 end=-1, bool padRot=true, bool padTrans=false );
-   bool removeSequence( const char* name );
+   S32 getSequenceIndex(const char* name);
+   const char* getSequenceName(S32 index);
+   const char* getSequenceSource(const char* name);
+   S32 getSequenceFrameCount(const char* name);
+   F32 getSequencePriority(const char* name);
+   bool setSequencePriority(const char* name, F32 priority);
+   const char* getSequenceGroundSpeed(const char* name);
+   bool setSequenceGroundSpeed(const char* name, Point3F transSpeed, Point3F rotSpeed = Point3F::Zero);
+   bool getSequenceCyclic(const char* name);
+   bool setSequenceCyclic(const char* name, bool cyclic);
+   const char* getSequenceBlend(const char* name);
+   bool setSequenceBlend(const char* name, bool blend, const char* blendSeq, S32 blendFrame);
+   bool renameSequence(const char* oldName, const char* newName);
+   bool addSequence(const char* source, const char* name, S32 start = 0, S32 end = -1, bool padRot = true, bool padTrans = false);
+   bool removeSequence(const char* name);
    ///@}
    ///@}
 
 
    /// @name Triggers
    /// @name Triggers
    ///@{
    ///@{
-   S32 getTriggerCount( const char* name );
-   const char* getTrigger( const char* name, S32 index );
-   bool addTrigger( const char* name, S32 keyframe, S32 state );
-   bool removeTrigger( const char* name, S32 keyframe, S32 state );
+   S32 getTriggerCount(const char* name);
+   const char* getTrigger(const char* name, S32 index);
+   bool addTrigger(const char* name, S32 keyframe, S32 state);
+   bool removeTrigger(const char* name, S32 keyframe, S32 state);
    ///@}
    ///@}
 };
 };
 
 
@@ -330,7 +349,7 @@ typedef domUpAxisType TSShapeConstructorUpAxis;
 typedef ColladaUtils::ImportOptions::eLodType TSShapeConstructorLodType;
 typedef ColladaUtils::ImportOptions::eLodType TSShapeConstructorLodType;
 typedef ColladaUtils::ImportOptions::eAnimTimingType TSShapeConstructorAnimType;
 typedef ColladaUtils::ImportOptions::eAnimTimingType TSShapeConstructorAnimType;
 
 
-DefineEnumType( TSShapeConstructorUpAxis );
+DefineEnumType(TSShapeConstructorUpAxis);
 DefineEnumType(TSShapeConstructorLodType);
 DefineEnumType(TSShapeConstructorLodType);
 DefineEnumType(TSShapeConstructorAnimType);
 DefineEnumType(TSShapeConstructorAnimType);
 
 
@@ -339,7 +358,7 @@ class TSShapeConstructorMethodActionCallback
    TSShapeConstructor* mObject;
    TSShapeConstructor* mObject;
 
 
 public:
 public:
-   TSShapeConstructorMethodActionCallback(TSShapeConstructor *object) : mObject(object) { ; }
+   TSShapeConstructorMethodActionCallback(TSShapeConstructor* object) : mObject(object) { ; }
    ~TSShapeConstructorMethodActionCallback() { mObject->onActionPerformed(); }
    ~TSShapeConstructorMethodActionCallback() { mObject->onActionPerformed(); }
 };
 };
 
 
@@ -372,8 +391,8 @@ public:
       TORQUE_UNUSED(newCmd);
       TORQUE_UNUSED(newCmd);
 
 
 
 
-/* This macro just hides the name of the auto-created ChangeSet::Command from
-   above, so we are free to change the implementation later if needed */
+   /* This macro just hides the name of the auto-created ChangeSet::Command from
+      above, so we are free to change the implementation later if needed */
 #define ADD_TO_CHANGE_SET()   mChangeSet.add( newCmd );
 #define ADD_TO_CHANGE_SET()   mChangeSet.add( newCmd );
 
 
 
 

+ 1 - 1
Templates/BaseGame/game/core/gameObjects/shapes/camera.tscript

@@ -1,7 +1,7 @@
 
 
 singleton TSShapeConstructor(cameradts)
 singleton TSShapeConstructor(cameradts)
 {
 {
-   baseShape = "./camera.dts";
+   baseShapeAsset = "Core_GameObjects:Camera";
    singleDetailSize = "0";
    singleDetailSize = "0";
    flipUVCoords = "0";
    flipUVCoords = "0";
    JoinIdenticalVerts = "0";
    JoinIdenticalVerts = "0";

+ 1 - 1
Templates/BaseGame/game/core/gameObjects/shapes/noshape.tscript

@@ -1,7 +1,7 @@
 
 
 singleton TSShapeConstructor(noshapedts)
 singleton TSShapeConstructor(noshapedts)
 {
 {
-   baseShape = "./noshape.dts";
+   baseShapeAsset = "Core_GameObjects:noshape";
    singleDetailSize = "0";
    singleDetailSize = "0";
    flipUVCoords = "0";
    flipUVCoords = "0";
    JoinIdenticalVerts = "0";
    JoinIdenticalVerts = "0";

+ 1 - 1
Templates/BaseGame/game/core/gameObjects/shapes/octahedron.tscript

@@ -1,7 +1,7 @@
 
 
 singleton TSShapeConstructor(octahedrondts)
 singleton TSShapeConstructor(octahedrondts)
 {
 {
-   baseShape = "./octahedron.dts";
+   baseShapeAsset = "Core_GameObjects:octahedron";
    singleDetailSize = "0";
    singleDetailSize = "0";
    flipUVCoords = "0";
    flipUVCoords = "0";
    JoinIdenticalVerts = "0";
    JoinIdenticalVerts = "0";

+ 1 - 1
Templates/BaseGame/game/core/gameObjects/shapes/simplecone.tscript

@@ -1,7 +1,7 @@
 
 
 singleton TSShapeConstructor(simpleconedts)
 singleton TSShapeConstructor(simpleconedts)
 {
 {
-   baseShape = "./simplecone.dts";
+   baseShapeAsset = "Core_GameObjects:simplecone";
    singleDetailSize = "0";
    singleDetailSize = "0";
    flipUVCoords = "0";
    flipUVCoords = "0";
    JoinIdenticalVerts = "0";
    JoinIdenticalVerts = "0";

+ 1 - 1
Templates/BaseGame/game/core/gameObjects/shapes/unit_capsule.tscript

@@ -1,7 +1,7 @@
 
 
 singleton TSShapeConstructor(unit_capsuledts)
 singleton TSShapeConstructor(unit_capsuledts)
 {
 {
-   baseShape = "./unit_capsule.dts";
+   baseShapeAsset = "Core_GameObjects:unit_capsule";
    singleDetailSize = "0";
    singleDetailSize = "0";
    flipUVCoords = "0";
    flipUVCoords = "0";
    JoinIdenticalVerts = "0";
    JoinIdenticalVerts = "0";

+ 1 - 1
Templates/BaseGame/game/core/gameObjects/shapes/unit_cube.tscript

@@ -1,7 +1,7 @@
 
 
 singleton TSShapeConstructor(unit_cubedts)
 singleton TSShapeConstructor(unit_cubedts)
 {
 {
-   baseShape = "./unit_cube.dts";
+   baseShapeAsset = "Core_GameObjects:unit_cube";
    singleDetailSize = "0";
    singleDetailSize = "0";
    flipUVCoords = "0";
    flipUVCoords = "0";
    JoinIdenticalVerts = "0";
    JoinIdenticalVerts = "0";

+ 1 - 1
Templates/BaseGame/game/core/gameObjects/shapes/unit_sphere.tscript

@@ -1,7 +1,7 @@
 
 
 singleton TSShapeConstructor(unit_spheredts)
 singleton TSShapeConstructor(unit_spheredts)
 {
 {
-   baseShape = "./unit_sphere.dts";
+   baseShapeAsset = "Core_GameObjects:unit_sphere";
    singleDetailSize = "0";
    singleDetailSize = "0";
    flipUVCoords = "0";
    flipUVCoords = "0";
    JoinIdenticalVerts = "0";
    JoinIdenticalVerts = "0";

+ 1 - 1
Templates/BaseGame/game/core/gui/scripts/profiles.tscript

@@ -63,7 +63,7 @@ new GuiControlProfile (GuiDefaultProfile)
    fontColorSEL= "255 255 255";
    fontColorSEL= "255 255 255";
 
 
    // bitmap information
    // bitmap information
-   bitmap = "";
+   bitmapAsset = "";
    bitmapBase = "";
    bitmapBase = "";
    textOffset = "0 0";
    textOffset = "0 0";
 
 

+ 7 - 0
Templates/BaseGame/game/core/rendering/scripts/gfxData/UnderwaterBasicMat.asset.taml

@@ -0,0 +1,7 @@
+<MaterialAsset
+    canSave="true"
+    canSaveDynamicFields="true"
+    AssetName="UnderwaterBasicMat"
+    scriptFile="@assetFile=water.tscript"
+    materialDefinitionName="UnderwaterBasicMat"
+    VersionId="1" />

+ 7 - 0
Templates/BaseGame/game/core/rendering/scripts/gfxData/UnderwaterMat.asset.taml

@@ -0,0 +1,7 @@
+<MaterialAsset
+    canSave="true"
+    canSaveDynamicFields="true"
+    AssetName="UnderwaterMat"
+    scriptFile="@assetFile=water.tscript"
+    materialDefinitionName="UnderwaterMat"
+    VersionId="1" />

+ 7 - 0
Templates/BaseGame/game/core/rendering/scripts/gfxData/WaterBasicMat.asset.taml

@@ -0,0 +1,7 @@
+<MaterialAsset
+    canSave="true"
+    canSaveDynamicFields="true"
+    AssetName="WaterBasicMat"
+    scriptFile="@assetFile=water.tscript"
+    materialDefinitionName="WaterBasicMat"
+    VersionId="1" />

+ 7 - 0
Templates/BaseGame/game/core/rendering/scripts/gfxData/WaterMat.asset.taml

@@ -0,0 +1,7 @@
+<MaterialAsset
+    canSave="true"
+    canSaveDynamicFields="true"
+    AssetName="WaterMat"
+    scriptFile="@assetFile=water.tscript"
+    materialDefinitionName="WaterMat"
+    VersionId="1" />

+ 1 - 1
Templates/BaseGame/game/core/rendering/shapes/Fog_Cube.tscript

@@ -1,7 +1,7 @@
 
 
 singleton TSShapeConstructor(Fog_CubeDAE)
 singleton TSShapeConstructor(Fog_CubeDAE)
 {
 {
-   baseShape = "./Fog_Cube.DAE";
+   baseShapeAsset = "Core_Rendering:Fog_Cube";
    singleDetailSize = "0";
    singleDetailSize = "0";
    flipUVCoords = "0";
    flipUVCoords = "0";
    JoinIdenticalVerts = "0";
    JoinIdenticalVerts = "0";

+ 1 - 1
Templates/BaseGame/game/data/Prototyping/shapes/ConePrimitive.tscript

@@ -1,6 +1,6 @@
 //--- OBJECT WRITE BEGIN ---
 //--- OBJECT WRITE BEGIN ---
 new TSShapeConstructor(ConePrimitive_fbx) {
 new TSShapeConstructor(ConePrimitive_fbx) {
-   baseShape = "./ConePrimitive.fbx";
+   baseShapeAsset = "Prototyping:ConePrimitive";
    upAxis = "DEFAULT";
    upAxis = "DEFAULT";
    unit = "-1";
    unit = "-1";
    LODType = "TrailingNumber";
    LODType = "TrailingNumber";

+ 1 - 1
Templates/BaseGame/game/data/Prototyping/shapes/CubePrimitive.tscript

@@ -1,6 +1,6 @@
 //--- OBJECT WRITE BEGIN ---
 //--- OBJECT WRITE BEGIN ---
 new TSShapeConstructor(CubePrimitive_fbx) {
 new TSShapeConstructor(CubePrimitive_fbx) {
-   baseShape = "./CubePrimitive.fbx";
+   baseShapeAsset = "Prototyping:CubePrimitive";
    upAxis = "DEFAULT";
    upAxis = "DEFAULT";
    unit = "-1";
    unit = "-1";
    LODType = "TrailingNumber";
    LODType = "TrailingNumber";

+ 1 - 1
Templates/BaseGame/game/data/Prototyping/shapes/CylinderPrimitive.tscript

@@ -1,6 +1,6 @@
 //--- OBJECT WRITE BEGIN ---
 //--- OBJECT WRITE BEGIN ---
 new TSShapeConstructor(CylinderPrimitive_fbx) {
 new TSShapeConstructor(CylinderPrimitive_fbx) {
-   baseShape = "./CylinderPrimitive.fbx";
+   baseShapeAsset = "Prototyping:CylinderPrimitive";
    upAxis = "DEFAULT";
    upAxis = "DEFAULT";
    unit = "-1";
    unit = "-1";
    LODType = "TrailingNumber";
    LODType = "TrailingNumber";

+ 1 - 1
Templates/BaseGame/game/data/Prototyping/shapes/SpherePrimitive.tscript

@@ -1,6 +1,6 @@
 //--- OBJECT WRITE BEGIN ---
 //--- OBJECT WRITE BEGIN ---
 new TSShapeConstructor(SpherePrimitive_fbx) {
 new TSShapeConstructor(SpherePrimitive_fbx) {
-   baseShape = "./SpherePrimitive.fbx";
+   baseShapeAsset = "Prototyping:SpherePrimitive";
    upAxis = "DEFAULT";
    upAxis = "DEFAULT";
    unit = "-1";
    unit = "-1";
    LODType = "TrailingNumber";
    LODType = "TrailingNumber";

+ 1 - 1
Templates/BaseGame/game/data/Prototyping/shapes/TorusPrimitive.tscript

@@ -1,6 +1,6 @@
 //--- OBJECT WRITE BEGIN ---
 //--- OBJECT WRITE BEGIN ---
 new TSShapeConstructor(TorusPrimitive_fbx) {
 new TSShapeConstructor(TorusPrimitive_fbx) {
-   baseShape = "./TorusPrimitive.fbx";
+   baseShapeAsset = "Prototyping:TorusPrimitive";
    upAxis = "DEFAULT";
    upAxis = "DEFAULT";
    unit = "-1";
    unit = "-1";
    LODType = "TrailingNumber";
    LODType = "TrailingNumber";

+ 1 - 1
Templates/BaseGame/game/data/Prototyping/shapes/TubePrimitive.tscript

@@ -1,6 +1,6 @@
 //--- OBJECT WRITE BEGIN ---
 //--- OBJECT WRITE BEGIN ---
 new TSShapeConstructor(TubePrimitive_fbx) {
 new TSShapeConstructor(TubePrimitive_fbx) {
-   baseShape = "./TubePrimitive.fbx";
+   baseShapeAsset = "Prototyping:TubePrimitive";
    upAxis = "DEFAULT";
    upAxis = "DEFAULT";
    unit = "-1";
    unit = "-1";
    LODType = "TrailingNumber";
    LODType = "TrailingNumber";

+ 1 - 1
Templates/BaseGame/game/data/Prototyping/shapes/kork_chanShape.tscript

@@ -1,6 +1,6 @@
 //--- OBJECT WRITE BEGIN ---
 //--- OBJECT WRITE BEGIN ---
 new TSShapeConstructor(kork_chanShape_fbx) {
 new TSShapeConstructor(kork_chanShape_fbx) {
-   baseShape = "./kork_chanShape.fbx";
+   baseShapeAsset = "Prototyping:kork_chanShape";
    upAxis = "DEFAULT";
    upAxis = "DEFAULT";
    unit = "-1";
    unit = "-1";
    LODType = "TrailingNumber";
    LODType = "TrailingNumber";

+ 2 - 2
Templates/BaseGame/game/data/ui/guis/startupGui.gui

@@ -13,7 +13,7 @@
    Visible = "1";
    Visible = "1";
    tooltipprofile = "GuiToolTipProfile";
    tooltipprofile = "GuiToolTipProfile";
    hovertime = "1000";
    hovertime = "1000";
-   bitmap = "";
+   bitmapAsset = "";
    wrap = "0";
    wrap = "0";
    fadeinTime = "1000";
    fadeinTime = "1000";
    waitTime = "4000";
    waitTime = "4000";
@@ -70,7 +70,7 @@ new GuiFadeinBitmapCtrl(BlankGui) {
    minExtent = "8 8";
    minExtent = "8 8";
    visible = "1";
    visible = "1";
    helpTag = "0";
    helpTag = "0";
-   bitmap = "";
+   bitmapAsset = "";
    wrap = "0";
    wrap = "0";
    fadeinTime = "100";
    fadeinTime = "100";
    waitTime   = "2000";
    waitTime   = "2000";

+ 8 - 0
Templates/BaseGame/game/tools/VPathEditor/GUI/Images/Images_btn_Palette_d_image.asset.taml

@@ -0,0 +1,8 @@
+<ImageAsset
+    canSave="true"
+    canSaveDynamicFields="true"
+    AssetName="Images_btn_Palette_d_image"
+    imageFile="@assetFile=btn_Palette_d.png"
+    UseMips="true"
+    isHDRImage="false"
+    imageType="Albedo" />

+ 8 - 0
Templates/BaseGame/game/tools/VPathEditor/GUI/Images/Images_btn_Palette_h_image.asset.taml

@@ -0,0 +1,8 @@
+<ImageAsset
+    canSave="true"
+    canSaveDynamicFields="true"
+    AssetName="Images_btn_Palette_h_image"
+    imageFile="@assetFile=btn_Palette_h.png"
+    UseMips="true"
+    isHDRImage="false"
+    imageType="Albedo" />

+ 8 - 0
Templates/BaseGame/game/tools/VPathEditor/GUI/Images/Images_btn_Palette_n_image.asset.taml

@@ -0,0 +1,8 @@
+<ImageAsset
+    canSave="true"
+    canSaveDynamicFields="true"
+    AssetName="Images_btn_Palette_n_image"
+    imageFile="@assetFile=btn_Palette_n.png"
+    UseMips="true"
+    isHDRImage="false"
+    imageType="Albedo" />

+ 2 - 2
Templates/BaseGame/game/tools/VPathEditor/GUI/VPathEditor.gui

@@ -141,7 +141,7 @@ new VPathEditor(EVPathEditor) {
          };
          };
       };
       };
       new GuiBitmapButtonCtrl() {
       new GuiBitmapButtonCtrl() {
-         bitmap = "tools/gui/images/delete";
+         bitmapAsset = "ToolsModule:delete_n_image";
          groupNum = "-1";
          groupNum = "-1";
          buttonType = "PushButton";
          buttonType = "PushButton";
          useMouseEvents = "0";
          useMouseEvents = "0";
@@ -431,4 +431,4 @@ function OnOrientationChanged()
     %mode = EPathEditorNodeOrientationMode.getText();
     %mode = EPathEditorNodeOrientationMode.getText();
     %data = EPathEditorNodeOrientationData.getText();
     %data = EPathEditorNodeOrientationData.getText();
     EVPathEditor.setNodeOrientationMode( %mode, %data );
     EVPathEditor.setNodeOrientationMode( %mode, %data );
-}
+}

+ 7 - 7
Templates/BaseGame/game/tools/VPathEditor/GUI/VPathEditorPalette.gui

@@ -33,7 +33,7 @@
       tooltipprofile = "GuiToolTipProfile";
       tooltipprofile = "GuiToolTipProfile";
       ToolTip = "Select Path / Node (1)";
       ToolTip = "Select Path / Node (1)";
       hovertime = "1000";
       hovertime = "1000";
-      bitmap = "tools/gui/images/menubar/arrow";
+      bitmapAsset = "ToolsModule:arrow_n_image";
       buttonType = "RadioButton";
       buttonType = "RadioButton";
       useMouseEvents = "0";
       useMouseEvents = "0";
    };
    };
@@ -53,7 +53,7 @@
       tooltipprofile = "GuiToolTipProfile";
       tooltipprofile = "GuiToolTipProfile";
       ToolTip = "Move Point (2)";
       ToolTip = "Move Point (2)";
       hovertime = "1000";
       hovertime = "1000";
-      bitmap = "tools/worldEditor/images/road-river/move-point";
+      bitmapAsset = "ToolsModule:move_point_n_image";
       buttonType = "RadioButton";
       buttonType = "RadioButton";
       useMouseEvents = "0";
       useMouseEvents = "0";
    };
    };
@@ -73,7 +73,7 @@
       tooltipprofile = "GuiToolTipProfile";
       tooltipprofile = "GuiToolTipProfile";
       ToolTip = "Rotate Point (3)";
       ToolTip = "Rotate Point (3)";
       hovertime = "1000";
       hovertime = "1000";
-      bitmap = "tools/worldEditor/images/road-river/rotate-point";
+      bitmapAsset = "ToolsModule:rotate_point_n_image";
       buttonType = "RadioButton";
       buttonType = "RadioButton";
       useMouseEvents = "0";
       useMouseEvents = "0";
    };
    };
@@ -93,7 +93,7 @@
       tooltipprofile = "GuiToolTipProfile";
       tooltipprofile = "GuiToolTipProfile";
       ToolTip = "Scale Point (4)";
       ToolTip = "Scale Point (4)";
       hovertime = "1000";
       hovertime = "1000";
-      bitmap = "tools/worldEditor/images/road-river/scale-point";
+      bitmapAsset = "ToolsModule:scale_point_n_image";
       buttonType = "RadioButton";
       buttonType = "RadioButton";
       useMouseEvents = "0";
       useMouseEvents = "0";
    };
    };
@@ -113,7 +113,7 @@
       tooltipprofile = "GuiToolTipProfile";
       tooltipprofile = "GuiToolTipProfile";
       ToolTip = "Add Node (5)";
       ToolTip = "Add Node (5)";
       hovertime = "1000";
       hovertime = "1000";
-      bitmap = "tools/worldEditor/images/road-river/add-point";
+      bitmapAsset = "ToolsModule:add_point_n_image";
       buttonType = "RadioButton";
       buttonType = "RadioButton";
       useMouseEvents = "0";
       useMouseEvents = "0";
    };
    };
@@ -133,7 +133,7 @@
       tooltipprofile = "GuiToolTipProfile";
       tooltipprofile = "GuiToolTipProfile";
       ToolTip = "Delete Node (6)";
       ToolTip = "Delete Node (6)";
       hovertime = "1000";
       hovertime = "1000";
-      bitmap = "tools/worldEditor/images/road-river/subtract-point";
+      bitmapAsset = "ToolsModule:subtract_point_n_image";
       buttonType = "RadioButton";
       buttonType = "RadioButton";
       useMouseEvents = "0";
       useMouseEvents = "0";
    };
    };
@@ -173,4 +173,4 @@ function EVPathEditorAddNodeButton::onClick( %this )
 function EVPathEditorDeleteNodeButton::onClick( %this )
 function EVPathEditorDeleteNodeButton::onClick( %this )
 {
 {
     EVPathEditor.EditMode = "DeleteNode";
     EVPathEditor.EditMode = "DeleteNode";
-}
+}

+ 2 - 2
Templates/BaseGame/game/tools/VPathEditor/Scripts/Plugin.tscript

@@ -40,7 +40,7 @@ function VPathEditorPlugin::onWorldEditorStartup( %this )
 
 
     // Add ourselves to the ToolsToolbar
     // Add ourselves to the ToolsToolbar
     %tooltip = "Path Editor (" @ %accel @ ")";
     %tooltip = "Path Editor (" @ %accel @ ")";
-    EditorGui.addToToolsToolbar( "VPathEditorPlugin", "VPathEditorPalette", expandFilename( "tools/VPathEditor/GUI/Images/btn_Palette" ), %tooltip );
+    EditorGui.addToToolsToolbar( "VPathEditorPlugin", "VPathEditorPalette", "ToolsModule:btn_Palette_n_image", %tooltip );
 
 
     // Find and Store the Button.
     // Find and Store the Button.
     %this.ToolbarButton = ToolsToolbarArray.findObjectByInternalName( "VPathEditorPalette", false );
     %this.ToolbarButton = ToolsToolbarArray.findObjectByInternalName( "VPathEditorPalette", false );
@@ -175,4 +175,4 @@ function VPathEditorPlugin::syncGizmo( %this )
         case "Rotate" : EVPathEditorRotateButton.performClick();
         case "Rotate" : EVPathEditorRotateButton.performClick();
         case "Scale"  : EVPathEditorScaleButton.performClick();
         case "Scale"  : EVPathEditorScaleButton.performClick();
     }
     }
-}
+}

+ 1 - 1
Templates/BaseGame/game/tools/VerveEditor/GUI/GuiProfiles.tscript

@@ -170,7 +170,7 @@ singleton GuiControlProfile ( VEditorScrollProfile : VEditorDefaultProfile )
     border = false;
     border = false;
     
     
     hasBitmapArray = true;
     hasBitmapArray = true;
-    bitmap         = "./Images/ScrollBar";
+    bitmapAsset         = "ToolsModule:Images_ScrollBar_image";
 };
 };
 
 
 singleton GuiControlProfile ( VEditorCheckBoxProfile : GuiCheckBoxProfile )
 singleton GuiControlProfile ( VEditorCheckBoxProfile : GuiCheckBoxProfile )

+ 8 - 0
Templates/BaseGame/game/tools/VerveEditor/GUI/Images/Images_ScrollBar_image.asset.taml

@@ -0,0 +1,8 @@
+<ImageAsset
+    canSave="true"
+    canSaveDynamicFields="true"
+    AssetName="Images_ScrollBar_image"
+    imageFile="@assetFile=scrollBar.png"
+    UseMips="true"
+    isHDRImage="false"
+    imageType="Albedo" />

+ 11 - 11
Templates/BaseGame/game/tools/VerveEditor/GUI/VerveEditor.gui

@@ -307,7 +307,7 @@
                 groupNum = "-1";
                 groupNum = "-1";
                 buttonType = "PushButton";
                 buttonType = "PushButton";
                 useMouseEvents = "0";
                 useMouseEvents = "0";
-                bitmap = "./Images/btn_AddGroup";
+                bitmapAsset = "ToolsModule:btn_AddGroup_image";
              };
              };
              new GuiBitmapButtonCtrl(VerveEditorAddTrackButton) {
              new GuiBitmapButtonCtrl(VerveEditorAddTrackButton) {
                 canSaveDynamicFields = "0";
                 canSaveDynamicFields = "0";
@@ -330,7 +330,7 @@
                 groupNum = "-1";
                 groupNum = "-1";
                 buttonType = "PushButton";
                 buttonType = "PushButton";
                 useMouseEvents = "0";
                 useMouseEvents = "0";
-                bitmap = "./Images/btn_AddTrack";
+                bitmapAsset = "ToolsModule:btn_AddTrack_image";
              };
              };
              new GuiBitmapButtonCtrl(VerveEditorAddEventButton) {
              new GuiBitmapButtonCtrl(VerveEditorAddEventButton) {
                 canSaveDynamicFields = "0";
                 canSaveDynamicFields = "0";
@@ -352,7 +352,7 @@
                 groupNum = "-1";
                 groupNum = "-1";
                 buttonType = "PushButton";
                 buttonType = "PushButton";
                 useMouseEvents = "0";
                 useMouseEvents = "0";
-                bitmap = "./Images/btn_AddEvent";
+                bitmapAsset = "ToolsModule:btn_AddEvent_image";
              };
              };
              new GuiBitmapButtonCtrl() {
              new GuiBitmapButtonCtrl() {
                 canSaveDynamicFields = "0";
                 canSaveDynamicFields = "0";
@@ -374,7 +374,7 @@
                 groupNum = "-1";
                 groupNum = "-1";
                 buttonType = "PushButton";
                 buttonType = "PushButton";
                 useMouseEvents = "0";
                 useMouseEvents = "0";
-                bitmap = "./Images/btn_Delete";
+                bitmapAsset = "ToolsModule:btn_Delete_image";
              };
              };
          };
          };
       };
       };
@@ -623,7 +623,7 @@
                groupNum = "-1";
                groupNum = "-1";
                buttonType = "PushButton";
                buttonType = "PushButton";
                useMouseEvents = "0";
                useMouseEvents = "0";
-               bitmap = "./Images/btn_Rewind";
+               bitmapAsset = "ToolsModule:btn_Rewind_image";
             };
             };
             new GuiBitmapButtonCtrl() {
             new GuiBitmapButtonCtrl() {
                canSaveDynamicFields = "0";
                canSaveDynamicFields = "0";
@@ -645,7 +645,7 @@
                groupNum = "-1";
                groupNum = "-1";
                buttonType = "PushButton";
                buttonType = "PushButton";
                useMouseEvents = "0";
                useMouseEvents = "0";
-               bitmap = "./Images/btn_StepB";
+               bitmapAsset = "ToolsModule:btn_StepB_image";
             };
             };
             new GuiBitmapButtonCtrl(VerveEditorPlayButton) {
             new GuiBitmapButtonCtrl(VerveEditorPlayButton) {
                canSaveDynamicFields = "0";
                canSaveDynamicFields = "0";
@@ -667,7 +667,7 @@
                groupNum = "-1";
                groupNum = "-1";
                buttonType = "PushButton";
                buttonType = "PushButton";
                useMouseEvents = "0";
                useMouseEvents = "0";
-               bitmap = "./Images/btn_Play";
+               bitmapAsset = "ToolsModule:btn_Play_image";
             };
             };
             new GuiBitmapButtonCtrl() {
             new GuiBitmapButtonCtrl() {
                canSaveDynamicFields = "0";
                canSaveDynamicFields = "0";
@@ -689,7 +689,7 @@
                groupNum = "-1";
                groupNum = "-1";
                buttonType = "PushButton";
                buttonType = "PushButton";
                useMouseEvents = "0";
                useMouseEvents = "0";
-               bitmap = "./Images/btn_StepF";
+               bitmapAsset = "ToolsModule:btn_StepF_image";
             };
             };
             new GuiBitmapButtonCtrl() {
             new GuiBitmapButtonCtrl() {
                canSaveDynamicFields = "0";
                canSaveDynamicFields = "0";
@@ -711,7 +711,7 @@
                groupNum = "-1";
                groupNum = "-1";
                buttonType = "PushButton";
                buttonType = "PushButton";
                useMouseEvents = "0";
                useMouseEvents = "0";
-               bitmap = "./Images/btn_Forward";
+               bitmapAsset = "ToolsModule:btn_Forward_image";
             };
             };
          };
          };
          new GuiBitmapButtonCtrl() {
          new GuiBitmapButtonCtrl() {
@@ -734,7 +734,7 @@
             groupNum = "-1";
             groupNum = "-1";
             buttonType = "PushButton";
             buttonType = "PushButton";
             useMouseEvents = "0";
             useMouseEvents = "0";
-            bitmap = "./Images/btn_AddL";
+            bitmapAsset = "ToolsModule:btn_AddL_image";
          };
          };
          new GuiBitmapButtonCtrl() {
          new GuiBitmapButtonCtrl() {
             canSaveDynamicFields = "0";
             canSaveDynamicFields = "0";
@@ -756,7 +756,7 @@
             groupNum = "-1";
             groupNum = "-1";
             buttonType = "PushButton";
             buttonType = "PushButton";
             useMouseEvents = "0";
             useMouseEvents = "0";
-            bitmap = "./Images/btn_AddR";
+            bitmapAsset = "ToolsModule:btn_AddR_image";
          };
          };
       };
       };
    };
    };

+ 1 - 1
Templates/BaseGame/game/tools/VerveEditor/Scripts/Inspector/Fields/main.tscript

@@ -22,4 +22,4 @@ function VerveEditor::InitInspectorFieldScripts()
     exec( "./TypeVShapeAnimationEnum." @ $TorqueScriptFileExtension );
     exec( "./TypeVShapeAnimationEnum." @ $TorqueScriptFileExtension );
     exec( "./TypeToggleEnum." @ $TorqueScriptFileExtension );
     exec( "./TypeToggleEnum." @ $TorqueScriptFileExtension );
 }
 }
-VerveEditor::InitInspectorFieldScripts();
+VerveEditor::InitInspectorFieldScripts();

+ 1 - 1
Templates/BaseGame/game/tools/VerveEditor/Scripts/Inspector/main.tscript

@@ -17,4 +17,4 @@ function VerveEditor::InitInspectorScripts()
     
     
     exec( "./Fields/main." @ $TorqueScriptFileExtension );
     exec( "./Fields/main." @ $TorqueScriptFileExtension );
 }
 }
-VerveEditor::InitInspectorScripts();
+VerveEditor::InitInspectorScripts();

+ 1 - 1
Templates/BaseGame/game/tools/VerveEditor/Scripts/Plugin.tscript

@@ -26,7 +26,7 @@ function VerveEditorPlugin::onWorldEditorStartup( %this )
     %tooltip = "Verve Editor (" @ %accel @ ")";
     %tooltip = "Verve Editor (" @ %accel @ ")";
    
    
     // Add ourselves to the ToolsToolbar
     // Add ourselves to the ToolsToolbar
-    EditorGui.addToToolsToolbar( "VerveEditorPlugin", "VerveEditorPluginPalette", expandFilename( "tools/VerveEditor/GUI/Images/btn_Palette" ), %tooltip );
+    EditorGui.addToToolsToolbar( "VerveEditorPlugin", "VerveEditorPluginPalette", "ToolsModule:btn_Palette_n_image", %tooltip );
 
 
     // Find and Store the Button.
     // Find and Store the Button.
     %this.ToolbarButton = ToolsToolbarArray.findObjectByInternalName( "VerveEditorPluginPalette", false );
     %this.ToolbarButton = ToolsToolbarArray.findObjectByInternalName( "VerveEditorPluginPalette", false );

+ 1 - 1
Templates/BaseGame/game/tools/VerveEditor/main.tscript

@@ -231,4 +231,4 @@ function VerveEditor::Reset()
         // Stop.
         // Stop.
         $VerveEditor::Controller.Stop();
         $VerveEditor::Controller.Stop();
     }
     }
-}
+}

+ 1 - 1
Templates/BaseGame/game/tools/assetBrowser/assetImportConfigs.xml

@@ -187,7 +187,7 @@
             <Setting
             <Setting
                 name="AutomaticallyPromptMissingFiles">0</Setting>
                 name="AutomaticallyPromptMissingFiles">0</Setting>
             <Setting
             <Setting
-                name="DuplicatAutoResolution">AutoPrune</Setting>
+                name="DuplicateAutoResolution">FolderPrefix</Setting>
             <Setting
             <Setting
                 name="PreventImportWithErrors">1</Setting>
                 name="PreventImportWithErrors">1</Setting>
             <Setting
             <Setting

+ 7 - 7
Templates/BaseGame/game/tools/assetBrowser/guis/assetBrowser.gui

@@ -469,7 +469,7 @@
                   command="AssetBrowserFolderSearchFilter.onEdited();";
                   command="AssetBrowserFolderSearchFilter.onEdited();";
                };
                };
                new GuiBitmapButtonCtrl() {
                new GuiBitmapButtonCtrl() {
-                  bitmap = "tools/gui/images/stencilIcons/zoom.png";
+                  bitmapAsset = "ToolsModule:zoom_image";
                   bitmapMode = "Stretched";
                   bitmapMode = "Stretched";
                   autoFitExtents = "0";
                   autoFitExtents = "0";
                   useModifiers = "0";
                   useModifiers = "0";
@@ -631,7 +631,7 @@
                canSaveDynamicFields = "0";
                canSaveDynamicFields = "0";
 
 
                new GuiBitmapButtonCtrl(AssetBrowser_NavigateBackBtn) {
                new GuiBitmapButtonCtrl(AssetBrowser_NavigateBackBtn) {
-                  bitmap = "tools/gui/images/folderUp.png";
+                  bitmapAsset = "ToolsModule:folderUp_image";
                   bitmapMode = "Centered";
                   bitmapMode = "Centered";
                   autoFitExtents = "0";
                   autoFitExtents = "0";
                   useModifiers = "0";
                   useModifiers = "0";
@@ -657,7 +657,7 @@
                   canSaveDynamicFields = "0";
                   canSaveDynamicFields = "0";
                };
                };
                new GuiBitmapButtonCtrl(AssetBrowser_NavigateForwardBtn) {
                new GuiBitmapButtonCtrl(AssetBrowser_NavigateForwardBtn) {
-                  bitmap = "tools/gui/images/folderDown.png";
+                  bitmapAsset = "ToolsModule:folderDown_image";
                   bitmapMode = "Centered";
                   bitmapMode = "Centered";
                   autoFitExtents = "0";
                   autoFitExtents = "0";
                   useModifiers = "0";
                   useModifiers = "0";
@@ -758,7 +758,7 @@
                canSaveDynamicFields = "0";
                canSaveDynamicFields = "0";
 
 
                new GuiBitmapButtonCtrl(AssetBrowser_VisibilityOptions) {
                new GuiBitmapButtonCtrl(AssetBrowser_VisibilityOptions) {
-                  bitmap = "tools/gui/images/visible";
+                  bitmapAsset = "ToolsModule:visible_n_image";
                   bitmapMode = "Centered";
                   bitmapMode = "Centered";
                   autoFitExtents = "0";
                   autoFitExtents = "0";
                   useModifiers = "0";
                   useModifiers = "0";
@@ -814,7 +814,7 @@
                   command="AssetBrowserSearchFilter.onEdited();";
                   command="AssetBrowserSearchFilter.onEdited();";
                };
                };
                new GuiBitmapButtonCtrl() {
                new GuiBitmapButtonCtrl() {
-                  bitmap = "tools/gui/images/stencilIcons/zoom.png";
+                  bitmapAsset = "ToolsModule:zoom_image";
                   bitmapMode = "Stretched";
                   bitmapMode = "Stretched";
                   autoFitExtents = "0";
                   autoFitExtents = "0";
                   useModifiers = "0";
                   useModifiers = "0";
@@ -840,7 +840,7 @@
                   canSaveDynamicFields = "0";
                   canSaveDynamicFields = "0";
                };
                };
                new GuiBitmapButtonCtrl() {
                new GuiBitmapButtonCtrl() {
-                  bitmap = "tools/gui/images/save-icon";
+                  bitmapAsset = "ToolsModule:save_icon_n_image";
                   bitmapMode = "Stretched";
                   bitmapMode = "Stretched";
                   autoFitExtents = "0";
                   autoFitExtents = "0";
                   useModifiers = "0";
                   useModifiers = "0";
@@ -1034,7 +1034,7 @@
                   canSaveDynamicFields = "0";
                   canSaveDynamicFields = "0";
                };
                };
                new GuiBitmapButtonCtrl(AssetBrowser_ToggleFolderPanel) {
                new GuiBitmapButtonCtrl(AssetBrowser_ToggleFolderPanel) {
-                  bitmap = "tools/gui/images/stencilIcons/previous.png";
+                  bitmapAsset = "ToolsModule:previous_image";
                   bitmapMode = "Stretched";
                   bitmapMode = "Stretched";
                   autoFitExtents = "0";
                   autoFitExtents = "0";
                   useModifiers = "0";
                   useModifiers = "0";

+ 3 - 3
Templates/BaseGame/game/tools/assetBrowser/guis/assetImport.gui

@@ -95,7 +95,7 @@
          canSaveDynamicFields = "0";
          canSaveDynamicFields = "0";
       };
       };
       new GuiBitmapButtonCtrl() {
       new GuiBitmapButtonCtrl() {
-         bitmap = "tools/gui/images/iconOpen.png";
+         bitmapAsset = "ToolsModule:iconOpen_image";
          bitmapMode = "Centered";
          bitmapMode = "Centered";
          autoFitExtents = "0";
          autoFitExtents = "0";
          useModifiers = "0";
          useModifiers = "0";
@@ -221,7 +221,7 @@
          canSaveDynamicFields = "0";
          canSaveDynamicFields = "0";
       };
       };
       new GuiBitmapButtonCtrl() {
       new GuiBitmapButtonCtrl() {
-         bitmap = "tools/gui/images/save-as";
+         bitmapAsset = "ToolsModule:save_as_n_image";
          bitmapMode = "Centered";
          bitmapMode = "Centered";
          autoFitExtents = "0";
          autoFitExtents = "0";
          useModifiers = "0";
          useModifiers = "0";
@@ -504,7 +504,7 @@
          canSaveDynamicFields = "0";
          canSaveDynamicFields = "0";
       };
       };
       new GuiBitmapButtonCtrl(ImportLogButton) {
       new GuiBitmapButtonCtrl(ImportLogButton) {
-         bitmap = "tools/gui/images/iconInformation.png";
+         bitmapAsset = "ToolsModule:iconInformation_image";
          bitmapMode = "Centered";
          bitmapMode = "Centered";
          autoFitExtents = "0";
          autoFitExtents = "0";
          useModifiers = "0";
          useModifiers = "0";

+ 2 - 2
Templates/BaseGame/game/tools/assetBrowser/guis/assetImportConfigEditor.gui

@@ -198,7 +198,7 @@
             canSaveDynamicFields = "0";
             canSaveDynamicFields = "0";
 
 
             new GuiBitmapButtonCtrl() {
             new GuiBitmapButtonCtrl() {
-               bitmap = "tools/gui/images/iconAdd.png";
+               bitmapAsset = "ToolsModule:iconAdd_image";
                bitmapMode = "Centered";
                bitmapMode = "Centered";
                autoFitExtents = "0";
                autoFitExtents = "0";
                useModifiers = "0";
                useModifiers = "0";
@@ -225,7 +225,7 @@
                canSaveDynamicFields = "0";
                canSaveDynamicFields = "0";
             };
             };
             new GuiBitmapButtonCtrl() {
             new GuiBitmapButtonCtrl() {
-               bitmap = "tools/gui/images/iconDelete.png";
+               bitmapAsset = "ToolsModule:iconDelete_image";
                bitmapMode = "Centered";
                bitmapMode = "Centered";
                autoFitExtents = "0";
                autoFitExtents = "0";
                useModifiers = "0";
                useModifiers = "0";

+ 1 - 1
Templates/BaseGame/game/tools/assetBrowser/guis/gameObjectCreator.gui

@@ -132,7 +132,7 @@
          canSaveDynamicFields = "0";
          canSaveDynamicFields = "0";
       };
       };
       new GuiBitmapButtonCtrl(GameObjectCreatorPkgBtn) {
       new GuiBitmapButtonCtrl(GameObjectCreatorPkgBtn) {
-         bitmap = "tools/gui/images/iconAdd.png";
+         bitmapAsset = "ToolsModule:iconAdd_image";
          bitmapMode = "Centered";
          bitmapMode = "Centered";
          autoFitExtents = "0";
          autoFitExtents = "0";
          useModifiers = "0";
          useModifiers = "0";

+ 1 - 1
Templates/BaseGame/game/tools/assetBrowser/guis/newAsset.gui

@@ -119,7 +119,7 @@
          canSaveDynamicFields = "0";
          canSaveDynamicFields = "0";
       };
       };
       new GuiBitmapButtonCtrl() {
       new GuiBitmapButtonCtrl() {
-         bitmap = "tools/gui/images/iconOpen.png";
+         bitmapAsset = "ToolsModule:iconOpen_image";
          bitmapMode = "Centered";
          bitmapMode = "Centered";
          autoFitExtents = "0";
          autoFitExtents = "0";
          useModifiers = "0";
          useModifiers = "0";

+ 1 - 1
Templates/BaseGame/game/tools/assetBrowser/guis/newComponentAsset.gui

@@ -98,7 +98,7 @@
          canSaveDynamicFields = "0";
          canSaveDynamicFields = "0";
       };
       };
       new GuiBitmapButtonCtrl() {
       new GuiBitmapButtonCtrl() {
-         bitmap = "tools/gui/images/iconAdd.png";
+         bitmapAsset = "ToolsModule:iconAdd_image";
          bitmapMode = "Centered";
          bitmapMode = "Centered";
          autoFitExtents = "0";
          autoFitExtents = "0";
          useModifiers = "0";
          useModifiers = "0";

+ 1 - 1
Templates/BaseGame/game/tools/assetBrowser/guis/selectModule.gui

@@ -75,7 +75,7 @@
          canSaveDynamicFields = "0";
          canSaveDynamicFields = "0";
       };
       };
       new GuiBitmapButtonCtrl() {
       new GuiBitmapButtonCtrl() {
-         bitmap = "tools/gui/images/iconAdd.png";
+         bitmapAsset = "ToolsModule:iconAdd_image";
          bitmapMode = "Centered";
          bitmapMode = "Centered";
          autoFitExtents = "0";
          autoFitExtents = "0";
          useModifiers = "0";
          useModifiers = "0";

+ 1 - 1
Templates/BaseGame/game/tools/assetBrowser/guis/selectPackage.gui

@@ -75,7 +75,7 @@
          canSaveDynamicFields = "0";
          canSaveDynamicFields = "0";
       };
       };
       new GuiBitmapButtonCtrl() {
       new GuiBitmapButtonCtrl() {
-         bitmap = "tools/gui/images/iconAdd.png";
+         bitmapAsset = "ToolsModule:iconAdd_image";
          bitmapMode = "Centered";
          bitmapMode = "Centered";
          autoFitExtents = "0";
          autoFitExtents = "0";
          useModifiers = "0";
          useModifiers = "0";

+ 1 - 1
Templates/BaseGame/game/tools/assetBrowser/guis/selectPath.gui

@@ -96,7 +96,7 @@
             canSaveDynamicFields = "0";
             canSaveDynamicFields = "0";
          };
          };
          new GuiBitmapButtonCtrl() {
          new GuiBitmapButtonCtrl() {
-            bitmap = "tools/gui/images/clear-icon";
+            bitmapAsset = "ToolsModule:clear_icon_n_image";
             bitmapMode = "Centered";
             bitmapMode = "Centered";
             autoFitExtents = "0";
             autoFitExtents = "0";
             useModifiers = "0";
             useModifiers = "0";

+ 1 - 1
Templates/BaseGame/game/tools/assetBrowser/main.tscript

@@ -200,4 +200,4 @@ function TSStatic::onConstructField(%this, %fieldName, %fieldLabel, %fieldTypeNa
    %makeCommand = %this @ ".build" @ %fieldTypeName @ "Field(\""@ %fieldName @ "\",\"" @ %fieldLabel @ "\",\"" @ %fieldDesc @ "\",\"" @ 
    %makeCommand = %this @ ".build" @ %fieldTypeName @ "Field(\""@ %fieldName @ "\",\"" @ %fieldLabel @ "\",\"" @ %fieldDesc @ "\",\"" @ 
             %fieldDefaultVal @ "\",\"" @ %fieldDataVals @ "\",\"" @ %inspector @ "." @ %callbackName @ "\",\"" @ %ownerObj @"\");";
             %fieldDefaultVal @ "\",\"" @ %fieldDataVals @ "\",\"" @ %inspector @ "." @ %callbackName @ "\",\"" @ %ownerObj @"\");";
    eval(%makeCommand);
    eval(%makeCommand);
-}
+}

+ 3 - 4
Templates/BaseGame/game/tools/assetBrowser/scripts/assetBrowser.tscript

@@ -3,7 +3,6 @@ new SimGroup(AssetBrowserPreviewCache);
 //AssetBrowser.addToolbarButton
 //AssetBrowser.addToolbarButton
 function AssetBrowser::addToolbarButton(%this)
 function AssetBrowser::addToolbarButton(%this)
 {
 {
-	%filename = expandFilename("tools/gui/images/stencilIcons/menuGrid");
 	%button = new GuiBitmapButtonCtrl() {
 	%button = new GuiBitmapButtonCtrl() {
 		canSaveDynamicFields = "0";
 		canSaveDynamicFields = "0";
 		internalName = AssetBrowserBtn;
 		internalName = AssetBrowserBtn;
@@ -21,7 +20,7 @@ function AssetBrowser::addToolbarButton(%this)
 		tooltipprofile = "ToolsGuiToolTipProfile";
 		tooltipprofile = "ToolsGuiToolTipProfile";
 		ToolTip = "Asset Browser";
 		ToolTip = "Asset Browser";
 		hovertime = "750";
 		hovertime = "750";
-		bitmap = %filename;
+		bitmapAsset = "ToolsModule:menuGrid_n_image";
 		bitmapMode = "Stretched";
 		bitmapMode = "Stretched";
 		buttonType = "PushButton";
 		buttonType = "PushButton";
 		groupNum = "0";
 		groupNum = "0";
@@ -2142,7 +2141,7 @@ function AssetBrowser::updateNavigationBreadcrumb(%this, %address)
          %folderSpacerButton = new GuiBitmapButtonCtrl()
          %folderSpacerButton = new GuiBitmapButtonCtrl()
          {
          {
             profile = ToolsGuiButtonProfile;
             profile = ToolsGuiButtonProfile;
-            bitmap = "tools/gui/images/rightArrowWhite";
+            bitmapAsset = "ToolsModule:rightArrowWhite_image";
             bitmapMode = "Centered";
             bitmapMode = "Centered";
             extent = "25" SPC AssetBrowser_BreadcrumbBar.extent.y;
             extent = "25" SPC AssetBrowser_BreadcrumbBar.extent.y;
             //command = "AssetBrowser.navigateTo(\"" @ %rebuiltPath @ "\");";
             //command = "AssetBrowser.navigateTo(\"" @ %rebuiltPath @ "\");";
@@ -2575,4 +2574,4 @@ function AssetBrowser::importLooseFiles(%this)
 {
 {
    echo("Adding loose files at directory " @ %this.dirHandler.currentAddress);
    echo("Adding loose files at directory " @ %this.dirHandler.currentAddress);
    LooseFileAuditWindow.showDialog(%this.dirHandler.currentAddress);  
    LooseFileAuditWindow.showDialog(%this.dirHandler.currentAddress);  
-}
+}

+ 1 - 1
Templates/BaseGame/game/tools/assetBrowser/scripts/assetImportConfig.tscript

@@ -31,7 +31,7 @@ function setupImportConfigSettingsList()
    {
    {
       new ArrayObject(ImportAssetConfigSettingsList);
       new ArrayObject(ImportAssetConfigSettingsList);
       
       
-      ImportAssetConfigSettingsList.addNewConfigSetting("General/DuplicatAutoResolution", "Duplicate Asset Auto-Resolution Action", "list", "", "AutoPrune", "None,AutoPrune,AutoRename");
+      ImportAssetConfigSettingsList.addNewConfigSetting("General/DuplicateAutoResolution", "Duplicate Asset Auto-Resolution Action", "list", "", "AutoRename", "None,AutoPrune,AutoRename,FolderPrefix");
       ImportAssetConfigSettingsList.addNewConfigSetting("General/WarningsAsErrors", "Warnings As Errors", "bool", "", "0", "", "");
       ImportAssetConfigSettingsList.addNewConfigSetting("General/WarningsAsErrors", "Warnings As Errors", "bool", "", "0", "", "");
       ImportAssetConfigSettingsList.addNewConfigSetting("General/PreventImportWithErrors", "Prevent Import With Errors", "bool", "", "1", "", "");
       ImportAssetConfigSettingsList.addNewConfigSetting("General/PreventImportWithErrors", "Prevent Import With Errors", "bool", "", "1", "", "");
       ImportAssetConfigSettingsList.addNewConfigSetting("General/AutomaticallyPromptMissingFiles", "Automatically Prompt Missing Files", "bool", "", "0", "", "");
       ImportAssetConfigSettingsList.addNewConfigSetting("General/AutomaticallyPromptMissingFiles", "Automatically Prompt Missing Files", "bool", "", "0", "", "");

+ 1 - 1
Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/component.tscript

@@ -145,4 +145,4 @@ function AssetBrowser::buildComponentAssetPreview(%this, %assetDef, %previewData
    %previewData.assetFriendlyName = %assetDef.friendlyName;
    %previewData.assetFriendlyName = %assetDef.friendlyName;
    %previewData.assetDesc = %assetDef.description;
    %previewData.assetDesc = %assetDef.description;
    %previewData.tooltip = %assetDef.friendlyName @ "\n" @ %assetDef;
    %previewData.tooltip = %assetDef.friendlyName @ "\n" @ %assetDef;
-}
+}

+ 1 - 1
Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/gameObject.tscript

@@ -293,4 +293,4 @@ function GuiInspectorTypeGameObjectAssetPtr::onClick( %this, %fieldName )
       //We've gotta be trying to create a GameObject, so kick that off  
       //We've gotta be trying to create a GameObject, so kick that off  
       AssetBrowser.createGameObjectAsset();
       AssetBrowser.createGameObjectAsset();
    }
    }
-}
+}

+ 1 - 1
Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/gui.tscript

@@ -176,4 +176,4 @@ function AssetBrowser::buildGUIAssetPreview(%this, %assetDef, %previewData)
    %previewData.assetFriendlyName = %assetDef.assetName;
    %previewData.assetFriendlyName = %assetDef.assetName;
    %previewData.assetDesc = %assetDef.description;
    %previewData.assetDesc = %assetDef.description;
    %previewData.tooltip = %assetDef.assetName;
    %previewData.tooltip = %assetDef.assetName;
-}
+}

+ 2 - 2
Templates/BaseGame/game/tools/assetBrowser/scripts/directoryHandling.tscript

@@ -114,7 +114,7 @@ function directoryHandler::navigateTo(%this, %address, %historyNav, %selectionNa
          %folderSpacerButton = new GuiBitmapButtonCtrl()
          %folderSpacerButton = new GuiBitmapButtonCtrl()
          {
          {
             profile = ToolsGuiButtonProfile;
             profile = ToolsGuiButtonProfile;
-            bitmap = "tools/gui/images/rightArrowWhite";
+            bitmapAsset = "ToolsModule:rightArrowWhite_image";
             bitmapMode = "Centered";
             bitmapMode = "Centered";
             extent = "25" SPC AssetBrowser_BreadcrumbBar.extent.y;
             extent = "25" SPC AssetBrowser_BreadcrumbBar.extent.y;
             //command = "AssetBrowser.navigateTo(\"" @ %rebuiltPath @ "\");";
             //command = "AssetBrowser.navigateTo(\"" @ %rebuiltPath @ "\");";
@@ -338,4 +338,4 @@ function directoryHandler::copyFolder(%this, %fromFolder, %toFolder)
    }
    }
       
       
    return true;
    return true;
-}
+}

+ 7 - 0
Templates/BaseGame/game/tools/base/images/Grid_512_Black.asset.taml

@@ -0,0 +1,7 @@
+<MaterialAsset
+    canSave="true"
+    canSaveDynamicFields="true"
+    AssetName="Grid_512_Black"
+    scriptFile="@assetFile=materials.tscript"
+    materialDefinitionName="Grid_512_Black"
+    VersionId="1" />

+ 7 - 0
Templates/BaseGame/game/tools/base/images/Grid_512_ForestGreen.asset.taml

@@ -0,0 +1,7 @@
+<MaterialAsset
+    canSave="true"
+    canSaveDynamicFields="true"
+    AssetName="Grid_512_ForestGreen"
+    scriptFile="@assetFile=materials.tscript"
+    materialDefinitionName="Grid_512_ForestGreen"
+    VersionId="1" />

+ 7 - 0
Templates/BaseGame/game/tools/base/images/Grid_512_ForestGreen_Lines.asset.taml

@@ -0,0 +1,7 @@
+<MaterialAsset
+    canSave="true"
+    canSaveDynamicFields="true"
+    AssetName="Grid_512_ForestGreen_Lines"
+    scriptFile="@assetFile=materials.tscript"
+    materialDefinitionName="Grid_512_ForestGreen_Lines"
+    VersionId="1" />

+ 7 - 0
Templates/BaseGame/game/tools/base/images/Grid_512_Green.asset.taml

@@ -0,0 +1,7 @@
+<MaterialAsset
+    canSave="true"
+    canSaveDynamicFields="true"
+    AssetName="Grid_512_Green"
+    scriptFile="@assetFile=materials.tscript"
+    materialDefinitionName="Grid_512_Green"
+    VersionId="1" />

+ 7 - 0
Templates/BaseGame/game/tools/base/images/Grid_512_Grey.asset.taml

@@ -0,0 +1,7 @@
+<MaterialAsset
+    canSave="true"
+    canSaveDynamicFields="true"
+    AssetName="Grid_512_Grey"
+    scriptFile="@assetFile=materials.tscript"
+    materialDefinitionName="Grid_512_Grey"
+    VersionId="1" />

+ 7 - 0
Templates/BaseGame/game/tools/base/images/Grid_512_Grey_Base.asset.taml

@@ -0,0 +1,7 @@
+<MaterialAsset
+    canSave="true"
+    canSaveDynamicFields="true"
+    AssetName="Grid_512_Grey_Base"
+    scriptFile="@assetFile=materials.tscript"
+    materialDefinitionName="Grid_512_Grey_Base"
+    VersionId="1" />

+ 7 - 0
Templates/BaseGame/game/tools/base/images/Grid_512_Orange.asset.taml

@@ -0,0 +1,7 @@
+<MaterialAsset
+    canSave="true"
+    canSaveDynamicFields="true"
+    AssetName="Grid_512_Orange"
+    scriptFile="@assetFile=materials.tscript"
+    materialDefinitionName="Grid_512_Orange"
+    VersionId="1" />

+ 7 - 0
Templates/BaseGame/game/tools/base/images/Grid_512_Orange_Lines.asset.taml

@@ -0,0 +1,7 @@
+<MaterialAsset
+    canSave="true"
+    canSaveDynamicFields="true"
+    AssetName="Grid_512_Orange_Lines"
+    scriptFile="@assetFile=materials.tscript"
+    materialDefinitionName="Grid_512_Orange_Lines"
+    VersionId="1" />

+ 7 - 0
Templates/BaseGame/game/tools/base/images/Grid_512_Red.asset.taml

@@ -0,0 +1,7 @@
+<MaterialAsset
+    canSave="true"
+    canSaveDynamicFields="true"
+    AssetName="Grid_512_Red"
+    scriptFile="@assetFile=materials.tscript"
+    materialDefinitionName="Grid_512_Red"
+    VersionId="1" />

+ 3 - 3
Templates/BaseGame/game/tools/componentEditor/interface/materialFieldType.tscript

@@ -66,7 +66,7 @@ function GuiInspectorGroup::buildMaterialField(%this, %fieldName, %fieldLabel, %
       position = "7 4";
       position = "7 4";
       extent = "64 64";
       extent = "64 64";
       buttonType = "PushButton";
       buttonType = "PushButton";
-      bitmap = "";
+      bitmapAsset = "";
       Command = "";
       Command = "";
       text = "Loading...";
       text = "Loading...";
       useStates = false;
       useStates = false;
@@ -80,7 +80,7 @@ function GuiInspectorGroup::buildMaterialField(%this, %fieldName, %fieldLabel, %
             extent = "64 64";
             extent = "64 64";
             Variable = "";
             Variable = "";
             buttonType = "toggleButton";
             buttonType = "toggleButton";
-            bitmap = "tools/materialEditor/gui/cubemapBtnBorder";
+            bitmapAsset = "ToolsModule:cubemapBtnBorder_n_image";
             groupNum = "0";
             groupNum = "0";
             text = "";
             text = "";
 			tooltip = "Change material";
 			tooltip = "Change material";
@@ -274,4 +274,4 @@ function materialFieldBtn::onClick(%this)
 function materialFieldBtn::setMaterial(%this, %matAssetName)
 function materialFieldBtn::setMaterial(%this, %matAssetName)
 {
 {
    
    
-}
+}

+ 1 - 1
Templates/BaseGame/game/tools/componentEditor/main.tscript

@@ -32,4 +32,4 @@ exec("./gui/superToolTipDlg.ed.gui");
 //field types
 //field types
 exec("./interface/materialFieldType." @ $TorqueScriptFileExtension);
 exec("./interface/materialFieldType." @ $TorqueScriptFileExtension);
 exec("./interface/typeMaskFieldType." @ $TorqueScriptFileExtension);
 exec("./interface/typeMaskFieldType." @ $TorqueScriptFileExtension);
-exec("./interface/stateMachineField." @ $TorqueScriptFileExtension);
+exec("./interface/stateMachineField." @ $TorqueScriptFileExtension);

+ 4 - 4
Templates/BaseGame/game/tools/convexEditor/convexEditorToolbar.ed.gui

@@ -55,7 +55,7 @@
       tooltipprofile = "ToolsGuiToolTipProfile";
       tooltipprofile = "ToolsGuiToolTipProfile";
       ToolTip = "Create ConvexShape Box" NL "Use Alt + Click-Drag instead of this for more control of starting placement.";
       ToolTip = "Create ConvexShape Box" NL "Use Alt + Click-Drag instead of this for more control of starting placement.";
       hovertime = "1000";
       hovertime = "1000";
-      bitmap = "tools/convexEditor/images/convex-editor-btn";
+      bitmapAsset = "ToolsModule:convex_editor_btn_n_image";
       text = "";
       text = "";
       groupNum = "-1";
       groupNum = "-1";
       buttonType = "pushButton";
       buttonType = "pushButton";
@@ -76,7 +76,7 @@
       tooltipprofile = "ToolsGuiToolTipProfile";
       tooltipprofile = "ToolsGuiToolTipProfile";
       ToolTip = "Split selected face" NL "Use Ctrl + Rotate instead for more control.";
       ToolTip = "Split selected face" NL "Use Ctrl + Rotate instead for more control.";
       hovertime = "1000";
       hovertime = "1000";
-      bitmap = "tools/convexEditor/images/split-face-btn";
+      bitmapAsset = "ToolsModule:split_face_btn_n_image";
       text = "";
       text = "";
       groupNum = "-1";
       groupNum = "-1";
       buttonType = "PushButton";
       buttonType = "PushButton";
@@ -97,7 +97,7 @@
       tooltipprofile = "ToolsGuiToolTipProfile";
       tooltipprofile = "ToolsGuiToolTipProfile";
       ToolTip = "Delete selected face" NL "(Delete)";
       ToolTip = "Delete selected face" NL "(Delete)";
       hovertime = "1000";
       hovertime = "1000";
-      bitmap = "tools/gui/images/menubar/delete-btn";
+      bitmapAsset = "ToolsModule:delete_btn_n_image";
       text = "";
       text = "";
       groupNum = "-1";
       groupNum = "-1";
       buttonType = "PushButton";
       buttonType = "PushButton";
@@ -145,7 +145,7 @@
          buttonType = "toggleButton";
          buttonType = "toggleButton";
          useMouseEvents = "0";
          useMouseEvents = "0";
          groupNum = "-1";
          groupNum = "-1";
-         bitmap = "tools/gui/images/menubar/snap-grid";
+         bitmapAsset = "ToolsModule:menubar_snap_grid_n_image";
          textMargin = "4";
          textMargin = "4";
       };
       };
       new GuiTextCtrl() {
       new GuiTextCtrl() {

+ 2 - 2
Templates/BaseGame/game/tools/convexEditor/main.tscript

@@ -68,7 +68,7 @@ function ConvexEditorPlugin::onWorldEditorStartup( %this )
    
    
    // Add ourselves to the ToolsToolbar
    // Add ourselves to the ToolsToolbar
    %tooltip = "Sketch Tool (" @ %accel @ ")";
    %tooltip = "Sketch Tool (" @ %accel @ ")";
-   EditorGui.addToToolsToolbar( "ConvexEditorPlugin", "ConvexEditorPalette", expandFilename("tools/convexEditor/images/convex-editor-btn"), %tooltip );
+   EditorGui.addToToolsToolbar( "ConvexEditorPlugin", "ConvexEditorPalette", "ToolsModule:convex_editor_btn_n_image", %tooltip );
    
    
    //connect editor windows
    //connect editor windows
    GuiWindowCtrl::attach( ConvexEditorOptionsWindow, ConvexEditorTreeWindow);
    GuiWindowCtrl::attach( ConvexEditorOptionsWindow, ConvexEditorTreeWindow);
@@ -232,4 +232,4 @@ function ConvexEditorPlugin::writeSettings( %this )
    EditorSettings.beginGroup( "ConvexEditor", true );
    EditorSettings.beginGroup( "ConvexEditor", true );
    EditorSettings.setValue( "MaterialName",           ConvexEditorGui.materialName );
    EditorSettings.setValue( "MaterialName",           ConvexEditorGui.materialName );
    EditorSettings.endGroup();
    EditorSettings.endGroup();
-}
+}

+ 2 - 2
Templates/BaseGame/game/tools/datablockEditor/DatablockEditorInspectorWindow.ed.gui

@@ -166,7 +166,7 @@
          active = "0";
          active = "0";
       };
       };
       new GuiBitmapButtonCtrl() {
       new GuiBitmapButtonCtrl() {
-         bitmap = "tools/gui/images/save-icon";
+         bitmapAsset = "ToolsModule:save_icon_n_image";
          groupNum = "-1";
          groupNum = "-1";
          buttonType = "PushButton";
          buttonType = "PushButton";
          useMouseEvents = "0";
          useMouseEvents = "0";
@@ -186,7 +186,7 @@
          canSaveDynamicFields = "0";
          canSaveDynamicFields = "0";
       };
       };
       new GuiBitmapButtonCtrl() {
       new GuiBitmapButtonCtrl() {
-         bitmap = "tools/gui/images/save-as";
+         bitmapAsset = "ToolsModule:save_as_n_image";
          groupNum = "-1";
          groupNum = "-1";
          buttonType = "PushButton";
          buttonType = "PushButton";
          useMouseEvents = "0";
          useMouseEvents = "0";

+ 3 - 3
Templates/BaseGame/game/tools/datablockEditor/DatablockEditorTreeWindow.ed.gui

@@ -103,7 +103,7 @@
             };
             };
             
             
             new GuiBitmapButtonCtrl() {
             new GuiBitmapButtonCtrl() {
-               bitmap = "tools/gui/images/clear-icon";
+               bitmapAsset = "ToolsModule:clear_icon_n_image";
                groupNum = "-1";
                groupNum = "-1";
                buttonType = "PushButton";
                buttonType = "PushButton";
                useMouseEvents = "0";
                useMouseEvents = "0";
@@ -265,7 +265,7 @@
          };
          };
       };
       };
       new GuiBitmapButtonCtrl() {
       new GuiBitmapButtonCtrl() {
-         bitmap = "tools/gui/images/delete";
+         bitmapAsset = "ToolsModule:delete_n_image";
          groupNum = "-1";
          groupNum = "-1";
          buttonType = "PushButton";
          buttonType = "PushButton";
          useMouseEvents = "0";
          useMouseEvents = "0";
@@ -286,7 +286,7 @@
          canSaveDynamicFields = "0";
          canSaveDynamicFields = "0";
       };
       };
       new GuiBitmapButtonCtrl() {
       new GuiBitmapButtonCtrl() {
-         bitmap = "tools/gui/images/new";
+         bitmapAsset = "ToolsModule:new_n_image";
          groupNum = "-1";
          groupNum = "-1";
          buttonType = "PushButton";
          buttonType = "PushButton";
          useMouseEvents = "0";
          useMouseEvents = "0";

+ 1 - 1
Templates/BaseGame/game/tools/datablockEditor/datablockEditor.tscript

@@ -46,7 +46,7 @@ function DatablockEditorPlugin::onWorldEditorStartup( %this )
    
    
    // Add ourselves to the ToolsToolbar
    // Add ourselves to the ToolsToolbar
    %tooltip = "Datablock Editor (" @ %accel @ ")"; 
    %tooltip = "Datablock Editor (" @ %accel @ ")"; 
-   EditorGui.addToToolsToolbar( "DatablockEditorPlugin", "DatablockEditorPalette", expandFilename("tools/worldEditor/images/toolbar/datablock-editor"), %tooltip );
+   EditorGui.addToToolsToolbar( "DatablockEditorPlugin", "DatablockEditorPalette", "ToolsModule:datablock_editor_n_image", %tooltip );
 
 
    //connect editor windows
    //connect editor windows
    GuiWindowCtrl::Attach( DatablockEditorInspectorWindow, DatablockEditorTreeWindow);
    GuiWindowCtrl::Attach( DatablockEditorInspectorWindow, DatablockEditorTreeWindow);

+ 4 - 4
Templates/BaseGame/game/tools/decalEditor/decalEditorGui.gui

@@ -310,7 +310,7 @@
          tooltip = "Save All";
          tooltip = "Save All";
          buttonType = "PushButton";
          buttonType = "PushButton";
          useMouseEvents = "0";
          useMouseEvents = "0";
-         bitmap = "tools/gui/images/save-icon";
+         bitmapAsset = "ToolsModule:save_icon_n_image";
       };
       };
          
          
       new GuiBitmapButtonCtrl(RetargetDecalButton) {
       new GuiBitmapButtonCtrl(RetargetDecalButton) {
@@ -329,7 +329,7 @@
          tooltipprofile = "ToolsGuiToolTipProfile";
          tooltipprofile = "ToolsGuiToolTipProfile";
          hovertime = "1000";
          hovertime = "1000";
          tooltip = "Retarget missing decals to an existing decal datablock";
          tooltip = "Retarget missing decals to an existing decal datablock";
-         bitmap = "tools/gui/images/retarget-btn";
+         bitmapAsset = "ToolsModule:retarget_btn_n_image";
          buttonType = "PushButton";
          buttonType = "PushButton";
          useMouseEvents = "0";
          useMouseEvents = "0";
       };
       };
@@ -350,7 +350,7 @@
          tooltipprofile = "ToolsGuiToolTipProfile";
          tooltipprofile = "ToolsGuiToolTipProfile";
          hovertime = "1000";
          hovertime = "1000";
          tooltip = "Create New Decal Template";
          tooltip = "Create New Decal Template";
-         bitmap = "tools/gui/images/new";
+         bitmapAsset = "ToolsModule:new_n_image";
          buttonType = "PushButton";
          buttonType = "PushButton";
          useMouseEvents = "0";
          useMouseEvents = "0";
       };
       };
@@ -372,7 +372,7 @@
          hovertime = "1000";
          hovertime = "1000";
          text = "";
          text = "";
          tooltip = "Delete Selected Decal Template";
          tooltip = "Delete Selected Decal Template";
-         bitmap = "tools/gui/images/delete";
+         bitmapAsset = "ToolsModule:delete_n_image";
          groupNum = "-1";
          groupNum = "-1";
          buttonType = "PushButton";
          buttonType = "PushButton";
          useMouseEvents = "0";
          useMouseEvents = "0";

+ 1 - 1
Templates/BaseGame/game/tools/decalEditor/main.tscript

@@ -78,7 +78,7 @@ function DecalEditorPlugin::onWorldEditorStartup( %this )
    
    
    // Add ourselves to the ToolsToolbar
    // Add ourselves to the ToolsToolbar
    %tooltip = "Decal Editor (" @ %accel @ ")";   
    %tooltip = "Decal Editor (" @ %accel @ ")";   
-   EditorGui.addToToolsToolbar( "DecalEditorPlugin", "DecalEditorPalette", expandFilename("tools/decalEditor/decal-editor"), %tooltip );
+   EditorGui.addToToolsToolbar( "DecalEditorPlugin", "DecalEditorPalette", "ToolsModule:decal_editor_n_image", %tooltip );
 
 
    //connect editor windows   
    //connect editor windows   
    GuiWindowCtrl::attach( DecalPreviewWindow, DecalEditorWindow );
    GuiWindowCtrl::attach( DecalPreviewWindow, DecalEditorWindow );

+ 8 - 0
Templates/BaseGame/game/tools/editorClasses/gui/images/images_window_image.asset.taml

@@ -0,0 +1,8 @@
+<ImageAsset
+    canSave="true"
+    canSaveDynamicFields="true"
+    AssetName="images_window_image"
+    imageFile="@assetFile=window.png"
+    UseMips="true"
+    isHDRImage="false"
+    imageType="Albedo" />

+ 6 - 6
Templates/BaseGame/game/tools/editorClasses/gui/panels/navPanelProfiles.ed.tscript

@@ -30,36 +30,36 @@ singleton GuiControlProfile (NavPanelProfile)
 
 
 singleton GuiControlProfile (NavPanel : NavPanelProfile) 
 singleton GuiControlProfile (NavPanel : NavPanelProfile) 
 {
 {
-   bitmap = "./navPanel";
+   bitmapAsset = "ToolsModule:navPanel_image";
    category = "Editor";
    category = "Editor";
 };
 };
 
 
 singleton GuiControlProfile (NavPanelBlue : NavPanelProfile) 
 singleton GuiControlProfile (NavPanelBlue : NavPanelProfile) 
 {
 {
-   bitmap = "./navPanel_blue";
+   bitmapAsset = "ToolsModule:navPanel_blue_image";
    category = "Editor";
    category = "Editor";
 };
 };
 
 
 singleton GuiControlProfile (NavPanelGreen : NavPanelProfile) 
 singleton GuiControlProfile (NavPanelGreen : NavPanelProfile) 
 {
 {
-   bitmap = "./navPanel_green";
+   bitmapAsset = "ToolsModule:navPanel_green_image";
    category = "Editor";
    category = "Editor";
 };
 };
 
 
 singleton GuiControlProfile (NavPanelRed : NavPanelProfile) 
 singleton GuiControlProfile (NavPanelRed : NavPanelProfile) 
 {
 {
-   bitmap = "./navPanel_red";
+   bitmapAsset = "ToolsModule:navPanel_red_image";
    category = "Editor";
    category = "Editor";
 };
 };
 
 
 singleton GuiControlProfile (NavPanelWhite : NavPanelProfile) 
 singleton GuiControlProfile (NavPanelWhite : NavPanelProfile) 
 {
 {
-   bitmap = "./navPanel_white";
+   bitmapAsset = "ToolsModule:navPanel_white_image";
    category = "Editor";
    category = "Editor";
 };
 };
 
 
 singleton GuiControlProfile (NavPanelYellow : NavPanelProfile) 
 singleton GuiControlProfile (NavPanelYellow : NavPanelProfile) 
 {
 {
-   bitmap = "./navPanel_yellow";
+   bitmapAsset = "ToolsModule:navPanel_yellow_image";
    category = "Editor";
    category = "Editor";
 };
 };

+ 1 - 1
Templates/BaseGame/game/tools/editorClasses/scripts/guiFormLayoutManager.ed.tscript

@@ -391,4 +391,4 @@ function GuiFormManager::ClearLayoutContent( %layoutObj )
       else
       else
          GuiFormManager::ClearLayoutContent( %object );
          GuiFormManager::ClearLayoutContent( %object );
    }
    }
-}
+}

+ 3 - 3
Templates/BaseGame/game/tools/forestEditor/forestEditToolbar.ed.gui

@@ -118,7 +118,7 @@
             canSaveDynamicFields = "0";
             canSaveDynamicFields = "0";
          };
          };
          new GuiBitmapButtonCtrl() {
          new GuiBitmapButtonCtrl() {
-            bitmap = "tools/gui/images/dropslider";
+            bitmapAsset = "ToolsModule:dropslider_n_image";
             groupNum = "-1";
             groupNum = "-1";
             buttonType = "PushButton";
             buttonType = "PushButton";
             useMouseEvents = "0";
             useMouseEvents = "0";
@@ -220,7 +220,7 @@
             canSaveDynamicFields = "0";
             canSaveDynamicFields = "0";
          };
          };
          new GuiBitmapButtonCtrl() {
          new GuiBitmapButtonCtrl() {
-            bitmap = "tools/gui/images/dropslider";
+            bitmapAsset = "ToolsModule:dropslider_n_image";
             groupNum = "-1";
             groupNum = "-1";
             buttonType = "PushButton";
             buttonType = "PushButton";
             useMouseEvents = "0";
             useMouseEvents = "0";
@@ -322,7 +322,7 @@
             canSaveDynamicFields = "0";
             canSaveDynamicFields = "0";
          };
          };
          new GuiBitmapButtonCtrl() {
          new GuiBitmapButtonCtrl() {
-            bitmap = "tools/gui/images/dropslider";
+            bitmapAsset = "ToolsModule:dropslider_n_image";
             groupNum = "-1";
             groupNum = "-1";
             buttonType = "PushButton";
             buttonType = "PushButton";
             useMouseEvents = "0";
             useMouseEvents = "0";

+ 5 - 5
Templates/BaseGame/game/tools/forestEditor/forestEditorGui.gui

@@ -295,7 +295,7 @@
          canSaveDynamicFields = "0";
          canSaveDynamicFields = "0";
 
 
          new GuiBitmapButtonCtrl() {
          new GuiBitmapButtonCtrl() {
-            bitmap = "tools/forestEditor/images/new-mesh";
+            bitmapAsset = "ToolsModule:new_mesh_n_image";
             groupNum = "-1";
             groupNum = "-1";
             buttonType = "PushButton";
             buttonType = "PushButton";
             useMouseEvents = "0";
             useMouseEvents = "0";
@@ -315,7 +315,7 @@
             canSaveDynamicFields = "0";
             canSaveDynamicFields = "0";
          };
          };
          new GuiBitmapButtonCtrl() {
          new GuiBitmapButtonCtrl() {
-            bitmap = "tools/gui/images/delete";
+            bitmapAsset = "ToolsModule:delete_n_image";
             groupNum = "-1";
             groupNum = "-1";
             buttonType = "PushButton";
             buttonType = "PushButton";
             useMouseEvents = "0";
             useMouseEvents = "0";
@@ -358,7 +358,7 @@
          canSaveDynamicFields = "0";
          canSaveDynamicFields = "0";
 
 
          new GuiBitmapButtonCtrl() {
          new GuiBitmapButtonCtrl() {
-            bitmap = "tools/forestEditor/images/new-brush";
+            bitmapAsset = "ToolsModule:new_brush_n_image";
             groupNum = "-1";
             groupNum = "-1";
             buttonType = "PushButton";
             buttonType = "PushButton";
             useMouseEvents = "0";
             useMouseEvents = "0";
@@ -378,7 +378,7 @@
             canSaveDynamicFields = "0";
             canSaveDynamicFields = "0";
          };
          };
          new GuiBitmapButtonCtrl() {
          new GuiBitmapButtonCtrl() {
-            bitmap = "tools/forestEditor/images/new-element";
+            bitmapAsset = "ToolsModule:new_element_n_image";
             groupNum = "-1";
             groupNum = "-1";
             buttonType = "PushButton";
             buttonType = "PushButton";
             useMouseEvents = "0";
             useMouseEvents = "0";
@@ -398,7 +398,7 @@
             canSaveDynamicFields = "0";
             canSaveDynamicFields = "0";
          };
          };
          new GuiBitmapButtonCtrl() {
          new GuiBitmapButtonCtrl() {
-            bitmap = "tools/gui/images/delete";
+            bitmapAsset = "ToolsModule:delete_n_image";
             groupNum = "-1";
             groupNum = "-1";
             buttonType = "PushButton";
             buttonType = "PushButton";
             useMouseEvents = "0";
             useMouseEvents = "0";

+ 2 - 2
Templates/BaseGame/game/tools/forestEditor/main.tscript

@@ -119,7 +119,7 @@ function ForestEditorPlugin::onWorldEditorStartup( %this )
    
    
    // Add ourselves to the tools menu.
    // Add ourselves to the tools menu.
    %tooltip = "Forest Editor (" @ %accel @ ")";  
    %tooltip = "Forest Editor (" @ %accel @ ")";  
-   EditorGui.addToToolsToolbar( "ForestEditorPlugin", "ForestEditorPalette", expandFilename("tools/forestEditor/images/forest-editor-btn"), %tooltip );   
+   EditorGui.addToToolsToolbar( "ForestEditorPlugin", "ForestEditorPalette", "ToolsModule:forest_editor_btn_n_image", %tooltip );   
    
    
    //connect editor windows
    //connect editor windows
    GuiWindowCtrl::attach( ForestEditorPropertiesWindow, ForestEditorPalleteWindow );
    GuiWindowCtrl::attach( ForestEditorPropertiesWindow, ForestEditorPalleteWindow );
@@ -308,4 +308,4 @@ function ForestEditorPlugin::handleCopy( %this )
 function ForestEditorPlugin::handlePaste( %this )
 function ForestEditorPlugin::handlePaste( %this )
 {
 {
    ForestTools->SelectionTool.pasteSelection();
    ForestTools->SelectionTool.pasteSelection();
-}
+}

+ 2 - 2
Templates/BaseGame/game/tools/gui/assimpImport.ed.tscript

@@ -284,7 +284,7 @@ function AssimpImportDlg::showDialog(%this, %shapePath, %cmd)
    if (isFile(%csPath))
    if (isFile(%csPath))
       exec(%csPath);
       exec(%csPath);
 
 
-   %this.constructor = ShapeEditor.findConstructor(%this.path);
+   %this.constructor = findShapeConstructorByFilename(%this.path);
 
 
    // Only show the import dialog if required. Note that 'GetShapeInfo' will
    // Only show the import dialog if required. Note that 'GetShapeInfo' will
    // fail if the source file is missing, or a cached.dts is available.
    // fail if the source file is missing, or a cached.dts is available.
@@ -537,4 +537,4 @@ function AssimpImportDlg::saveSettingsTo(%this, %filename)
 
 
    %fileObj.close();
    %fileObj.close();
    %fileObj.delete();
    %fileObj.delete();
-}
+}

+ 2 - 2
Templates/BaseGame/game/tools/gui/colladaImport.ed.gui

@@ -1259,7 +1259,7 @@ function ColladaImportDlg::showDialog(%this, %shapePath, %cmd)
    if (isFile(%csPath))
    if (isFile(%csPath))
       exec(%csPath);
       exec(%csPath);
 
 
-   %this.constructor = ShapeEditor.findConstructor(%this.path);
+   %this.constructor = findShapeConstructorByFilename(%this.path);
 
 
    // Only show the import dialog if required. Note that 'enumColladaScene' will
    // Only show the import dialog if required. Note that 'enumColladaScene' will
    // fail if the COLLADA file is missing, or a cached.dts is available.
    // fail if the COLLADA file is missing, or a cached.dts is available.
@@ -1768,4 +1768,4 @@ function showImportDialog(%shapePath, %cmd)
       if ( isObject(AssimpImportDlg) )
       if ( isObject(AssimpImportDlg) )
          AssimpImportDlg.showDialog(%shapePath, %cmd);
          AssimpImportDlg.showDialog(%shapePath, %cmd);
    }
    }
-}
+}

+ 9 - 9
Templates/BaseGame/game/tools/gui/cubemapEditor.gui

@@ -170,7 +170,7 @@
          groupNum = "-1";
          groupNum = "-1";
          buttonType = "PushButton";
          buttonType = "PushButton";
          useMouseEvents = "0";
          useMouseEvents = "0";
-         bitmap = "tools/materialEditor/gui/cubemapBtnBorder";
+         bitmapAsset = "ToolsModule:cubemapBtnBorder_n_image";
       };
       };
       // ------------------------------ X Negitive ------------------------------------
       // ------------------------------ X Negitive ------------------------------------
       new GuiBitmapCtrl(matEd_cubemapEd_XNeg) {
       new GuiBitmapCtrl(matEd_cubemapEd_XNeg) {
@@ -213,7 +213,7 @@
          groupNum = "-1";
          groupNum = "-1";
          buttonType = "PushButton";
          buttonType = "PushButton";
          useMouseEvents = "0";
          useMouseEvents = "0";
-         bitmap = "tools/materialEditor/gui/cubemapBtnBorder";
+         bitmapAsset = "ToolsModule:cubemapBtnBorder_n_image";
       };
       };
       // ------------------------------ Y Positive ------------------------------------
       // ------------------------------ Y Positive ------------------------------------
       new GuiBitmapCtrl(matEd_cubemapEd_YPos) {
       new GuiBitmapCtrl(matEd_cubemapEd_YPos) {
@@ -256,7 +256,7 @@
          groupNum = "-1";
          groupNum = "-1";
          buttonType = "PushButton";
          buttonType = "PushButton";
          useMouseEvents = "0";
          useMouseEvents = "0";
-         bitmap = "tools/materialEditor/gui/cubemapBtnBorder";
+         bitmapAsset = "ToolsModule:cubemapBtnBorder_n_image";
       };
       };
       // ------------------------------ Y Negitive ------------------------------------
       // ------------------------------ Y Negitive ------------------------------------
       new GuiBitmapCtrl(matEd_cubemapEd_YNeG) {
       new GuiBitmapCtrl(matEd_cubemapEd_YNeG) {
@@ -299,7 +299,7 @@
          groupNum = "-1";
          groupNum = "-1";
          buttonType = "PushButton";
          buttonType = "PushButton";
          useMouseEvents = "0";
          useMouseEvents = "0";
-         bitmap = "tools/materialEditor/gui/cubemapBtnBorder";
+         bitmapAsset = "ToolsModule:cubemapBtnBorder_n_image";
       };
       };
       // ------------------------------ Z Positive ------------------------------------
       // ------------------------------ Z Positive ------------------------------------
       new GuiBitmapCtrl(matEd_cubemapEd_ZPos) {
       new GuiBitmapCtrl(matEd_cubemapEd_ZPos) {
@@ -342,7 +342,7 @@
          groupNum = "-1";
          groupNum = "-1";
          buttonType = "PushButton";
          buttonType = "PushButton";
          useMouseEvents = "0";
          useMouseEvents = "0";
-         bitmap = "tools/materialEditor/gui/cubemapBtnBorder";
+         bitmapAsset = "ToolsModule:cubemapBtnBorder_n_image";
       };
       };
       // ------------------------------ Z Negitive ------------------------------------
       // ------------------------------ Z Negitive ------------------------------------
       new GuiBitmapCtrl(matEd_cubemapEd_ZNeg) {
       new GuiBitmapCtrl(matEd_cubemapEd_ZNeg) {
@@ -385,7 +385,7 @@
          groupNum = "-1";
          groupNum = "-1";
          buttonType = "PushButton";
          buttonType = "PushButton";
          useMouseEvents = "0";
          useMouseEvents = "0";
-         bitmap = "tools/materialEditor/gui/cubemapBtnBorder";
+         bitmapAsset = "ToolsModule:cubemapBtnBorder_n_image";
       };
       };
 
 
        // Create New Cubemap
        // Create New Cubemap
@@ -404,7 +404,7 @@
          Command = "matEd_addCubemapWindow.setVisible(1);"; // -------------- Needs Hookup Create New Cubemap
          Command = "matEd_addCubemapWindow.setVisible(1);"; // -------------- Needs Hookup Create New Cubemap
          hovertime = "1000";
          hovertime = "1000";
          tooltip = "Create New Cubemap";
          tooltip = "Create New Cubemap";
-         bitmap = "tools/gui/images/new";
+         bitmapAsset = "ToolsModule:new_n_image";
          groupNum = "-1";
          groupNum = "-1";
          buttonType = "PushButton";
          buttonType = "PushButton";
          useMouseEvents = "0";
          useMouseEvents = "0";
@@ -424,7 +424,7 @@
          Command = "MaterialEditorGui.showDeleteCubemapDialog();"; // -------------- Needs Hookup Delete Cubemap
          Command = "MaterialEditorGui.showDeleteCubemapDialog();"; // -------------- Needs Hookup Delete Cubemap
          hovertime = "1000";
          hovertime = "1000";
          tooltip = "Delete Cubemap";
          tooltip = "Delete Cubemap";
-         bitmap = "tools/gui/images/delete";
+         bitmapAsset = "ToolsModule:delete_n_image";
          groupNum = "-1";
          groupNum = "-1";
          buttonType = "PushButton";
          buttonType = "PushButton";
          useMouseEvents = "0";
          useMouseEvents = "0";
@@ -445,7 +445,7 @@
          Command = "MaterialEditorGui.showSaveCubemapDialog();"; // -------------- Needs Hookup Save Cubemap
          Command = "MaterialEditorGui.showSaveCubemapDialog();"; // -------------- Needs Hookup Save Cubemap
          hovertime = "1000";
          hovertime = "1000";
          tooltip = "Save Cubemap";
          tooltip = "Save Cubemap";
-         bitmap = "tools/gui/images/save-icon";
+         bitmapAsset = "ToolsModule:save_icon_n_image";
          groupNum = "-1";
          groupNum = "-1";
          buttonType = "PushButton";
          buttonType = "PushButton";
          useMouseEvents = "0";
          useMouseEvents = "0";

+ 1 - 1
Templates/BaseGame/game/tools/gui/editorSettingsWindow.ed.tscript

@@ -531,4 +531,4 @@ function ESettingsWindow::getGameOptionsSettings(%this)
    SettingsInspector.startGroup("Options Settings");
    SettingsInspector.startGroup("Options Settings");
    SettingsInspector.addSettingsField("Options/optionsList", "OptionsList", "OptionsSetting", "");
    SettingsInspector.addSettingsField("Options/optionsList", "OptionsList", "OptionsSetting", "");
    SettingsInspector.endGroup();
    SettingsInspector.endGroup();
-} 
+} 

+ 1 - 1
Templates/BaseGame/game/tools/gui/guiObjectInspector.ed.gui

@@ -94,7 +94,7 @@
          };
          };
          
          
          new GuiBitmapButtonCtrl() {
          new GuiBitmapButtonCtrl() {
-            bitmap = "tools/gui/images/clear-icon";
+            bitmapAsset = "ToolsModule:clear_icon_n_image";
             groupNum = "-1";
             groupNum = "-1";
             buttonType = "PushButton";
             buttonType = "PushButton";
             useMouseEvents = "0";
             useMouseEvents = "0";

+ 8 - 0
Templates/BaseGame/game/tools/gui/images/menubar/menubar_snap_grid_d_image.asset.taml

@@ -0,0 +1,8 @@
+<ImageAsset
+    canSave="true"
+    canSaveDynamicFields="true"
+    AssetName="menubar_snap_grid_d_image"
+    imageFile="@assetFile=snap-grid_d.png"
+    UseMips="true"
+    isHDRImage="false"
+    imageType="Albedo" />

+ 8 - 0
Templates/BaseGame/game/tools/gui/images/menubar/menubar_snap_grid_h_image.asset.taml

@@ -0,0 +1,8 @@
+<ImageAsset
+    canSave="true"
+    canSaveDynamicFields="true"
+    AssetName="menubar_snap_grid_h_image"
+    imageFile="@assetFile=snap-grid_h.png"
+    UseMips="true"
+    isHDRImage="false"
+    imageType="Albedo" />

+ 8 - 0
Templates/BaseGame/game/tools/gui/images/menubar/menubar_snap_grid_n_image.asset.taml

@@ -0,0 +1,8 @@
+<ImageAsset
+    canSave="true"
+    canSaveDynamicFields="true"
+    AssetName="menubar_snap_grid_n_image"
+    imageFile="@assetFile=snap-grid_n.png"
+    UseMips="true"
+    isHDRImage="false"
+    imageType="Albedo" />

+ 8 - 0
Templates/BaseGame/game/tools/gui/images/treeview/treeview_default_image.asset.taml

@@ -0,0 +1,8 @@
+<ImageAsset
+    canSave="true"
+    canSaveDynamicFields="true"
+    AssetName="treeview_default_image"
+    imageFile="@assetFile=default.png"
+    UseMips="true"
+    isHDRImage="false"
+    imageType="Albedo" />

+ 6 - 6
Templates/BaseGame/game/tools/gui/materialSelector.ed.gui

@@ -157,7 +157,7 @@ new GuiControl(MaterialSelectorOverlay, EditorGuiGroup) {
          Command = "MaterialSelector.showDeleteDialog();";
          Command = "MaterialSelector.showDeleteDialog();";
          hovertime = "1000";
          hovertime = "1000";
          tooltip = "Delete Material";
          tooltip = "Delete Material";
-         bitmap = "tools/gui/images/delete";
+         bitmapAsset = "ToolsModule:delete_n_image";
          groupNum = "-1";
          groupNum = "-1";
          buttonType = "PushButton";
          buttonType = "PushButton";
          useMouseEvents = "0";
          useMouseEvents = "0";
@@ -894,7 +894,7 @@ function MaterialSelector::buildStaticFilters( %this )
             Command = "MaterialSelector_addFilterWindow.setVisible(1); MaterialSelectorOverlay.pushToBack(MaterialSelector_addFilterWindow);";
             Command = "MaterialSelector_addFilterWindow.setVisible(1); MaterialSelectorOverlay.pushToBack(MaterialSelector_addFilterWindow);";
             hovertime = "1000";
             hovertime = "1000";
             tooltip = "Create New Tag";
             tooltip = "Create New Tag";
-            bitmap = "tools/gui/images/new";
+            bitmapAsset = "ToolsModule:new_n_image";
             groupNum = "-1";
             groupNum = "-1";
             buttonType = "PushButton";
             buttonType = "PushButton";
             useMouseEvents = "0";
             useMouseEvents = "0";
@@ -914,7 +914,7 @@ function MaterialSelector::buildStaticFilters( %this )
             Command = "MaterialSelector.clearMaterialFilters();";
             Command = "MaterialSelector.clearMaterialFilters();";
             hovertime = "1000";
             hovertime = "1000";
             tooltip = "Clear Selected Tag";
             tooltip = "Clear Selected Tag";
-            bitmap = "tools/gui/images/clear-btn";
+            bitmapAsset = "ToolsModule:clear_btn_n_image";
             groupNum = "-1";
             groupNum = "-1";
             buttonType = "PushButton";
             buttonType = "PushButton";
             useMouseEvents = "0";
             useMouseEvents = "0";
@@ -1226,7 +1226,7 @@ function MaterialSelector::buildPreviewArray( %this, %material )
       position = "7 4";
       position = "7 4";
       extent = "64 64";
       extent = "64 64";
       buttonType = "PushButton";
       buttonType = "PushButton";
-      bitmap = "";
+      bitmapAsset = "";
       Command = "";
       Command = "";
       text = "Loading...";
       text = "Loading...";
       useStates = false;
       useStates = false;
@@ -1239,7 +1239,7 @@ function MaterialSelector::buildPreviewArray( %this, %material )
             extent = "64 64";
             extent = "64 64";
             Variable = "";
             Variable = "";
             buttonType = "toggleButton";
             buttonType = "toggleButton";
-            bitmap = "tools/materialEditor/gui/cubemapBtnBorder";
+            bitmapAsset = "ToolsModule:cubemapBtnBorder_n_image";
             groupNum = "0";
             groupNum = "0";
             text = "";
             text = "";
          }; 
          }; 
@@ -1662,7 +1662,7 @@ function MaterialSelector::createNewMaterial( %this )
             extent = "64 64";
             extent = "64 64";
             Variable = "";
             Variable = "";
             buttonType = "toggleButton";
             buttonType = "toggleButton";
-            bitmap = "tools/materialEditor/gui/cubemapBtnBorder";
+            bitmapAsset = "ToolsModule:cubemapBtnBorder_n_image";
             groupNum = "0";
             groupNum = "0";
             text = "";
             text = "";
          }; 
          }; 

+ 2 - 2
Templates/BaseGame/game/tools/gui/postFxEditor.gui

@@ -96,7 +96,7 @@
             canSaveDynamicFields = "0";
             canSaveDynamicFields = "0";
 
 
             new GuiBitmapButtonCtrl() {
             new GuiBitmapButtonCtrl() {
-               bitmap = "tools/gui/images/iconAdd.png";
+               bitmapAsset = "ToolsModule:iconAdd_image";
                bitmapMode = "Centered";
                bitmapMode = "Centered";
                autoFitExtents = "0";
                autoFitExtents = "0";
                useModifiers = "0";
                useModifiers = "0";
@@ -122,7 +122,7 @@
                canSaveDynamicFields = "0";
                canSaveDynamicFields = "0";
             };
             };
             new GuiBitmapButtonCtrl() {
             new GuiBitmapButtonCtrl() {
-               bitmap = "tools/gui/images/iconDelete.png";
+               bitmapAsset = "ToolsModule:iconDelete_image";
                bitmapMode = "Centered";
                bitmapMode = "Centered";
                autoFitExtents = "0";
                autoFitExtents = "0";
                useModifiers = "0";
                useModifiers = "0";

+ 1 - 1
Templates/BaseGame/game/tools/gui/profiles.ed.tscript

@@ -60,7 +60,7 @@ new GuiControlProfile (ToolsGuiDefaultProfile)
    fontColorSEL= EditorSettings.value("Theme/fieldTextSELColor");
    fontColorSEL= EditorSettings.value("Theme/fieldTextSELColor");
 
 
    // bitmap information
    // bitmap information
-   bitmap = "";
+   bitmapAsset = "";
    bitmapBase = "";
    bitmapBase = "";
    textOffset = "0 0";
    textOffset = "0 0";
 
 

+ 25 - 25
Templates/BaseGame/game/tools/guiEditor/gui/guiEditor.ed.gui

@@ -71,7 +71,7 @@
             canSaveDynamicFields = "0";
             canSaveDynamicFields = "0";
 
 
             new GuiBitmapButtonCtrl(GHWorldEditor) {
             new GuiBitmapButtonCtrl(GHWorldEditor) {
-               bitmap = "tools/worldEditor/images/toolbar/world";
+               bitmapAsset = "ToolsModule:world_image";
                bitmapMode = "Stretched";
                bitmapMode = "Stretched";
                autoFitExtents = "0";
                autoFitExtents = "0";
                groupNum = "0";
                groupNum = "0";
@@ -93,7 +93,7 @@
                canSaveDynamicFields = "0";
                canSaveDynamicFields = "0";
             };
             };
             new GuiBitmapButtonCtrl(GHGuiEditor) {
             new GuiBitmapButtonCtrl(GHGuiEditor) {
-               bitmap = "tools/worldEditor/images/toolbar/gui";
+               bitmapAsset = "ToolsModule:gui_image";
                bitmapMode = "Stretched";
                bitmapMode = "Stretched";
                autoFitExtents = "0";
                autoFitExtents = "0";
                groupNum = "0";
                groupNum = "0";
@@ -114,7 +114,7 @@
                canSaveDynamicFields = "0";
                canSaveDynamicFields = "0";
             };
             };
             new GuiBitmapButtonCtrl() {
             new GuiBitmapButtonCtrl() {
-               bitmap = "tools/worldEditor/images/toolbar/playbutton";
+               bitmapAsset = "ToolsModule:playbutton_n_image";
                bitmapMode = "Stretched";
                bitmapMode = "Stretched";
                autoFitExtents = "0";
                autoFitExtents = "0";
                groupNum = "0";
                groupNum = "0";
@@ -152,7 +152,7 @@
                tooltipprofile = "ToolsGuiToolTipProfile";
                tooltipprofile = "ToolsGuiToolTipProfile";
                ToolTip = "Asset Browser";
                ToolTip = "Asset Browser";
                hovertime = "750";
                hovertime = "750";
-               bitmap = "tools/gui/images/stencilIcons/menuGrid";
+               bitmapAsset = "ToolsModule:menuGrid_image";
                bitmapMode = "Stretched";
                bitmapMode = "Stretched";
                buttonType = "PushButton";
                buttonType = "PushButton";
                groupNum = "0";
                groupNum = "0";
@@ -272,7 +272,7 @@
                canSaveDynamicFields = "0";
                canSaveDynamicFields = "0";
 
 
                new GuiBitmapButtonCtrl(GuiEditorSnapCheckBox) {
                new GuiBitmapButtonCtrl(GuiEditorSnapCheckBox) {
-                  bitmap = "tools/gui/images/GUI-editor/snap-grid";
+                  bitmapAsset = "ToolsModule:snap_grid_n_image";
                   bitmapMode = "Stretched";
                   bitmapMode = "Stretched";
                   autoFitExtents = "0";
                   autoFitExtents = "0";
                   groupNum = "-1";
                   groupNum = "-1";
@@ -293,7 +293,7 @@
                   canSaveDynamicFields = "0";
                   canSaveDynamicFields = "0";
                };
                };
                new GuiBitmapButtonCtrl(GuiEditorEdgeSnapping_btn) {
                new GuiBitmapButtonCtrl(GuiEditorEdgeSnapping_btn) {
-                  bitmap = "tools/gui/images/GUI-editor/edgesnap";
+                  bitmapAsset = "ToolsModule:edgesnap_n_image";
                   bitmapMode = "Stretched";
                   bitmapMode = "Stretched";
                   autoFitExtents = "0";
                   autoFitExtents = "0";
                   groupNum = "-1";
                   groupNum = "-1";
@@ -315,7 +315,7 @@
                   canSaveDynamicFields = "0";
                   canSaveDynamicFields = "0";
                };
                };
                new GuiBitmapButtonCtrl(GuiEditorCenterSnapping_btn) {
                new GuiBitmapButtonCtrl(GuiEditorCenterSnapping_btn) {
-                  bitmap = "tools/gui/images/GUI-editor/centersnap";
+                  bitmapAsset = "ToolsModule:centersnap_n_image";
                   bitmapMode = "Stretched";
                   bitmapMode = "Stretched";
                   autoFitExtents = "0";
                   autoFitExtents = "0";
                   groupNum = "-1";
                   groupNum = "-1";
@@ -368,7 +368,7 @@
                canSaveDynamicFields = "0";
                canSaveDynamicFields = "0";
 
 
                new GuiBitmapButtonCtrl() {
                new GuiBitmapButtonCtrl() {
-                  bitmap = "tools/gui/images/GUI-editor/align-left";
+                  bitmapAsset = "ToolsModule:align_left_n_image";
                   bitmapMode = "Stretched";
                   bitmapMode = "Stretched";
                   autoFitExtents = "0";
                   autoFitExtents = "0";
                   groupNum = "-1";
                   groupNum = "-1";
@@ -390,7 +390,7 @@
                   canSaveDynamicFields = "0";
                   canSaveDynamicFields = "0";
                };
                };
                new GuiBitmapButtonCtrl() {
                new GuiBitmapButtonCtrl() {
-                  bitmap = "tools/gui/images/GUI-editor/vertical-center";
+                  bitmapAsset = "ToolsModule:vertical_center_n_image";
                   bitmapMode = "Stretched";
                   bitmapMode = "Stretched";
                   autoFitExtents = "0";
                   autoFitExtents = "0";
                   groupNum = "-1";
                   groupNum = "-1";
@@ -412,7 +412,7 @@
                   canSaveDynamicFields = "0";
                   canSaveDynamicFields = "0";
                };
                };
                new GuiBitmapButtonCtrl() {
                new GuiBitmapButtonCtrl() {
-                  bitmap = "tools/gui/images/GUI-editor/align-right";
+                  bitmapAsset = "ToolsModule:align_right_n_image";
                   bitmapMode = "Stretched";
                   bitmapMode = "Stretched";
                   autoFitExtents = "0";
                   autoFitExtents = "0";
                   groupNum = "-1";
                   groupNum = "-1";
@@ -449,7 +449,7 @@
                canSaveDynamicFields = "0";
                canSaveDynamicFields = "0";
 
 
                new GuiBitmapButtonCtrl() {
                new GuiBitmapButtonCtrl() {
-                  bitmap = "tools/gui/images/GUI-editor/align-top";
+                  bitmapAsset = "ToolsModule:align_top_n_image";
                   bitmapMode = "Stretched";
                   bitmapMode = "Stretched";
                   autoFitExtents = "0";
                   autoFitExtents = "0";
                   groupNum = "-1";
                   groupNum = "-1";
@@ -471,7 +471,7 @@
                   canSaveDynamicFields = "0";
                   canSaveDynamicFields = "0";
                };
                };
                new GuiBitmapButtonCtrl() {
                new GuiBitmapButtonCtrl() {
-                  bitmap = "tools/gui/images/GUI-editor/horizontal-center";
+                  bitmapAsset = "ToolsModule:horizontal_center_n_image";
                   bitmapMode = "Stretched";
                   bitmapMode = "Stretched";
                   autoFitExtents = "0";
                   autoFitExtents = "0";
                   groupNum = "-1";
                   groupNum = "-1";
@@ -493,7 +493,7 @@
                   canSaveDynamicFields = "0";
                   canSaveDynamicFields = "0";
                };
                };
                new GuiBitmapButtonCtrl() {
                new GuiBitmapButtonCtrl() {
-                  bitmap = "tools/gui/images/GUI-editor/align-bottom";
+                  bitmapAsset = "ToolsModule:align_bottom_n_image";
                   bitmapMode = "Stretched";
                   bitmapMode = "Stretched";
                   autoFitExtents = "0";
                   autoFitExtents = "0";
                   groupNum = "-1";
                   groupNum = "-1";
@@ -562,7 +562,7 @@
                canSaveDynamicFields = "0";
                canSaveDynamicFields = "0";
 
 
                new GuiBitmapButtonCtrl() {
                new GuiBitmapButtonCtrl() {
-                  bitmap = "tools/gui/images/GUI-editor/send-to-back";
+                  bitmapAsset = "ToolsModule:send_to_back_n_image";
                   bitmapMode = "Stretched";
                   bitmapMode = "Stretched";
                   autoFitExtents = "0";
                   autoFitExtents = "0";
                   groupNum = "-1";
                   groupNum = "-1";
@@ -584,7 +584,7 @@
                   canSaveDynamicFields = "0";
                   canSaveDynamicFields = "0";
                };
                };
                new GuiBitmapButtonCtrl() {
                new GuiBitmapButtonCtrl() {
-                  bitmap = "tools/gui/images/GUI-editor/bring-to-front";
+                  bitmapAsset = "ToolsModule:bring_to_front_n_image";
                   bitmapMode = "Stretched";
                   bitmapMode = "Stretched";
                   autoFitExtents = "0";
                   autoFitExtents = "0";
                   groupNum = "-1";
                   groupNum = "-1";
@@ -621,7 +621,7 @@
                canSaveDynamicFields = "0";
                canSaveDynamicFields = "0";
 
 
                new GuiBitmapButtonCtrl() {
                new GuiBitmapButtonCtrl() {
-                  bitmap = "tools/gui/images/GUI-editor/distribute-horizontal";
+                  bitmapAsset = "ToolsModule:distribute_horizontal_n_image";
                   bitmapMode = "Stretched";
                   bitmapMode = "Stretched";
                   autoFitExtents = "0";
                   autoFitExtents = "0";
                   groupNum = "-1";
                   groupNum = "-1";
@@ -643,7 +643,7 @@
                   canSaveDynamicFields = "0";
                   canSaveDynamicFields = "0";
                };
                };
                new GuiBitmapButtonCtrl() {
                new GuiBitmapButtonCtrl() {
-                  bitmap = "tools/gui/images/GUI-editor/distribute-vertical";
+                  bitmapAsset = "ToolsModule:distribute_vertical_n_image";
                   bitmapMode = "Stretched";
                   bitmapMode = "Stretched";
                   autoFitExtents = "0";
                   autoFitExtents = "0";
                   groupNum = "-1";
                   groupNum = "-1";
@@ -886,7 +886,7 @@
                      };
                      };
                      
                      
                      new GuiBitmapButtonCtrl() {
                      new GuiBitmapButtonCtrl() {
-                        bitmap = "tools/gui/images/clear-icon";
+                        bitmapAsset = "ToolsModule:clear_icon_n_image";
                         groupNum = "-1";
                         groupNum = "-1";
                         buttonType = "PushButton";
                         buttonType = "PushButton";
                         useMouseEvents = "0";
                         useMouseEvents = "0";
@@ -1199,7 +1199,7 @@
                      };
                      };
                      
                      
                      new GuiBitmapButtonCtrl() {
                      new GuiBitmapButtonCtrl() {
-                        bitmap = "tools/gui/images/clear-icon";
+                        bitmapAsset = "ToolsModule:clear_icon_n_image";
                         groupNum = "-1";
                         groupNum = "-1";
                         buttonType = "PushButton";
                         buttonType = "PushButton";
                         useMouseEvents = "0";
                         useMouseEvents = "0";
@@ -1322,7 +1322,7 @@
                         canSaveDynamicFields = "0";
                         canSaveDynamicFields = "0";
                      };
                      };
                      new GuiBitmapButtonCtrl() {
                      new GuiBitmapButtonCtrl() {
-                        bitmap = "tools/gui/images/save-icon";
+                        bitmapAsset = "ToolsModule:save_icon_n_image";
                         groupNum = "-1";
                         groupNum = "-1";
                         buttonType = "PushButton";
                         buttonType = "PushButton";
                         useMouseEvents = "0";
                         useMouseEvents = "0";
@@ -1342,7 +1342,7 @@
                         canSaveDynamicFields = "0";
                         canSaveDynamicFields = "0";
                      };
                      };
                      new GuiBitmapButtonCtrl() {
                      new GuiBitmapButtonCtrl() {
-                        bitmap = "tools/gui/images/save-as";
+                        bitmapAsset = "ToolsModule:save_as_n_image";
                         groupNum = "-1";
                         groupNum = "-1";
                         buttonType = "PushButton";
                         buttonType = "PushButton";
                         useMouseEvents = "0";
                         useMouseEvents = "0";
@@ -1439,7 +1439,7 @@
          };
          };
 
 
          new GuiBitmapButtonCtrl() {
          new GuiBitmapButtonCtrl() {
-            bitmap = "tools/gui/images/delete";
+            bitmapAsset = "ToolsModule:delete_n_image";
             groupNum = "-1";
             groupNum = "-1";
             buttonType = "PushButton";
             buttonType = "PushButton";
             useMouseEvents = "0";
             useMouseEvents = "0";
@@ -1458,7 +1458,7 @@
             canSaveDynamicFields = "0";
             canSaveDynamicFields = "0";
          };
          };
          new GuiBitmapButtonCtrl() {
          new GuiBitmapButtonCtrl() {
-            bitmap = "tools/gui/images/delete";
+            bitmapAsset = "ToolsModule:delete_n_image";
             groupNum = "-1";
             groupNum = "-1";
             buttonType = "PushButton";
             buttonType = "PushButton";
             useMouseEvents = "0";
             useMouseEvents = "0";
@@ -1477,7 +1477,7 @@
             canSaveDynamicFields = "0";
             canSaveDynamicFields = "0";
          };
          };
          new GuiBitmapButtonCtrl() {
          new GuiBitmapButtonCtrl() {
-            bitmap = "tools/gui/images/delete";
+            bitmapAsset = "ToolsModule:delete_n_image";
             groupNum = "-1";
             groupNum = "-1";
             buttonType = "PushButton";
             buttonType = "PushButton";
             useMouseEvents = "0";
             useMouseEvents = "0";
@@ -1496,7 +1496,7 @@
             canSaveDynamicFields = "0";
             canSaveDynamicFields = "0";
          };
          };
          new GuiBitmapButtonCtrl() {
          new GuiBitmapButtonCtrl() {
-            bitmap = "tools/gui/images/delete";
+            bitmapAsset = "ToolsModule:delete_n_image";
             groupNum = "-1";
             groupNum = "-1";
             buttonType = "PushButton";
             buttonType = "PushButton";
             useMouseEvents = "0";
             useMouseEvents = "0";

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است