# World Generation Module

**Responsabilité** : Génération procédurale de la WorldMap avec biomes et features géographiques.

## Description

Ce module génère la carte mondiale diplomatique/stratégique en utilisant des algorithmes procéduraux configurables. Il gère les biomes, le terrain, et les features géographiques selon les configurations définies dans gameData/.

## Architecture

### Interface
- **WorldGenerationModule** : Hérite d'IModule
- **GMap** : Structure de données pour stocker la worldmap en mémoire
- **Configuration** : Via const IDataNode& depuis gameData/

### Données de Configuration
- `gameData/WorldGeneration/` - Algorithmes et paramètres génération
- `gameData/Biomes/` - Définitions des biomes
- `gameData/Terrain/` - Types de terrain disponibles
- `gameData/MapFeatures/` - Features géographiques (montagnes, rivières, etc.)

### Format JSON
```json
{
  "world_map": {
    "size": {"width": 1000, "height": 1000},
    "tiles": [
      {"x": 0, "y": 0, "terrain": "plains", "biome": "temperate", "elevation": 100}
    ],
    "features": [
      {"type": "river", "coordinates": [[x1,y1], [x2,y2]]}
    ]
  }
}
```

## Contraintes Modules
- **200-300 lignes max** pour logique métier
- **JSON uniquement** pour communication
- **Hot-reload ready** avec getState()/setState()
- **Autonome** : `cd src/modules/world-generation/ && cmake .`

## Build Commands
```bash
cd src/modules/world-generation/
cmake .                         # Configuration
make world-generation           # Build .so library
make world-generation-test      # Build standalone test
./build/bin/world-generation-test  # Test standalone
```

## Dependencies
- nlohmann/json pour JSON processing
- Core interfaces (IModule, IDataNode) depuis ../../core/include

## Hot-Reload
Le module préserve l'état de la map générée à travers les reloads via getState()/setState().