# Map Module

**Responsabilité**: Structures de données pour cartes, régions et tiles du système de génération de monde.

## Description

Ce module contient les structures de données fondamentales pour la représentation géographique du monde : cartes, tiles, régions et leur gestion. Conçu pour être utilisé par les modules de génération de monde et autres systèmes nécessitant des données géographiques.

## Structures Incluses

### Core Map Data
- **GMap**: Structure principale de carte avec dimensions et données de tiles
- **GTile**: Représentation d'une tile individuelle avec propriétés géographiques
- **IRegion**: Interface pour toutes les régions géographiques

### Region Management
- **RegionManager**: Gestionnaire pour collections de régions avec opérations spatiales
- **ResourceRegion**: Région spécialisée pour dépôts de ressources minérales

## Architecture

### Interfaces
- **IRegion**: Interface commune pour tous types de régions
  - Position (x, y)
  - Masse/influence
  - Type de région
  - Opérations de fusion

### Types de Régions
- **ResourceRegion**: Dépôts minéraux avec mapping ressource → quantité
- **TectonicRegion**: Plaques tectoniques (dans world-generation-realist)
- **ClimateRegion**: Zones climatiques (dans world-generation-realist)

## Utilisation

### Dans world-generation-realist
```cpp
#include "map/GMap.h"
#include "map/ResourceRegion.h"

// Génération de carte
GMap heightmap(width, height);

// Création de régions de ressources
ResourceRegion iron_deposit("iron_ore", x, y, total_mass);
```

### Duck Typing Support
Toutes les régions supportent l'interface duck typing pour UniversalRegionFusionFunction:
- `std::string getNameType() const`
- `float getX() const, float getY() const`
- `float getMass() const`
- `void setPosition(float x, float y)`
- `void addMass(float mass)`

## Contraintes Modules
- **Header-only**: Pas d'implémentations .cpp (structures de données simples)
- **Template-friendly**: Compatible avec les templates C++ pour type safety
- **Autonomous**: Pas de dépendances externes aux interfaces core
- **Hot-reload compatible**: Structures sérialisables

## Build System

### Commands
```bash
cd src/modules/map/
cmake .                    # Configuration autonome
make warfactory-map-module # Build module (headers only)
```

### Dependencies
- **Core**: Aucune dépendance core/ requise
- **Standards**: C++20 pour features modernes
- **Compatibility**: Utilisable par tous autres modules

---

**État actuel**: Module créé avec structures de données déplacées depuis world-generation-realist. Fichiers .cpp inclus dans build system.