From 3e1828198c10181aae348ff39fcd2d1334e24f86 Mon Sep 17 00:00:00 2001 From: David Kotnik Date: Wed, 31 Dec 2025 11:30:36 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=97=BA=EF=B8=8F=20Complete=20game=20map?= =?UTF-8?q?=20structure=20-=2029=20new=20map=20folders=20(core,=20farms,?= =?UTF-8?q?=20resources,=20story,=20special,=20anomalous=20zones)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/slike/cutscenes/story_.DS_Store | Bin 6148 -> 0 bytes scripts/setup_map_structure.py | 129 +++++++++++++++++++++++++ 2 files changed, 129 insertions(+) delete mode 100644 assets/slike/cutscenes/story_.DS_Store create mode 100644 scripts/setup_map_structure.py diff --git a/assets/slike/cutscenes/story_.DS_Store b/assets/slike/cutscenes/story_.DS_Store deleted file mode 100644 index 575f1f9cd82b01c20849d4ec4b7b218f3576a349..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKPfrs;6rWcrY(Zp!7BOnl(2EH~fg;9ua9J>hc!013O90DmyVQkcrtWU3NJx6t z58wyz1DJU7s2@O&UOo5)ym-bpe^xBWl@PNpnfbk$_ukCB-)3fZ2q9oLsuP6hgb)o2 z$8mUPbVVqG3I?%aeU@rn-7>s!a%~n#b$u--88XDg+yfH#QrtWcKb+( zNFw%|JmL4@48LN#AB>#k=QP8*IyXK#b>9o4@$qkv>PTPe?9#fl9&N*V&YD(aM~%?5 zgEih-X3TeD-F8+yw^`P+vy4WzN8LaKcvTl&)}MN`%9FzLV6X(@CKEbpQ2aUQ~AJ` zIG^vj9%q#4?z!B1rBCl480^pX=W@BBtHaj@uHPu@gN|LV4g zcnTmy<X2x;U%%ENkTB5BK!#6f`+6@7&uo3egh4|=%fGu diff --git a/scripts/setup_map_structure.py b/scripts/setup_map_structure.py new file mode 100644 index 000000000..8b6c1061d --- /dev/null +++ b/scripts/setup_map_structure.py @@ -0,0 +1,129 @@ +#!/usr/bin/env python3 +""" +šŸ—ŗļø COMPLETE GAME MAP STRUCTURE SETUP +Creates all map folders for DolinaSmrti locations +""" + +from pathlib import Path + +REPO = Path("/Users/davidkotnik/repos/novafarma") +MAPS = REPO / "maps" + +# All game locations +GAME_MAPS = { + # Core locations + "01_base_farm": "Main farm base - player's home", + "02_town_square": "Central town area - NPCs, shops", + "03_dark_forest": "Starting exploration zone", + + # Seasonal farms + "farms": { + "farm_spring": "Spring seasonal farm", + "farm_summer": "Summer seasonal farm", + "farm_autumn": "Autumn seasonal farm", + "farm_winter": "Winter seasonal farm" + }, + + # Resource zones + "resources": { + "mine_copper": "Copper mine - early game", + "mine_iron": "Iron mine - mid game", + "mine_gold": "Gold mine - late game", + "mine_crystal": "Crystal cavern - special resources", + "quarry": "Stone quarry", + "lumber_camp": "Logging area" + }, + + # Story locations + "story": { + "abandoned_factory": "Main story location", + "nuclear_zone": "Hazmat area", + "underground_lab": "Secret research facility", + "military_base": "Abandoned military outpost" + }, + + # Special zones + "special": { + "greenhouse": "Year-round farming", + "barn": "Animal housing", + "workshop": "Crafting station", + "storage": "Item storage building" + }, + + # Anomalous zones (already have assets in biomi/) + "anomalous": { + "dino_valley": "Dinosaur zone", + "mythical_highlands": "Mythical creatures", + "atlantis_depths": "Underwater ruins", + "chernobyl_wasteland": "Radioactive zone", + "egyptian_tombs": "Ancient pyramids", + "endless_forest": "Magical forest", + "catacombs": "Undead crypts", + "volcanic_wastes": "Lava fields" + } +} + +print("="*70) +print("šŸ—ŗļø COMPLETE GAME MAP STRUCTURE SETUP") +print("="*70) + +# Create base maps directory +MAPS.mkdir(exist_ok=True) +print(f"\nāœ… Base maps/ directory ready\n") + +total_created = 0 + +# Core maps +print("šŸ“ CORE LOCATIONS:") +for map_id, description in [(k, v) for k, v in GAME_MAPS.items() if isinstance(v, str)]: + map_dir = MAPS / map_id + if not map_dir.exists(): + map_dir.mkdir(parents=True) + print(f" āœ… Created {map_id}/ - {description}") + total_created += 1 + else: + print(f" āœ“ {map_id}/ - {description}") + +# Category maps (farms, resources, etc.) +for category, maps_dict in [(k, v) for k, v in GAME_MAPS.items() if isinstance(v, dict)]: + print(f"\nšŸ“‚ {category.upper()}:") + category_dir = MAPS / category + category_dir.mkdir(exist_ok=True) + + for map_id, description in maps_dict.items(): + map_dir = category_dir / map_id + if not map_dir.exists(): + map_dir.mkdir(parents=True) + print(f" āœ… Created {category}/{map_id}/ - {description}") + total_created += 1 + else: + print(f" āœ“ {category}/{map_id}/ - {description}") + +print("\n" + "="*70) +print("āœ… MAP STRUCTURE COMPLETE!") +print("="*70) + +# Count total +all_maps = [] +for item in MAPS.glob("**/"): + if item != MAPS and not item.name.startswith('.'): + all_maps.append(item) + +print(f"\nšŸ“Š Total map folders: {len(all_maps)}") +print(f"šŸ†• Newly created: {total_created}") + +print("\nšŸ—‚ļø STRUCTURE:") +print(f" maps/") +print(f" ā”œā”€ā”€ demo_project/ (Kickstarter demo)") +print(f" ā”œā”€ā”€ demo_whitebg/ (Demo assets)") +print(f" ā”œā”€ā”€ 01_base_farm/ (Core)") +print(f" ā”œā”€ā”€ 02_town_square/ (Core)") +print(f" ā”œā”€ā”€ 03_dark_forest/ (Core)") +print(f" ā”œā”€ā”€ farms/ (4 seasonal farms)") +print(f" ā”œā”€ā”€ resources/ (6 resource zones)") +print(f" ā”œā”€ā”€ story/ (4 story locations)") +print(f" ā”œā”€ā”€ special/ (4 special buildings)") +print(f" └── anomalous/ (8 anomalous zones)") + +print("\nšŸŽ® READY FOR MAP CREATION!") +print(" Each folder is ready for .tmx Tiled map files")