101 lines
5.9 KiB
Markdown
101 lines
5.9 KiB
Markdown
# beta.046 — ciel dessiné, bateau à poule, zoom et identité de l’application
|
||
|
||
## 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
|
||
n’est 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 l’identité 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 l’eau, 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 l’accé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.
|
||
|
||
L’aptitude 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 n’est jamais
|
||
réécrit dans les options. Le panoramique natif conserve ses six faces à 90°.
|
||
Aucun objet caméra n’est 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 l’icône officielle via le chargement SDL
|
||
natif de Minecraft sur Windows, Linux et macOS ; les métadonnées SDL et le
|
||
modèle d’instance Prism portent aussi le nom Sanctuary. L’icône d’une application
|
||
tierce comme le lanceur Prism n’est 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é à l’identifiant du ciel. Le reçu joueur additif
|
||
sanctuary:constellation_xp_paid est sauvegardé avec l’XP, 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 d’annulation d’une 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 l’achat 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 l’ordre des passagers :
|
||
Minecraft replace nativement le joueur devant la poule à l’embarquement.
|
||
L’assertion 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`.
|