Refactor code structure for improved readability and maintainability

This commit is contained in:
2026-03-28 16:05:08 +01:00
parent 02202e4d3d
commit b60ffd87aa
108 changed files with 74710 additions and 15 deletions
+62
View File
@@ -0,0 +1,62 @@
#!/usr/bin/env python3
"""
Generate directional rat sprites (LEFT, RIGHT, UP, DOWN) from source LEFT PNGs.
Source files (tools/vernon/output/):
BMP_MALE_LEFT.png
BMP_FEMALE_LEFT.png
BMP_BABY_LEFT.png
Output goes to assets/Rat/ as:
BMP_<SEX>_LEFT.png — copy of source
BMP_<SEX>_RIGHT.png — horizontal flip
BMP_<SEX>_UP.png — rotate 270° (nose up)
BMP_<SEX>_DOWN.png — rotate 90° (nose down)
Usage (from project root):
python tools/generate_rat_sprites.py
"""
import sys
import os
from pathlib import Path
from PIL import Image
REPO_ROOT = Path(__file__).resolve().parent.parent
SOURCE_DIR = REPO_ROOT / "tools" / "vernon" / "output"
OUTPUT_DIR = REPO_ROOT / "assets" / "Rat"
SEXES = ["MALE", "FEMALE", "BABY"]
def generate(sex: str) -> None:
src_path = SOURCE_DIR / f"BMP_{sex}_LEFT.png"
if not src_path.exists():
print(f" SKIP {sex}: source not found at {src_path}", file=sys.stderr)
return
src = Image.open(src_path).convert("RGBA")
variants = {
"LEFT": src,
"RIGHT": src.transpose(Image.FLIP_LEFT_RIGHT),
"UP": src.rotate(270, expand=True),
"DOWN": src.rotate(90, expand=True),
}
for direction, img in variants.items():
out_path = OUTPUT_DIR / f"BMP_{sex}_{direction}.png"
img.save(out_path)
print(f" wrote {out_path.relative_to(REPO_ROOT)} {img.size}")
def main() -> None:
OUTPUT_DIR.mkdir(parents=True, exist_ok=True)
for sex in SEXES:
print(f"[{sex}]")
generate(sex)
print("Done.")
if __name__ == "__main__":
main()