import os from PIL import Image from image_colorizer import recolor_plant, tint_seed ASSETS_FOLDER = os.path.join(os.path.dirname(__file__), "assets_px") SEED_TEMPLATE = os.path.join(ASSETS_FOLDER, "_seed_template.png") def _stage_key(growth_stage_name): return growth_stage_name.lower() def generate_seed_image(seed_profile, growth_stage_name): """Render a specimen sprite for the given stage. - Seed stage: the shared seed silhouette tinted to the strain's bud color. - Seedling/Mature: the strain base sprite, shown as-is for starters, or recolored through the leaf/bud masks for bred/cloned offspring. """ stage = _stage_key(growth_stage_name) if stage == "seed": template = Image.open(SEED_TEMPLATE).convert("RGBA") return tint_seed(template, seed_profile.bud_color) path = os.path.join(ASSETS_FOLDER, f"{seed_profile.base_image_name}_{stage}.png") if not os.path.exists(path): raise FileNotFoundError(f"[MISSING SPRITE] {path}") base_image = Image.open(path).convert("RGBA") if seed_profile.is_starter: return base_image return recolor_plant(base_image, seed_profile.leaf_color, seed_profile.bud_color)