# 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.