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.
This commit is contained in:
marauder2k7 2025-06-16 08:33:11 +01:00
parent 50f74368b3
commit fc9f221ac0
5 changed files with 23 additions and 7 deletions

View file

@ -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();

View file

@ -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
{

View file

@ -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"));

View file

@ -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"));

View file

@ -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"));