various fixes around preview assets and imageassets text field

Imageasset text field now displays correctly in inspector
previews now use assets again
assetBrowser hides previewCache folder
This commit is contained in:
marauder2k7 2025-06-15 22:07:12 +01:00
parent dfbfe094bb
commit 50f74368b3
6 changed files with 121 additions and 35 deletions

View file

@ -258,7 +258,7 @@ function AssetBrowser::initialize(%this)
if(!isObject(%this.dirHandler))
{
%this.dirHandler = makedirectoryHandler(%this-->filterTree, "cache,shaderCache", "");
%this.dirHandler = makedirectoryHandler(%this-->filterTree, "cache,shaderCache,previewCache", "");
%this.dirHandler.currentAddress = "data/";
}
@ -1613,7 +1613,7 @@ function AssetBrowser::doRebuildAssetArray(%this)
else
{
//got it.
if(%folderName $= "shaderCache" || %folderName $= "cache" || %folderName $= ".git")
if(%folderName $= "shaderCache" || %folderName $= "cache" || %folderName $= ".git" || %folderName $= "previewCache")
continue;
if(!%this.coreModulesFilter && %folderName $= "core" && %breadcrumbPath $= "")

View file

@ -42,29 +42,53 @@ function ImageAsset::generatePreviewImage(%this, %previewButton, %forceRegenerat
if(%forceRegenerate $= "")
%forceRegenerate = false;
%previewPath = "tools/resources/previewCache/" @ %previewButton.moduleName @ "/";
%previewPath = "tools/resources/previewCache/" @ %previewButton.moduleName @ "/";
if(!IsDirectory(%previewPath))
{
$CurrentAssetBrowser.dirHandler.createFolder(%previewPath);
}
%previewFilePath = %previewPath @ %this.assetName @ ".png";
%previewFilePath = %previewPath @ %this.assetName @ "_Preview.png";
if(!isFile(%previewFilePath) || (compareFileTimes(%this.getImagePath(), %previewFilePath) == 1))
{
%generatePreview = true;
}
%previewAssetName = "ToolsModule:" @ %this.assetName @ "_Preview";
if(%generatePreview || %forceRegenerate)
{
%success = saveScaledImage(%this.getImagePath(), %previewFilePath, EditorSettings.value("Assets/Browser/PreviewImageSize"));
if(%success)
%previewButton.setBitmap(%previewFilePath);
{
if(!AssetDatabase.isDeclaredAsset(%previewAssetName))
{
%preview_Asset = new ImageAsset()
{
assetName = %this.assetName @ "_Preview";
versionId = 1;
imageFile = makeFullPath(%previewFilePath);
};
TamlWrite(%preview_Asset, expandPath("^ToolsModule/resources/previewCache/" @ %previewButton.moduleName @ "/" @ %preview_Asset.AssetName @ ".asset.taml"));
%toolsModuleDef = ModuleDatabase.findModule("ToolsModule",1);
AssetDatabase.addDeclaredAsset(%toolsModuleDef, expandPath("^ToolsModule/resources/previewCache/" @ %previewButton.moduleName @ "/" @ %preview_Asset.AssetName @ ".asset.taml"));
}
%previewButton.bitmapAsset = %previewAssetName;
}
return %success;
}
else
{
%previewButton.bitmapAsset = %previewAssetName;
return true;
}
return false;
}

View file

@ -101,8 +101,7 @@ function MaterialAsset::generatePreviewImage(%this, %previewButton, %forceRegene
if(%forceRegenerate $= "")
%forceRegenerate = false;
%module = $CurrentAssetBrowser.dirHandler.getModuleFromAddress(makeRelativePath(filePath(AssetDatabase.getAssetFilePath(%this.getAssetId()))));
%previewPath = "tools/resources/previewCache/" @ %module.moduleId @ "/";
%previewPath = "tools/resources/previewCache/" @ %previewButton.moduleName @ "/";
if(!IsDirectory(%previewPath))
{
@ -111,7 +110,8 @@ function MaterialAsset::generatePreviewImage(%this, %previewButton, %forceRegene
%generatePreview = false;
%previewFilePath = %previewPath @ %this.assetName @ ".png";
%previewFilePath = %previewPath @ %this.assetName @ "_Preview.png";
if(!isFile(%previewFilePath))
{
%generatePreview = true;
@ -126,6 +126,8 @@ function MaterialAsset::generatePreviewImage(%this, %previewButton, %forceRegene
}
}
%previewAssetName = "ToolsModule:" @ %this.assetName @ "_Preview";
if(%generatePreview || %forceRegenerate)
{
if(isObject(%this.materialDefinitionName))
@ -137,22 +139,41 @@ function MaterialAsset::generatePreviewImage(%this, %previewButton, %forceRegene
%diffuseMapAsset = AssetDatabase.acquireAsset(%diffuseMapAssetId);
AssetDatabase.releaseAsset(%diffuseMapAssetId);
}
%previewShapeDef = AssetDatabase.acquireAsset("ToolsModule:previewSphereShape");
%generatedFilePath = %previewShapeDef.generateCachedPreviewImage(256, %this.materialDefinitionName);
pathCopy(%generatedFilePath, %previewFilePath, false);
fileDelete(%generatedFilePath);
if(isFile(%previewFilePath))
if(!AssetDatabase.isDeclaredAsset(%previewAssetName))
{
%previewButton.setBitmap(%previewFilePath);
return true;
%preview_Asset = new ImageAsset()
{
assetName = %this.assetName @ "_Preview";
versionId = 1;
imageFile = makeFullPath(%previewFilePath);
};
TamlWrite(%preview_Asset, expandPath("^ToolsModule/resources/previewCache/" @ %previewButton.moduleName @ "/" @ %preview_Asset.AssetName @ ".asset.taml"));
%toolsModuleDef = ModuleDatabase.findModule("ToolsModule",1);
AssetDatabase.addDeclaredAsset(%toolsModuleDef, expandPath("^ToolsModule/resources/previewCache/" @ %previewButton.moduleName @ "/" @ %preview_Asset.AssetName @ ".asset.taml"));
}
%previewButton.bitmapAsset = %previewAssetName;
return true;
}
else
{
return false;
}
}
else
{
%previewButton.bitmapAsset = %previewAssetName;
return true;
}
return false;
}

View file

@ -111,23 +111,21 @@ function ShapeAsset::generatePreviewImage(%this, %previewButton, %forceRegenerat
if(%forceRegenerate $= "")
%forceRegenerate = false;
%assetId = %this.getAssetId();
%module = %previewButton.assetBrowser.dirHandler.getModuleFromAddress(makeRelativePath(filePath(%this.getShapePath())));
%previewPath = "tools/resources/previewCache/" @ %module.moduleId @ "/";
%previewPath = "tools/resources/previewCache/" @ %previewButton.moduleName @ "/";
if(!IsDirectory(%previewPath))
{
%previewButton.assetBrowser.dirHandler.createFolder(%previewPath);
$CurrentAssetBrowser.dirHandler.createFolder(%previewPath);
}
%generatePreview = false;
%previewFilePath = %previewPath @ %this.assetName @ "_Preview.png";
%previewFilePath = %previewPath @ %this.assetName @ ".png";
if(!isFile(%previewFilePath) || (compareFileTimes(%this.getShapePath(), %previewFilePath) == 1))
{
%generatePreview = true;
}
%previewAssetName = "ToolsModule:" @ %this.assetName @ "_Preview";
if(%generatePreview || %forceRegenerate)
{
@ -146,14 +144,28 @@ function ShapeAsset::generatePreviewImage(%this, %previewButton, %forceRegenerat
pathCopy(%filePath, %previewFilePath, false);
fileDelete(%filePath); //cleanup
if(isFile(%previewFilePath))
if(!AssetDatabase.isDeclaredAsset(%previewAssetName))
{
%previewButton.setBitmap(%previewFilePath);
return true;
%preview_Asset = new ImageAsset()
{
assetName = %this.assetName @ "_Preview";
versionId = 1;
imageFile = makeFullPath(%previewFilePath);
};
TamlWrite(%preview_Asset, expandPath("^ToolsModule/resources/previewCache/" @ %previewButton.moduleName @ "/" @ %preview_Asset.AssetName @ ".asset.taml"));
%toolsModuleDef = ModuleDatabase.findModule("ToolsModule",1);
AssetDatabase.addDeclaredAsset(%toolsModuleDef, expandPath("^ToolsModule/resources/previewCache/" @ %previewButton.moduleName @ "/" @ %preview_Asset.AssetName @ ".asset.taml"));
}
return false;
%previewButton.bitmapAsset = %previewAssetName;
return true;
}
else
{
%previewButton.bitmapAsset = %previewAssetName;
return true;
}
return false;