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 )