130 lines
4.1 KiB
Python
130 lines
4.1 KiB
Python
#!/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")
|