97 lines
5.1 KiB
Markdown
97 lines
5.1 KiB
Markdown
# beta.058 — altitude de la carte
|
|
|
|
Ticket `codex/atlas-altitude-beta058`.
|
|
|
|
## Contrat avant implémentation
|
|
|
|
Deux boutons ↑ / ↓ sous Recentrer et le zoom choisissent les plafonds
|
|
0, 140, 280, 420, 560 et 640. La carte ouvre à 640 (surface habituelle) ;
|
|
chaque plafond montre le premier bloc coloré situé à cette altitude ou plus
|
|
bas. C'est une coupe horizontale : une roche coupée reste visible, sans
|
|
chercher automatiquement une grotte. Le dernier pas fait 80 blocs.
|
|
La position et le zoom ne changent pas. Les extrémités désactivent leur bouton.
|
|
Chunks et Demeure sont désactivés par défaut, réactivables par leurs boutons.
|
|
Le cadre central et ses quatre panneaux assombris sont retirés. Le nord
|
|
conserve son emplacement.
|
|
|
|
Les relevés restent personnels et utilisent le même masque d'exploration
|
|
horizontal qu'auparavant. Les six plafonds sont relevés lors des nouvelles
|
|
visites, même avant l'achat de Grande carte. Aucun chunk distant n'est chargé
|
|
ou généré. La vue opérateur inspecte seulement les chunks chargés et n'inscrit
|
|
pas ses consultations dans les découvertes personnelles.
|
|
|
|
## Contrat de données additif
|
|
|
|
Le fichier existant `data/sanctuary-atlas/<UUID>.json` et son schéma 2 restent
|
|
la référence de la surface à 640. Aucune conversion ni réinterprétation des
|
|
anciens pixels. Les cinq autres plafonds utilisent le même format dans des
|
|
fichiers distincts `data/sanctuary-atlas/layers/<UUID>/<altitude>.json`.
|
|
Les anciens relevés de surface ne permettent pas d'inventer leurs couleurs
|
|
inférieures : ces dernières apparaissent lors des revisites. Un retour à
|
|
beta.057 ignore simplement les fichiers supplémentaires ; la surface reste
|
|
lisible. Aucun monde personnel n'est ouvert ou modifié pendant le travail.
|
|
|
|
Chaque plafond conserve la limite de 16 384 chunks. Le client ne garde que
|
|
la couche affichée ; le token réseau change avec l'altitude, empêchant les
|
|
anciens paquets de repeindre une autre couche. Le protocole `atlas_request`
|
|
ajoute un plafond validé : client et serveur doivent avoir la même version.
|
|
Le serveur relève un chunk à la fois et saute les sections entièrement vides.
|
|
Les sauvegardes périodiques des couches sont étalées dans le temps.
|
|
|
|
## Vérifications
|
|
|
|
Le parcours natif `Atlas058ClientChecks` réussit sur la version finale en **1 min 44 s**, avec un
|
|
vrai monde de développement Sanctuary de 640 blocs de haut :
|
|
|
|
- couleurs différentes aux six plafonds, coupe inclusive, verre transparent,
|
|
colonne vide, accord entre le relevé d'une couche et celui des six couches ;
|
|
- absence de chargement d'un chunk distant et masque d'exploration conservé ;
|
|
- clics réels sur les boutons, limites 0/640, changement rapide, rejet des
|
|
anciens paquets terrain et Demeure, cadrage/zoom stables après rafraîchissement ;
|
|
- relecture des six fichiers, absence de réécriture quand rien ne change,
|
|
achat de Grande carte après relevé, refus d'une requête opérateur non autorisée ;
|
|
- codec réseau, refus des altitudes invalides, libellés FR/EN, petite interface ;
|
|
- Chunks/Demeure désactivés à l'ouverture mais réactivables, absence du cadre
|
|
assombri et emplacement du nord conservé (captures inspectées).
|
|
|
|
Commande :
|
|
|
|
```sh
|
|
./gradlew :sanctuary:runClientGameTest -x :sanctuary:runGameTest \
|
|
-PsanctuaryClientTests=true -PsanctuaryAtlas058ClientTests=true \
|
|
-PsanctuaryQuickTests=true
|
|
```
|
|
|
|
Journal : `build/atlas058-client.log`, marqueur `ATLAS058_PASS`.
|
|
Captures inspectées : `build/atlas058-evidence/`.
|
|
|
|
Le brouillard reste horizontal, comme dans les cartes existantes : ce lot
|
|
n'introduit pas de visibilité optique ni de journal de découverte par caverne.
|
|
Demeure reste une empreinte de chunk, sans séparation verticale des bâtiments.
|
|
Au plafond maximal, les pixels de surface restent compatibles ; les anciens
|
|
parcours ne sont pas reconstruits aux autres altitudes sans revisite.
|
|
La charge d'un serveur rempli pendant une saison n'a pas été mesurée. Le
|
|
plafond théorique est de 24 Mio de couleurs brutes par joueur pour six couches
|
|
pleines, hors index et sérialisation, contre 4 Mio pour la surface seule.
|
|
Chaque fichier reste borné à 12 Mio ; un fichier invalide est préservé et
|
|
suspend l'atlas du joueur concerné. Les sauvegardes tournent sur les six
|
|
couches toutes les 12 secondes, puis sont vidées à la déconnexion/fermeture.
|
|
Aucun serveur dédié démarré, aucune EULA acceptée.
|
|
|
|
|
|
## Livraison vérifiée
|
|
|
|
`check build assemblePack assembleTestPack`, avec compilation des tests client
|
|
et exclusion du serveur dédié `runGameTest`, réussit en **2 min 23 s**
|
|
(`build/atlas058-check.log`). 1 601 classes du JAR correspondent au build.
|
|
ZIP, versions, ressources, isolation du mod de test et JAR embarqués contrôlés.
|
|
JEI et le code Demeure sont inchangés. Les archives beta.057 restent intactes.
|
|
|
|
- Pack normal : `build/Sanctuary-beta.058.mrpack`, 5627223 octets ;
|
|
SHA-256 `bc9af60be020fd32f99a173638e9006cab128cf942df666e34e03824bac6f892`.
|
|
- Pack de test : `build/Sanctuary-Test-beta.058.mrpack`, 5646157 octets ;
|
|
SHA-256 `010eb08df83117669d2f13d3c2e8641c965fac3ddec11fbab419f01a9cb94942`.
|
|
- Reçu : `build/atlas058-artifact.json`.
|
|
|
|
Aucune publication de canal ni synchronisation d'instance personnelle.
|