From c2857efe281b89c32a554d1e21fc9f5a8ccfc602 Mon Sep 17 00:00:00 2001 From: JeffR Date: Thu, 31 Mar 2022 00:40:24 -0500 Subject: [PATCH] Adds logic to up-convert non-embedded terrain materials and materials to have embedded definitions --- .../scripts/materialEditor.ed.tscript | 19 ++++++++++++++++- .../interfaces/terrainMaterialDlg.ed.tscript | 21 ++++++++++++++++++- 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/Templates/BaseGame/game/tools/materialEditor/scripts/materialEditor.ed.tscript b/Templates/BaseGame/game/tools/materialEditor/scripts/materialEditor.ed.tscript index de003fdc8..cf2afc7b3 100644 --- a/Templates/BaseGame/game/tools/materialEditor/scripts/materialEditor.ed.tscript +++ b/Templates/BaseGame/game/tools/materialEditor/scripts/materialEditor.ed.tscript @@ -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 { diff --git a/Templates/BaseGame/game/tools/worldEditor/scripts/interfaces/terrainMaterialDlg.ed.tscript b/Templates/BaseGame/game/tools/worldEditor/scripts/interfaces/terrainMaterialDlg.ed.tscript index 745ee906a..e5fd3d27a 100644 --- a/Templates/BaseGame/game/tools/worldEditor/scripts/interfaces/terrainMaterialDlg.ed.tscript +++ b/Templates/BaseGame/game/tools/worldEditor/scripts/interfaces/terrainMaterialDlg.ed.tscript @@ -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"); }