Record Sanctuary sources through beta.060 and Git validation
Build Sanctuary / build (push) Canceled after 0s

This commit is contained in:
koka
2026-09-15 09:29:11 +02:00
parent 1490fb2a80
commit e13f3cc1b8
1372 changed files with 92055 additions and 212 deletions
+100
View File
@@ -0,0 +1,100 @@
# beta.046 — ciel dessiné, bateau à poule, zoom et identité de lapplication
## Gestes et règles
Longue-vue en main principale ou secondaire, en première personne : un clic
gauche sur une étoile choisit l’étoile mère, puis un clic gauche sur une autre
étoile ajoute un trait depuis la précédente, pour trois niveaux. Aucun zoom
nest requis. Clic droit annule la dernière liaison de cette constellation ;
Maj + clic gauche choisit une autre étoile mère. La suppression est gratuite,
sans remboursement. Chacun peut retirer ses propres traits. Les étoiles qui
portent les accomplissements restent intactes. Tous les habitants voient le dessin.
La couleur est tirée de manière déterministe depuis lidentité de l’étoile mère,
dans une palette de 64 teintes : elle reste stable après annulation, reconnexion
et redémarrage. Les traits suivent la même rotation hebdomadaire que les étoiles.
La géométrie GPU est conservée entre les images et passe dans le rendu natif
des étoiles, avec au plus 64 groupes de couleur ; aucune reconstruction quand
on tourne la caméra. Les moteurs de shaders externes ne sont pas certifiés ici.
Une poule vivante embarquée avec le joueur permet de voler en bateau : Espace
monte, relâcher descend. Le joueur pilote même si la poule est montée en premier.
Montée et descente visent chacune cinq blocs/seconde, avec une accélération
progressive. Au retour sur leau, relâcher laisse fonctionner la flottabilité.
Les collisions et les dégâts restent natifs ; le vol remet à zéro la distance
de chute. Sans poule ou sans pilote, la physique native reprend.
Les paramètres serveur config/sanctuary/chicken-boat.json expriment les vitesses
et laccélération en blocs/tick ; ils sont synchronisés avec les clients.
Le contrôle natif de vol du véhicule reconnaît ce cas sans activer Allow Flight
pour les autres véhicules.
Laptitude Zoom coûte quatre niveaux. C est sa touche initiale,
reconfigurable ; en la maintenant, la molette règle le FOV de 5° à 110°
(Quake Pro). Relâcher restaure immédiatement le FOV normal, qui nest jamais
réécrit dans les options. Le panoramique natif conserve ses six faces à 90°.
Aucun objet caméra nest ajouté.
Les dix aptitudes portent désormais les icônes PNG 9 × 9 fournies par le
créateur, placées à gauche de leur titre. Les titres longs passent à la ligne
dans la colonne. Les fichiers sont copiés sans retouche dans le mod et le
resource pack, sous assets/sanctuary/textures/gui/aptitudes/. Familiarpower
illustre le pouvoir actif ; Familiar illustre l’étude des familiers.
Le titre de fenêtre devient Sanctuary - beta.046, y compris après connexion
ou déconnexion. La fenêtre utilise licône officielle via le chargement SDL
natif de Minecraft sur Windows, Linux et macOS ; les métadonnées SDL et le
modèle dinstance Prism portent aussi le nom Sanctuary. Licône dune application
tierce comme le lanceur Prism nest pas remplacée.
## Données et compatibilité
Les étoiles existantes gardent leur journal intact. Un journal distinct
data/sanctuary-constellations.json, schéma 1, conserve les ajouts payés et les
annulations, lié à lidentifiant du ciel. Le reçu joueur additif
sanctuary:constellation_xp_paid est sauvegardé avec lXP, copié à la mort, et
réconcilié avant le reset New Game+ pour éviter un deuxième débit après arrêt.
Un fichier invalide est conservé et ses mutations sont refusées.
Le zoom utilise le booléen persistant additif sanctuary:zoom_learned, absent
donc faux avant achat, copié à la mort et conservé par le New Game+.
Aucune réécriture des historiques de progression ni modification du terrain.
Les nouveaux paquets ont des identifiants sanctuary:*_v1 distincts.
Les factions et leur migration sont décrites dans
[faction-two-slots-beta046.md](faction-two-slots-beta046.md).
## Vérifications et livraison
Le parcours client natif passe sur macOS : achat réel du zoom, verrouillage
avant achat, projection mesurée à 5° et 110°, restauration au relâchement,
clics de création et dannulation dune liaison, dépense de trois niveaux,
vol continu après embarquement de la poule, montée et descente mesurées.
Le titre de fenêtre et les métadonnées SDL sont contrôlés au menu et en jeu.
Les captures de jeu et du défilement des dix icônes FR/EN sont conservées
dans `build/beta046-evidence/`.
Les 20 GameTests serveur ciblés passent, dont quatre nouveaux scénarios sur
les liaisons, la récupération après arrêt, le bateau et lachat du zoom.
Ils vérifient les droits du propriétaire, les refus sans XP, les doublons,
la conservation à la mort et au prestige et les fichiers invalides préservés.
Le premier essai avait une assertion incorrecte sur lordre des passagers :
Minecraft replace nativement le joueur devant la poule à lembarquement.
Lassertion a été corrigée sans changer la physique validée dans le client.
Commandes reproductibles avec Java 25 :
```sh
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true -PsanctuaryQuickTests=true -PsanctuarySkyFlightClientTests=true -PsanctuaryClientNoVsync=true
./gradlew check build assemblePack assembleTestPack -PsanctuaryFocusedTests=cycle,operator,skyflight
```
`sanctuaryClientNoVsync` contourne un blocage de présentation SDL/OpenGL du
client automatisé. Ce mixin existe uniquement dans les tests, sans changer
les réglages du pack livré. La validation graphique Windows/Linux, le Dock
macOS et les moteurs de shaders tiers restent à effectuer.
`check build assemblePack assembleTestPack` passe avec la version finale.
Les deux MRpacks sont vérifiés contre les 1 503 classes compilées, les ressources
et les JAR imbriqués ; les dix icônes correspondent exactement aux originaux.
Les exports et leurs empreintes sont consignés dans [Distribution](packwiz.md).
Logs : `build/beta046-delivery.log` et `build/beta046-client.log`.
Reçu : `build/beta046-artifact.json`.