Selaa lähdekoodia

Prepend symbol for image files

Prepend image filenames in imageassets with "@" symbol so expand and collapse works correctly for files relative to that asset.taml file.
marauder2k7 3 kuukautta sitten
vanhempi
commit
fc9f221ac0

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

@@ -2825,7 +2825,7 @@ Torque::Path AssetImporter::importImageAsset(AssetImportObject* assetItem)
    StringTableEntry assetName = StringTable->insert(assetItem->assetName.c_str());
 
    String imageFileName = assetItem->filePath.getFullFileName();
-   String assetPath = targetPath + "/" + imageFileName;
+   String assetPath = "@" + imageFileName;
    String tamlPath = targetPath + "/" + assetName + ".asset.taml";
    String originalPath = assetItem->filePath.getFullPath().c_str();
 

+ 19 - 3
Engine/source/assets/assetBase.cpp

@@ -226,9 +226,20 @@ StringTableEntry AssetBase::expandAssetFilePath(const char* pAssetFilePath) cons
       assetBasePathHint = NULL;
    }
 
-   // Expand the path with the asset base-path hint.
    char assetFilePathBuffer[1024];
-   Con::expandPath(assetFilePathBuffer, sizeof(assetFilePathBuffer), pAssetFilePath, assetBasePathHint);
+
+   if (*pAssetFilePath != '@')
+   {
+      // Expand the path with the asset base-path hint.
+      Con::expandPath(assetFilePathBuffer, sizeof(assetFilePathBuffer), pAssetFilePath, assetBasePathHint);
+      return StringTable->insert(assetFilePathBuffer);
+   }
+
+   if(!getOwned())
+      return StringTable->insert(pAssetFilePath);
+
+   // Format expanded path taking into account any missing slash.
+   dSprintf(assetFilePathBuffer, sizeof(assetFilePathBuffer), "%s/%s", mpOwningAssetManager->getAssetPath(getAssetId()), pAssetFilePath + (pAssetFilePath[1] == '/' ? 2 : 1));
    return StringTable->insert(assetFilePathBuffer);
 }
 
@@ -254,6 +265,11 @@ StringTableEntry AssetBase::collapseAssetFilePath(const char* pAssetFilePath) co
 
    char assetFilePathBuffer[1024];
 
+   if (*pAssetFilePath == '@')
+   {
+      return StringTable->insert(pAssetFilePath);
+   }
+
    // Is the asset not owned or private?
    if (!getOwned() || getAssetPrivate())
    {
@@ -272,7 +288,7 @@ StringTableEntry AssetBase::collapseAssetFilePath(const char* pAssetFilePath) co
       StringTableEntry relativePath = Platform::makeRelativePathName(pAssetFilePath, assetBasePath);
 
       // Format the collapsed path.
-      dSprintf(assetFilePathBuffer, sizeof(assetFilePathBuffer), "%s", relativePath);
+      dSprintf(assetFilePathBuffer, sizeof(assetFilePathBuffer), "@%s", relativePath);
    }
    else
    {

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

@@ -71,7 +71,7 @@ function ImageAsset::generatePreviewImage(%this, %previewButton, %forceRegenerat
             {
                assetName = %this.assetName @ "_Preview";
                versionId = 1;
-               imageFile = makeFullPath(%previewFilePath);
+               imageFile = "@" @ %this.assetName @ "_Preview.png";
             };
 
             TamlWrite(%preview_Asset, expandPath("^ToolsModule/resources/previewCache/" @ %previewButton.moduleName @ "/" @ %preview_Asset.AssetName @ ".asset.taml"));

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

@@ -152,7 +152,7 @@ function MaterialAsset::generatePreviewImage(%this, %previewButton, %forceRegene
             {
                assetName = %this.assetName @ "_Preview";
                versionId = 1;
-               imageFile = makeFullPath(%previewFilePath);
+               imageFile = "@" @ %this.assetName @ "_Preview.png";
             };
 
             TamlWrite(%preview_Asset, expandPath("^ToolsModule/resources/previewCache/" @ %previewButton.moduleName @ "/" @ %preview_Asset.AssetName @ ".asset.taml"));

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

@@ -151,7 +151,7 @@ function ShapeAsset::generatePreviewImage(%this, %previewButton, %forceRegenerat
          {
             assetName = %this.assetName @ "_Preview";
             versionId = 1;
-            imageFile = makeFullPath(%previewFilePath);
+            imageFile = "@" @ %this.assetName @ "_Preview.png";
          };
 
          TamlWrite(%preview_Asset, expandPath("^ToolsModule/resources/previewCache/" @ %previewButton.moduleName @ "/" @ %preview_Asset.AssetName @ ".asset.taml"));