- Create header-only map module with clean separation of concerns - Move GMap, GTile, RegionManager to dedicated map module - Remove volcanic/impact methods from GMap (wrong responsibilities) - Add fragmentation specification to MeteoriteImpact::calculateImpactRadius() - Define heat conservation formula for MeteoriteImpact::calculateHeatGeneration() - Clean world-generation-realist includes and dependencies - Add comprehensive implementation analysis report 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2.7 KiB
2.7 KiB
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
#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() constfloat getX() const, float getY() constfloat getMass() constvoid 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
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.