🧹 Massive Asset Reorganization: Cleaned filenames, removed duplicates, and sorted into UI/Items/Env/Chars/Animals folders.
This commit is contained in:
59
scripts/refine_environment.py
Normal file
59
scripts/refine_environment.py
Normal file
@@ -0,0 +1,59 @@
|
||||
import os
|
||||
import shutil
|
||||
|
||||
BASE_DIR = os.path.abspath("assets/slike/glavna_referenca")
|
||||
ENV_DIR = os.path.join(BASE_DIR, "Environment")
|
||||
|
||||
CATS = {
|
||||
"ground": ["grass", "dirt", "path", "road", "cesta", "pot", "zemlja", "floor", "tla", "puddle", "luz?a", "swamp", "snow", "sneg", "sand", "pesek", "tile", "grate", "brick", "soil", "mud", "ash", "wasteland"],
|
||||
"nature": ["tree", "drevo", "bush", "grm", "flower", "roza", "rock", "skala", "plant", "rastlina", "willow", "oak", "pine", "palm", "cactus", "forest", "gozd", "leaf", "list"],
|
||||
"buildings": ["house", "hisa", "shop", "trgovina", "barn", "skedenj", "shed", "tower", "stolp", "mill", "mlin", "well", "vodnjak", "wall", "zid", "fence", "ograja", "ruin", "cabin", "clinic", "school", "museum", "shack", "church", "cerkev", "temple", "gate", "entrance", "hospital", "upgraded", "deluxe"],
|
||||
"mine": ["mine", "rudnik", "ore", "ruda", "crystal", "kristal", "cave", "jama", "stalactite", "stalagmite", "track", "rail", "pillar", "steber"],
|
||||
"decor": ["bench", "klop", "lamp", "luc", "lantern", "torch", "bakla", "sign", "znak", "statue", "kip", "fountain", "grave", "grob", "tomb", "spomenik", "monument", "post", "table", "chair", "scarecrow"]
|
||||
}
|
||||
|
||||
def refine_environment():
|
||||
print("🌲 Refining 'Environment' folder...")
|
||||
|
||||
# Create subdirs
|
||||
for sub in CATS:
|
||||
path = os.path.join(ENV_DIR, sub)
|
||||
if not os.path.exists(path):
|
||||
os.makedirs(path)
|
||||
|
||||
count = 0
|
||||
|
||||
for filename in os.listdir(ENV_DIR):
|
||||
if filename.startswith("."): continue
|
||||
src = os.path.join(ENV_DIR, filename)
|
||||
if os.path.isdir(src): continue
|
||||
|
||||
lower = filename.lower()
|
||||
target = None
|
||||
|
||||
for cat, kws in CATS.items():
|
||||
if any(k in lower for k in kws):
|
||||
target = cat
|
||||
break
|
||||
|
||||
if target:
|
||||
dst = os.path.join(ENV_DIR, target, filename)
|
||||
# Collision
|
||||
if os.path.exists(dst):
|
||||
name, ext = os.path.splitext(filename)
|
||||
c=1
|
||||
while os.path.exists(os.path.join(ENV_DIR, target, f"{name}_{c}{ext}")):
|
||||
c+=1
|
||||
dst = os.path.join(ENV_DIR, target, f"{name}_{c}{ext}")
|
||||
|
||||
shutil.move(src, dst)
|
||||
count += 1
|
||||
else:
|
||||
# Impostor check? Or leave loose?
|
||||
# User wants: "kaj ne spada v to mapa poravilno dodaj v mapo katero pase"
|
||||
pass
|
||||
|
||||
print(f"✨ Sorted {count} environmental assets.")
|
||||
|
||||
if __name__ == "__main__":
|
||||
refine_environment()
|
||||
Reference in New Issue
Block a user