import os from PIL import Image # ===== NASTAVITVE ===== vhodna_mapa = r"c:\novafarma\assets\narezano_loceno" izhodna_mapa_tsx = r"c:\novafarma\assets\tilesets_auto" # Ustvari izhodno mapo if not os.path.exists(izhodna_mapa_tsx): os.makedirs(izhodna_mapa_tsx) def generiraj_tsx(pot_slike, ime_slike, relativna_pot_do_slike): """ Generiraj TSX datoteko za eno sliko. """ try: # Preberi velikost slike img = Image.open(pot_slike) width, height = img.size # Generiraj ime tileseta (brez _obj01, _obj02, itd.) ime_brez_ext = os.path.splitext(ime_slike)[0] # Odstrani _obj01, _obj02 iz imena za lepše ime tileseta if "_obj" in ime_brez_ext: base_name = ime_brez_ext.rsplit("_obj", 1)[0] obj_num = ime_brez_ext.rsplit("_obj", 1)[1] tileset_name = f"{base_name} - Object {obj_num}" else: tileset_name = ime_brez_ext # Ustvari TSX vsebino tsx_content = f''' ''' # Generiraj ime TSX datoteke tsx_ime = f"{ime_brez_ext}.tsx" tsx_pot = os.path.join(izhodna_mapa_tsx, tsx_ime) # Shrani TSX datoteko with open(tsx_pot, 'w', encoding='utf-8') as f: f.write(tsx_content) return True except Exception as e: print(f" ❌ Napaka pri {ime_slike}: {str(e)}") return False def generiraj_vse_tsx(): """ Generiraj TSX datoteke za vse PNG slike v narezano_loceno mapi. """ print("🚀 Začenjam generiranje TSX datotek za Tiled...\n") print(f"📂 Vhodna mapa: {vhodna_mapa}") print(f"📦 Izhodna mapa: {izhodna_mapa_tsx}\n") print("=" * 70) skupaj_tsx = 0 skupaj_napak = 0 # Preglej vse podmape for podmapa in os.listdir(vhodna_mapa): pot_podmape = os.path.join(vhodna_mapa, podmapa) if not os.path.isdir(pot_podmape): continue print(f"\n📁 Obdelujem: {podmapa}") print("-" * 70) # Najdi vse PNG slike v podmapi slike = [f for f in os.listdir(pot_podmape) if f.endswith(".png")] print(f" Najdenih {len(slike)} slik\n") for ime_slike in slike: pot_slike = os.path.join(pot_podmape, ime_slike) # Relativna pot od tilesets_auto/ do slike # tilesets_auto/ je v assets/ # slika je v assets/narezano_loceno/[podmapa]/[ime_slike] relativna_pot = f"../narezano_loceno/{podmapa}/{ime_slike}" if generiraj_tsx(pot_slike, ime_slike, relativna_pot): skupaj_tsx += 1 if skupaj_tsx % 100 == 0: print(f" ✅ Generirano {skupaj_tsx} TSX datotek...") else: skupaj_napak += 1 print("\n" + "=" * 70) print(f"✨ KONČANO!") print(f" ✅ Uspešno generirano: {skupaj_tsx} TSX datotek") if skupaj_napak > 0: print(f" ❌ Napake: {skupaj_napak}") print(f"\n📂 TSX datoteke so v: {izhodna_mapa_tsx}") print(f"\n🎮 Zdaj lahko dodaš te tilesete v Tiled:") print(f" 1. Odpri svojo mapo v Tiled") print(f" 2. Map → Add External Tileset...") print(f" 3. Izberi TSX datoteko iz {izhodna_mapa_tsx}") print(f" 4. Uporabi na mapi!") if __name__ == "__main__": generiraj_vse_tsx()