Merge branch 'PreviewAssets_UseAsset' into SoundAsset_Refactor

This commit is contained in:
marauder2k7 2025-06-19 13:36:49 +01:00
commit c6ec2fd6a1
24 changed files with 391 additions and 125 deletions

View file

@ -278,7 +278,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/";
}
@ -1633,7 +1633,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 = "@" @ %this.assetName @ "_Preview.png";
};
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 = "@" @ %this.assetName @ "_Preview.png";
};
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 = "@" @ %this.assetName @ "_Preview.png";
};
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;