64 lines
2.9 KiB
Python
64 lines
2.9 KiB
Python
import os
|
|
import shutil
|
|
|
|
# Source of Truth
|
|
SOURCE_DIR = "/Users/davidkotnik/repos/novafarma/assets/references"
|
|
BASE_ASSETS_DIR = "/Users/davidkotnik/repos/novafarma/assets"
|
|
|
|
# Define Categories
|
|
CATEGORIES = {
|
|
"zombies": ["zombi", "zombie", "undead"],
|
|
"characters": ["kai", "ana", "ata", "mama", "gronk", "dr_krnic", "character", "npc"],
|
|
"animals": ["krava", "svinja", "ovca", "kokos", "pes", "susi", "macka", "netopir", "sova", "volk", "medved", "zival", "insekt", "metulj", "mravlja", "cebela", "polz", "dezevnik", "hrosc", "komar", "muha"],
|
|
"ui": ["ui_", "gumb", "ikona", "okno", "bar", "status", "dnevnik", "inventar", "kazalec"],
|
|
"items": ["orodje", "kramp", "lopata", "sekira", "motika", "kosa", "mec", "puska", "stikalo", "sod", "bencin", "kanister", "seme", "rastlina", "pridelki", "marihuana", "konoplja", "hrana", "steklenica", "nacrt", "zvitki"],
|
|
"environment": ["drevo", "trava", "kamen", "grm", "tile", "tla", "pot", "rudnik", "vhod", "megla", "ozadje", "voda", "resource", "zgradba", "hisa", "koca", "sotor", "skedenj", "objekt", "vodnjak", "ograja", "kip", "postelja", "vreca", "miza", "stol", "klop"]
|
|
}
|
|
|
|
def organize_assets():
|
|
# 1. Create Directories
|
|
for category in CATEGORIES:
|
|
path = os.path.join(BASE_ASSETS_DIR, category)
|
|
if not os.path.exists(path):
|
|
os.makedirs(path)
|
|
print(f"Created directory: {category}")
|
|
|
|
# 2. Sort Files
|
|
files = [f for f in os.listdir(SOURCE_DIR) if f.lower().endswith('.png')]
|
|
|
|
print(f"Sorting {len(files)} files from references...")
|
|
|
|
count = 0
|
|
for filename in files:
|
|
src_path = os.path.join(SOURCE_DIR, filename)
|
|
fname_lower = filename.lower()
|
|
|
|
assigned = False
|
|
|
|
# Check categories in specific order (Zombies first as requested!)
|
|
# Use lists to prioritize: Zombies > Characters > Animals > UI > Items > Environment
|
|
priority_order = ["zombies", "characters", "animals", "ui", "items", "environment"]
|
|
|
|
for category in priority_order:
|
|
keywords = CATEGORIES[category]
|
|
if any(k in fname_lower for k in keywords):
|
|
dst_path = os.path.join(BASE_ASSETS_DIR, category, filename)
|
|
shutil.copy2(src_path, dst_path) # COPY, don't move (keep references safe)
|
|
# print(f"-> {category}: {filename}")
|
|
assigned = True
|
|
count += 1
|
|
break
|
|
|
|
if not assigned:
|
|
# Fallback to 'environment' or 'misc' if unsure?
|
|
# Let's put in 'environment' as catch-all or create 'misc'
|
|
dst_path = os.path.join(BASE_ASSETS_DIR, "environment", filename)
|
|
shutil.copy2(src_path, dst_path)
|
|
print(f"-> environment (fallback): {filename}")
|
|
count += 1
|
|
|
|
print(f"✅ Successfully organized {count} assets into game folders!")
|
|
|
|
if __name__ == "__main__":
|
|
organize_assets()
|