diff --git a/Engine/source/T3D/assets/assetImporter.cpp b/Engine/source/T3D/assets/assetImporter.cpp index eca044509..2a6ee089f 100644 --- a/Engine/source/T3D/assets/assetImporter.cpp +++ b/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(); diff --git a/Engine/source/assets/assetBase.cpp b/Engine/source/assets/assetBase.cpp index dba9f142a..fcb9b5051 100644 --- a/Engine/source/assets/assetBase.cpp +++ b/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 { diff --git a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/image.tscript b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/image.tscript index 1aa34f78c..eb29fb365 100644 --- a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/image.tscript +++ b/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")); diff --git a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/material.tscript b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/material.tscript index 33456e96a..78d611b5f 100644 --- a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/material.tscript +++ b/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")); diff --git a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/shape.tscript b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/shape.tscript index d91ea925d..be6d0087e 100644 --- a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/shape.tscript +++ b/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"));