warfactoryracine/src/modules/map/CLAUDE.md
StillHammer 076acd4812 Refactor map system and clarify meteorite impact physics
- 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>
2025-09-30 19:00:36 +08:00

78 lines
2.7 KiB
Markdown

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