Adds logic to up-convert non-embedded terrain materials and materials to have embedded definitions

This commit is contained in:
JeffR 2022-03-31 00:40:24 -05:00
parent 85bb4cbff3
commit c2857efe28
2 changed files with 38 additions and 2 deletions

View file

@ -1963,7 +1963,24 @@ function MaterialEditorGui::save( %this )
MaterialEditorGui.copyMaterials( materialEd_previewMaterial, notDirtyMaterial );
%assetDef = AssetDatabase.acquireAsset(MaterialEditorGui.currentMaterialAsset);
%assetDef.saveAsset(); //write it out
%didEmbed = false;
%matScriptFile = %assetDef.getScriptPath();
if(%matScriptFile !$= "")
{
//lets up-convert to embedded
%assetDef.add(%assetDef.materialDefinitionName);
%assetDef.scriptFile = "";
%didEmbed = true;
}
//write it out
if(%assetDef.saveAsset())
{
if(%didEmbed)
{
fileDelete(%matScriptFile); //cleanup the old definition file
}
}
}
else
{

View file

@ -778,7 +778,26 @@ function TerrainMaterialDlg::saveDirtyMaterial( %this, %materialAssetId )
%fxMat.customImpactSound = getField(%impactSound, 1);
//Save the material asset
%assetDef.saveAsset();
%didEmbed = false;
%matScriptFile = %assetDef.getScriptPath();
if(%matScriptFile !$= "")
{
//lets up-convert to embedded
%assetDef.add(%mat);
%assetDef.add(%fxMat);
%assetDef.scriptFile = "";
%didEmbed = true;
}
//write it out
if(%assetDef.saveAsset())
{
if(%didEmbed)
{
fileDelete(%matScriptFile); //cleanup the old definition file
}
}
%this.schedule(32, "cleanupDirtyMaterial");
}