diff --git a/ChangeLog.md b/ChangeLog.md index 5ee0c16d6..77baa70f1 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -23,6 +23,7 @@ ### Fixed: - Archive: Fix favorite's parent folders thinking they are favorited too (by @Willy-JL) - FBT: Consistent version/branch info, fix gitorigin (by @Willy-JL) +- AssetPacker: Pack pre-compiled icons and fonts too (by @Willy-JL) - OFW: Accessor: Disable expansion service on start (by @skotopes) - OFW: cleanup of various warnings from clangd (by @hedger) diff --git a/scripts/asset_packer.py b/scripts/asset_packer.py index c60390449..6b239611d 100755 --- a/scripts/asset_packer.py +++ b/scripts/asset_packer.py @@ -53,17 +53,17 @@ def pack_anim(src: pathlib.Path, dst: pathlib.Path): if not frame.is_file(): continue if frame.name == "meta.txt": - shutil.copyfile(src / "meta.txt", dst / "meta.txt") - continue + shutil.copyfile(frame, dst / frame.name) elif frame.name.startswith("frame_"): - if frame.suffix == ".bm": - shutil.copyfile(frame, dst / frame.name) - elif frame.suffix == ".png": + if frame.suffix == ".png": (dst / frame.with_suffix(".bm").name).write_bytes(convert_bm(frame)) + elif frame.suffix == ".bm": + if not (dst / frame.name).is_file(): + shutil.copyfile(frame, dst / frame.name) def pack_icon_animated(src: pathlib.Path, dst: pathlib.Path): - if not (src / "frame_rate").is_file(): + if not (src / "frame_rate").is_file() and not (src / "meta").is_file(): return dst.mkdir(parents=True, exist_ok=True) frame_count = 0 @@ -73,33 +73,50 @@ def pack_icon_animated(src: pathlib.Path, dst: pathlib.Path): if not frame.is_file(): continue if frame.name == "frame_rate": - frame_rate = int((src / "frame_rate").read_text()) - continue + frame_rate = int(frame.read_text()) + elif frame.name == "meta": + shutil.copyfile(frame, dst / frame.name) elif frame.name.startswith("frame_"): - frame_count += 1 - if not size: - size = Image.open(frame).size - (dst / frame.with_suffix(".bm").name).write_bytes(convert_bm(frame)) - (dst / "meta").write_bytes(struct.pack("