From b53a68e4c9da65885cc8c304c8407e626a23e66d Mon Sep 17 00:00:00 2001 From: luboslenco Date: Tue, 12 Jan 2021 20:50:39 +0100 Subject: [PATCH] Export material icons for cloud assets --- Sources/arm/io/ExportArm.hx | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/Sources/arm/io/ExportArm.hx b/Sources/arm/io/ExportArm.hx index f65305a8..6f8196db 100644 --- a/Sources/arm/io/ExportArm.hx +++ b/Sources/arm/io/ExportArm.hx @@ -152,6 +152,7 @@ class ExportArm { } public static function runMaterial(path: String) { + if (!path.endsWith(".arm")) path += ".arm"; var mnodes: Array = []; var mgroups: Array = null; var m = Context.material; @@ -167,11 +168,33 @@ class ExportArm { var texture_files = assetsToFiles(assets); + var isCloud = path.endsWith("_cloud_.arm"); + if (isCloud) { + path = path.replace("_cloud_", ""); + // Separate icon files + var out = new haxe.io.BytesOutput(); + var writer = new arm.format.JpgWriter(out); + writer.write( + { + width: m.image.width, + height: m.image.height, + quality: 50, + pixels: m.image.getPixels() + }, 1 + ); + Krom.fileSaveBytes(path.substr(0, path.length - 4) + "_icon.jpg", out.getBytes().getData()); + var out = new haxe.io.BytesOutput(); + var writer = new arm.format.PngWriter(out); + var data = arm.format.PngTools.build32RGBA(m.image.width, m.image.height, m.image.getPixels()); + writer.write(data); + Krom.fileSaveBytes(path.substr(0, path.length - 4) + "_icon.png", out.getBytes().getData()); + } + var raw = { version: Main.version, material_nodes: mnodes, material_groups: mgroups, - material_icons: + material_icons: isCloud ? null : #if (kha_metal || kha_vulkan) [Lz4.encode(bgraSwap(m.image.getPixels()))], #else @@ -181,7 +204,6 @@ class ExportArm { }; var bytes = ArmPack.encode(raw); - if (!path.endsWith(".arm")) path += ".arm"; Krom.fileSaveBytes(path, bytes.getData()); }