From a82fb37bed92fbf8febd666daa03e3ab53b8457d Mon Sep 17 00:00:00 2001 From: David Kotnik Date: Thu, 25 Dec 2025 01:50:39 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=97=BA=EF=B8=8F=20Base=20Farm=20Tiled=20s?= =?UTF-8?q?etup=20-=205=20tilesets=20ready=20for=20map=20design?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/maps/base_farm.tmx | 7 +- assets/maps/farm_tilesets/farm_buildings.tsx | 34 ++++++++ assets/maps/farm_tilesets/farm_fences.tsx | 14 ++++ assets/maps/farm_tilesets/farm_grass.tsx | 4 + assets/maps/farm_tilesets/farm_soil.tsx | 19 +++++ assets/maps/farm_tilesets/farm_trees.tsx | 49 +++++++++++ tools/generate_farm_tilesets.py | 85 ++++++++++++++++++++ 7 files changed, 210 insertions(+), 2 deletions(-) create mode 100644 assets/maps/farm_tilesets/farm_buildings.tsx create mode 100644 assets/maps/farm_tilesets/farm_fences.tsx create mode 100644 assets/maps/farm_tilesets/farm_grass.tsx create mode 100644 assets/maps/farm_tilesets/farm_soil.tsx create mode 100644 assets/maps/farm_tilesets/farm_trees.tsx create mode 100644 tools/generate_farm_tilesets.py diff --git a/assets/maps/base_farm.tmx b/assets/maps/base_farm.tmx index c975c55d..1e999786 100644 --- a/assets/maps/base_farm.tmx +++ b/assets/maps/base_farm.tmx @@ -6,8 +6,11 @@ - - + + + + + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, diff --git a/assets/maps/farm_tilesets/farm_buildings.tsx b/assets/maps/farm_tilesets/farm_buildings.tsx new file mode 100644 index 00000000..96f89c48 --- /dev/null +++ b/assets/maps/farm_tilesets/farm_buildings.tsx @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/maps/farm_tilesets/farm_fences.tsx b/assets/maps/farm_tilesets/farm_fences.tsx new file mode 100644 index 00000000..18190073 --- /dev/null +++ b/assets/maps/farm_tilesets/farm_fences.tsx @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/assets/maps/farm_tilesets/farm_grass.tsx b/assets/maps/farm_tilesets/farm_grass.tsx new file mode 100644 index 00000000..ae2dc44a --- /dev/null +++ b/assets/maps/farm_tilesets/farm_grass.tsx @@ -0,0 +1,4 @@ + + + + diff --git a/assets/maps/farm_tilesets/farm_soil.tsx b/assets/maps/farm_tilesets/farm_soil.tsx new file mode 100644 index 00000000..364ab15a --- /dev/null +++ b/assets/maps/farm_tilesets/farm_soil.tsx @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/assets/maps/farm_tilesets/farm_trees.tsx b/assets/maps/farm_tilesets/farm_trees.tsx new file mode 100644 index 00000000..726c62ba --- /dev/null +++ b/assets/maps/farm_tilesets/farm_trees.tsx @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tools/generate_farm_tilesets.py b/tools/generate_farm_tilesets.py new file mode 100644 index 00000000..165acc3d --- /dev/null +++ b/tools/generate_farm_tilesets.py @@ -0,0 +1,85 @@ +#!/usr/bin/env python3 +""" +Generate TSX tilesets for Base Farm from mrtva_dolina collection +""" + +import os +from pathlib import Path + +BASE_DIR = Path("/Users/davidkotnik/Desktop/novafarma") +MRTVA_DOLINA = BASE_DIR / "mrtva_dolina" +OUTPUT_DIR = BASE_DIR / "assets" / "maps" / "farm_tilesets" + +# Create output directory +OUTPUT_DIR.mkdir(parents=True, exist_ok=True) + +def create_ground_tileset(): + """Create grass/ground tileset""" + # Find grass tiles + ground_dir = MRTVA_DOLINA / "terrain" / "ground" + grass_files = [f for f in ground_dir.glob("*grass*.png")] + + if not grass_files: + print("⚠️ No grass files found, using first available") + grass_files = list(ground_dir.glob("*.png"))[:1] + + if grass_files: + grass_file = grass_files[0] + + # Create TSX for grass + tsx_content = f""" + + + +""" + + tsx_path = OUTPUT_DIR / "farm_grass.tsx" + with open(tsx_path, 'w') as f: + f.write(tsx_content) + + print(f"✓ Created farm_grass.tsx") + return str(tsx_path) + + return None + +def create_collection_tileset(category, subcategory, name, pattern="*.png", max_tiles=20): + """Create collection-based tileset""" + + source_dir = MRTVA_DOLINA / category / subcategory + files = list(source_dir.glob(pattern))[:max_tiles] + + if not files: + print(f"⚠️ No files found for {name}") + return None + + tsx_content = f""" + + +""" + + for idx, file in enumerate(files): + rel_path = f"../../../mrtva_dolina/{category}/{subcategory}/{file.name}" + tsx_content += f""" + + +""" + + tsx_content += "\n" + + tsx_path = OUTPUT_DIR / f"{name}.tsx" + with open(tsx_path, 'w') as f: + f.write(tsx_content) + + print(f"✓ Created {name}.tsx ({len(files)} tiles)") + return str(tsx_path) + +# Generate tilesets +print("🎨 Generating Base Farm Tilesets...\n") + +create_ground_tileset() +create_collection_tileset("buildings", "houses", "farm_buildings", "*house*.png", 10) +create_collection_tileset("vegetation", "trees", "farm_trees", "*.png", 15) +create_collection_tileset("buildings", "structures", "farm_fences", "*fence*.png", 10) +create_collection_tileset("terrain", "ground", "farm_soil", "*soil*.png", 5) + +print("\n✅ Done! Tilesets created in assets/maps/farm_tilesets/")