From e338db1392368b554a6894b86c58c0e05c3e0c7a Mon Sep 17 00:00:00 2001 From: Willy-JL Date: Sun, 19 Feb 2023 03:23:53 +0000 Subject: [PATCH] Asset packer use manifest for anim subfolders --- scripts/asset_packer.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/scripts/asset_packer.py b/scripts/asset_packer.py index 02ed0b94e..cc28ee540 100755 --- a/scripts/asset_packer.py +++ b/scripts/asset_packer.py @@ -6,7 +6,9 @@ import shutil import struct import typing import time +import re import io +import os def convert_bm(img: "Image.Image | pathlib.Path") -> bytes: @@ -94,7 +96,7 @@ def pack( if not source.is_dir(): continue - logger(f"Packing {source.name}... ") + logger(f"Pack: custom user pack '{source.name}'") packed = output / source.name if packed.exists(): try: @@ -110,10 +112,11 @@ def pack( shutil.copyfile( source / "Anims/manifest.txt", packed / "Anims/manifest.txt" ) - for anim in (source / "Anims").iterdir(): - if not anim.is_dir(): - continue - pack_anim(anim, packed / "Anims" / anim.name) + manifest = (source / "Anims/manifest.txt").read_bytes() + for anim in re.finditer(rb"Name: (.*)", manifest): + anim = anim.group(1).decode().replace("\\", "/").replace("/", os.sep) + logger(f"Compile: anim for pack '{source.name}': {anim}") + pack_anim(source / "Anims" / anim, packed / "Anims" / anim) if (source / "Icons").is_dir(): for icons in (source / "Icons").iterdir(): @@ -121,10 +124,12 @@ def pack( continue for icon in icons.iterdir(): if icon.is_dir(): + logger(f"Compile: icon for pack '{source.name}': {icons.name}/{icon.name}") pack_icon_animated( icon, packed / "Icons" / icons.name / icon.name ) elif icon.is_file(): + logger(f"Compile: icon for pack '{source.name}': {icons.name}/{icon.name}") pack_icon_static( icon, packed / "Icons" / icons.name / icon.name )