Asset packer use manifest for anim subfolders

This commit is contained in:
Willy-JL
2023-02-19 03:23:53 +00:00
parent eb97b3b80a
commit e338db1392
+10 -5
View File
@@ -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
)