chore(sites): small cleanups and brief alignment
Drop a dead initial value in PlayableBoundsRule, guard DiveSite.configure() when called before the node is in the tree, and align the zone 1 brief with what was built: generic dive_site.tscn, the resolved collision check, and the graybox shader deviation. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
4470450dfd
commit
d1a94f05b1
3 files changed
+14
-4
No files matched your search
@@ -51,7 +51,9 @@ négatif. Si c'est confirmé, la collision actuelle est le terrain visuel
|
||||
retourné avant/arrière, et le sonar scanne la collision, pas le maillage. Les
|
||||
tests d'intégration ne le détecteraient pas (ils comptent des échantillons,
|
||||
pas une forme). Le nouvel acteur terrain doit avoir un test qui compare
|
||||
hauteur visuelle et hauteur de collision en quelques points.
|
||||
hauteur visuelle et hauteur de collision en quelques points. Résolu : l'acteur
|
||||
terrain compare collision et champ de hauteur dans
|
||||
`tests/integration/run_site_terrain_integration.gd`.
|
||||
|
||||
## 3. Partis pris de réalisme
|
||||
|
||||
@@ -241,6 +243,11 @@ de contacts existant les sépare du fond.
|
||||
- Brouillard, lumière directionnelle et particules de la scène de test
|
||||
actuelle sont conservés et réglés par site.
|
||||
|
||||
**Écart d'implémentation (graybox)** : le shader livré n'est pas triplanaire.
|
||||
Il mélange sable et roche par la pente à partir de 20° (sable sous 20°, roche
|
||||
au-dessus de 40°, fondu entre ; le matériau sonar bascule à 20°) et rend les
|
||||
rides par modulation d'albédo, sans normal map. À revoir en tranche 6.
|
||||
|
||||
## 8. Architecture proposée
|
||||
|
||||
| Couche | Élément | Responsabilité |
|
||||
@@ -249,7 +256,7 @@ de contacts existant les sépare du fond.
|
||||
| `game/domain/sites/` | `TerrainHeightField` (RefCounted pur) | lecture de hauteur et de matériau à une position, conversion monde ↔ cellule, bornes ; testable sans scène |
|
||||
| `game/application/sites/` | `PlayableBoundsRule` | « hors zone » comme résultat typé depuis la télémétrie ; émet un avertissement, jamais un mur |
|
||||
| `game/world/sites/` | `BathymetricTerrainActor` | construit tuiles, collision et matériau depuis la définition ; expose matériau sonar par position |
|
||||
| `game/world/sites/` | `dive_site_zone1.tscn` | scène du site : terrain, environnement, points d'injection pour épaves et navire |
|
||||
| `game/world/sites/` | `dive_site.tscn` (générique, configurée par une `DiveSiteDefinition`) | scène de site : terrain, environnement, points d'injection pour épaves et navire |
|
||||
| `game/composition/` | câblage | charge la définition, instancie le site, injecte la règle de bornes |
|
||||
| `content/sites/` | `zone1_vigilant.tres` + `zone1_vigilant_terrain.res` | données du site |
|
||||
| `tools/` (hors runtime) | script de cuisson | produit le `.res` depuis une description de primitives géomorphologiques ; déterministe, versionné, jamais appelé par le jeu |
|
||||
@@ -302,7 +309,8 @@ petite définition de site (fixture) comme le ferait le vrai site.
|
||||
2. `BathymetricTerrainActor` avec tuiles, collision et matériau sonar par
|
||||
position ; migration de l'environnement de test sur une fixture.
|
||||
3. Script de cuisson et première cuisson du Banc du Vigilant (graybox) ;
|
||||
bornes jouables ; scène `dive_site_zone1.tscn`.
|
||||
bornes jouables ; scène générique `dive_site.tscn` configurée par une
|
||||
`DiveSiteDefinition`.
|
||||
4. Shader triplanaire et props bornés.
|
||||
5. Points d'injection pour les trois épaves et le navire (les épaves
|
||||
elles-mêmes appartiennent au reste de la tranche 3).
|
||||
|
||||
Reference in new issue
Block a user