Files
novafarma/scripts/organize_assets.py

67 lines
2.9 KiB
Python

import os
import shutil
from PIL import Image, ImageDraw
def create_directory(path):
if not os.path.exists(path):
os.makedirs(path)
# Paths
base_assets = "assets"
demo_path = "assets/DEMO_FAZA1"
dirs = ["tiles", "environment", "vegetation"]
for d in dirs:
create_directory(os.path.join(base_assets, d))
# 1. Copy/Rename existing
mappings = [
(f"{demo_path}/Ground/tla_trava_tekstura.png", f"{base_assets}/tiles/trava_osnova.png"),
(f"{demo_path}/Environment/mud_puddle.png", f"{base_assets}/environment/blato.png"),
(f"{demo_path}/Vegetation/trava_sop.png", f"{base_assets}/vegetation/trava_rob.png"),
(f"{demo_path}/Vegetation/drevo_veliko.png", f"{base_assets}/vegetation/drevo_navadno.png"),
(f"{demo_path}/Characters/Kai_Dreads.png", f"{base_assets}/kai.png") # Simplification for retrieval if needed, but not strictly asked to move Kai. User said "Kai (Igralec)". I'll keep Kai in DEMO for now but maybe copy for consistency if needed. Actually user code request implies loading 'kai' from 'assets/kai_character.png' in the example? No, they just said "assets/kai_character.png" in their *example code*, but "1. Organizacija in generiranje slik... Preveri obstoj naslednjih slik" list didn't include Kai. I will load Kai from the original location or copy it to root assets for simplicity. Let's copy it to `assets/characters/kai.png` (create folder first) to be clean.
]
create_directory(f"{base_assets}/characters")
mappings.append((f"{demo_path}/Characters/Kai_Dreads.png", f"{base_assets}/characters/kai.png"))
for src, dst in mappings:
if os.path.exists(src):
shutil.copy(src, dst)
print(f"Copied {src} to {dst}")
else:
print(f"Source missing: {src}")
# 2. Generate placeholders
def create_placeholder(path, color, size=(256, 256), alpha=255):
img = Image.new('RGBA', size, (0, 0, 0, 0))
draw = ImageDraw.Draw(img)
# Draw simple shape (Circle or Rect)
r, g, b = color
fill_color = (r, g, b, alpha)
# Irregular shape for fluids/roads? Just a circle for now for "blato" logic (already copied),
# but for road/water placeholders let's do soft shapes or rects.
# Road: Rect? Water: Circle?
if "cesta" in path:
draw.rectangle([0, 0, size[0], size[1]], fill=fill_color)
else:
draw.ellipse([10, 10, size[0]-10, size[1]-10], fill=fill_color)
img.save(path)
print(f"Generated {path}")
# environment/cesta_svetla.png (Svetlo rjava/peščena)
create_placeholder(f"{base_assets}/environment/cesta_svetla.png", (210, 180, 140), size=(256, 256))
# environment/voda_cista.png (Modra, 80 % prosojna -> alpha ~204)
create_placeholder(f"{base_assets}/environment/voda_cista.png", (0, 150, 255), size=(256, 256), alpha=204)
# environment/voda_umazana.png (Rjavkasto-zelena voda)
create_placeholder(f"{base_assets}/environment/voda_umazana.png", (100, 120, 50), size=(256, 256), alpha=230)
print("Assets organized.")