# Mordodak Godot

Base Godot 3D pour `Mordodak`, construite avec :

- `Godot 3.6.2`
- assets 3D sources produits avec `Blender`
- exports `.glb` importables directement dans Godot

## Structure

- `index.html` : lanceur direct ouvrable depuis le disque
- `project.godot` : configuration du projet
- `scenes/Main.tscn` : scene principale
- `scenes/modules/*.tscn` : modules de salle separes ally/enemy/upgrade/parts/boss
- `scripts/Main.gd` : generation du silo et HUD
- `scripts/Player.gd` : controle joueur FPS/TPS
- `assets/source/mordodak_assets.blend` : source Blender
- `assets/source/mordodak_mech_template.blend` : meka utilisateur, modifiable sans ecrasement
- `assets/source/mordodak_mech_generated.blend` : meka genere automatiquement
- `assets/source/mordodak_silo_segment_template.blend` : segment utilisateur, modifiable sans ecrasement
- `assets/source/mordodak_silo_segment_generated.blend` : segment genere automatiquement
- `assets/source/mordodak_room_template.blend` : salle utilisateur, modifiable sans ecrasement
- `assets/source/mordodak_room_generated.blend` : salle generee automatiquement
- `assets/source/mordodak_prop_template.blend` : prop utilisateur, modifiable sans ecrasement
- `assets/source/mordodak_prop_generated.blend` : prop genere automatiquement
- `assets/source/mordodak_silo_level_template.blend` : niveau de base utilisateur, modifiable sans ecrasement
- `assets/source/mordodak_silo_level_generated.blend` : niveau de base genere automatiquement par script
- `assets/models/*.glb` : exports utilises par Godot
- `export_presets.cfg` : preset HTML5

## Structure des etages

Chaque etage utilise maintenant un seul bloc de base :

- `assets/models/mordodak_silo_level.glb`

Ce bloc est repete sur chaque etage, puis `scripts/Main.gd` ajoute par-dessus :

- les variations de salles
- les portes colorees selon le type
- les modules Godot de salle
- les ennemis / boss par etage

Le fichier Blender a modifier a la main pour changer la base commune d'un etage est :

- `assets/source/mordodak_silo_level_template.blend`

Le fichier genere automatiquement par script est :

- `assets/source/mordodak_silo_level_generated.blend`

Si des objets du `.blend` portent des noms commencant par :

- `SiloLevel_RoomPlaceholder`

alors `Main.gd` essaie de s'en servir comme points d'ancrage prioritaires pour poser les modules de salle.
Sinon, il retombe sur le placement procedural actuel.

## Controles

- `A/D` ou fleches : tourner autour de l'anneau
- `E` : interaction / validation de salle
- `Clic gauche` ou `Espace` : tir
- `Clic droit` ou `F` : melee
- `V` : bascule FPS/TPS
- `Echap` : liberer la souris

## Regeneration des assets Blender

```bash
/snap/bin/blender --background --python /home/vaga/VA-DEV/tools/blender/create_mordodak_assets.py
```

Le generateur n'ecrase plus les fichiers `*_template.blend`.
Il produit maintenant des fichiers `*_generated.blend` et des `.glb` `*_generated.glb`.

Pour exporter tes fichiers utilisateur vers les `.glb` utilises par Godot :

```bash
/snap/bin/blender --background --python /home/vaga/VA-DEV/tools/blender/export_user_assets.py
```

Le jeu charge toujours :

- `assets/models/mordodak_mech.glb`
- `assets/models/mordodak_silo_segment.glb`
- `assets/models/mordodak_silo_level.glb`

## Export HTML5

Le preset HTML5 est deja configure dans `export_presets.cfg`.

Tant que la build Godot HTML n'est pas exportee, ouvrir `index.html` lancera automatiquement la version web jouable de secours situee dans `../Mordodak/index.html`.
Une fois l'export Godot cree dans `build/web/index.html`, ce meme `index.html` basculera vers la build Godot.

Sur une session avec un vrai affichage X11, lancer :

```bash
HOME=/home/vaga/VA-DEV \
XDG_DATA_HOME=/home/vaga/VA-DEV/.local/share \
XDG_CONFIG_HOME=/home/vaga/VA-DEV/.config \
/home/vaga/VA-DEV/tools/godot3/Godot_v3.6.2-stable_x11.64 \
  --path /home/vaga/VA-DEV/Mordodak_Godot \
  --export "HTML5" /home/vaga/VA-DEV/Mordodak_Godot/build/web/index.html
```

Les templates web officiels doivent deja etre presents dans :

- `/home/vaga/VA-DEV/tools/godot3/templates_extracted/templates/webassembly_debug.zip`
- `/home/vaga/VA-DEV/tools/godot3/templates_extracted/templates/webassembly_release.zip`
