Refactor code structure for improved readability and maintainability
This commit is contained in:
@@ -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()
|
||||
Reference in New Issue
Block a user