154 lines
9.7 KiB
Markdown
154 lines
9.7 KiB
Markdown
# beta.018 — cases de familier, cape et cosmétique de tête
|
||
|
||
Ticket du 13 septembre 2026, branche `codex/companions-cosmetics-beta018`.
|
||
Contrat écrit avant les changements de stockage. Référence 26.2 consultée en
|
||
lecture seule ; aucun pouvoir passif ou actif de familier n'est porté ici,
|
||
sur décision explicite du créateur. Leur validation aura son ticket dédié.
|
||
|
||
## Interface et objets
|
||
|
||
L'en-tête de l'inventaire indique uniquement Inventaire / Inventory, sans
|
||
compteur de rangées. La capacité reste lisible dans Progression et par les cases.
|
||
Trois cases d'équipement distinctes rejoignent le panneau personnel, toujours
|
||
disponibles : un œuf de familier, une cape, un objet cosmétique sur la tête.
|
||
Chaque case contient un vrai objet, limité à une unité. Les clics et Maj-clics
|
||
utilisent les menus synchronisés et respectent les rangées débloquées.
|
||
De haut en bas : cosmétique de tête, cape, œuf de familier, main secondaire.
|
||
Cet ordre est visuel ; les identifiants de stockage familier/cape/tête restent fixes.
|
||
Maj-clic équipe automatiquement œufs et capes ; le cosmétique se place à la main.
|
||
Le tri et le changement de hotbar ne déplacent pas cet équipement.
|
||
Maj + clic gauche maintenu permet de parcourir les cases et d’exécuter leur
|
||
Maj-clic natif successivement. Le geste part d’une case avec le curseur vide ;
|
||
chaque case est visitée une seule fois, y compris lors d’un mouvement rapide.
|
||
Relâcher le clic ou Maj termine le geste. Coffres, fours et autres conteneurs
|
||
gardent leurs destinations et restrictions natives. Le catalogue créatif garde
|
||
ses gestes d’origine ; l’inventaire personnel Sanctuary utilise ce raccourci.
|
||
La touche de rangée fonctionne également en jeu sans écran : Tab avance,
|
||
Maj + Tab recule. Elle reste configurable et garde la même sélection de rangée
|
||
à la réouverture de l’inventaire. Seules les rangées débloquées sont parcourues.
|
||
Une commutation interrompt l’utilisation de l’objet tenu, comme un changement
|
||
de case de hotbar natif, et reste validée par le serveur.
|
||
Les trois PNG fournis dans `../textures/{egg,cape,cosmetics}.png` sont copiés sans
|
||
retouche dans le mod et dans les sources du resource pack.
|
||
|
||
Un œuf d'apparition de mob équipé fait apparaître un petit compagnon temporaire
|
||
qui se déplace réellement : navigation autour des obstacles, promenade proche
|
||
et téléportation vers une place libre s'il est trop loin ou bloqué. Le suivi par
|
||
apparition à côté du joueur de la 26.2 est remplacé. Le retirer le fait disparaître.
|
||
Il est invincible et ne collisionne pas avec les autres entités. Le clic droit
|
||
du propriétaire le caresse et émet des particules aux couleurs de son œuf.
|
||
Une entité de familier dédiée utilise l'apparence du mob, afin de ne pas hériter
|
||
de ses attaques ou comportements destructeurs. Les animations restent visuelles.
|
||
Le familier n'est pas une source renouvelable de butin, d'XP ou de produits.
|
||
Ses pouvoirs ne sont pas activés. Les œufs natifs restent disponibles pour les
|
||
tests opérateur ; leur acquisition en survie n'est pas inventée dans ce ticket.
|
||
|
||
`sanctuary:zero_cape` est une première cape de test, libellée Cape Zéro / Zero Cape,
|
||
avec un visuel provisoire trouvé en ligne et une provenance documentée. Elle se
|
||
teste depuis le créatif ou `/give`. Elle utilise le mouvement de cape natif ;
|
||
elle ne modifie ni les élytres ni le compte Minecraft.
|
||
|
||
Le cosmétique accepte tout objet/bloc. Il ne remplace pas le casque serveur et
|
||
ne donne ni protection, ni effet, ni déclenchement d'objet. Les propriétés d'état
|
||
de bloc sont utilisées pour le rendu lorsque possible. Un piston porté sur la
|
||
tête s'étend brièvement quand le joueur reçoit des dégâts, uniquement en rendu :
|
||
aucun bloc placé ou déplacé, aucun signal de redstone.
|
||
|
||
## Sauvegarde, mort et New Game+
|
||
|
||
Ajout d'un champ joueur `sanctuary:accessories`, schéma 1, contenant trois piles
|
||
optionnelles dans l'ordre familier/cape/tête. Un ancien joueur beta.017 commence
|
||
avec trois cases vides ; aucun déplacement ni changement des 54 cases existantes,
|
||
du journal de progression ou de cycle. Les données inconnues/corrompues sont
|
||
conservées et rendues non modifiables, sans remplacement silencieux.
|
||
|
||
Les objets suivent la mort native : ils tombent si keepInventory est désactivé,
|
||
sont conservés sinon. Le New Game+ les garde comme le reste de l'inventaire.
|
||
La créature temporaire n'est jamais sauvegardée dans les chunks ; elle est
|
||
recréée depuis l'œuf après reconnexion/changement de dimension, sans doublon.
|
||
Les apparences cape/tête sont synchronisées par le serveur aux observateurs,
|
||
y compris lors de l'arrivée d'un nouveau joueur. Aucun bonus serveur ne dépend
|
||
de ces apparences. Nouveau contrat réseau `sanctuary:accessories_v1` : client et
|
||
serveur beta.018 ensemble. Aucun monde personnel ou installation n'est modifié.
|
||
|
||
## S’allonger et se reposer
|
||
|
||
W est un geste de base gratuit. S’allonger disparaît des aptitudes achetables.
|
||
Maj + W conserve le déblocage Se reposer et son coût. Le repos utilise le rendu
|
||
natif de sommeil au lit, orienté selon le joueur, distinct de la posture mobile.
|
||
Il ne déclenche pas le sommeil serveur, ne fixe pas de point de réapparition et
|
||
ne fait pas avancer le temps. Les anciens champs et preuves d’achat `lying`
|
||
sont conservés pour lire les sauvegardes beta.017 ; aucun nouvel achat n’est
|
||
accepté et `lyingCost` devient un champ historique sans effet.
|
||
|
||
## Validation
|
||
|
||
### Sélections de minage et de construction
|
||
|
||
Le retour d’essai ajouté pendant ce ticket fixe le groupe au premier clic
|
||
maintenu avec R. Le client conserve l’origine, les cases et le palier ; le
|
||
serveur valide la visée au démarrage puis poursuit le même travail sans exiger
|
||
de regarder encore l’origine. Tourner la caméra ou bouger en restant à portée
|
||
ne remet pas la charge à zéro. La construction garde son plan, sa face et ses
|
||
directions de pose initiales, y compris pour les escaliers. Le contexte de pose
|
||
est figé sans modifier la caméra ou la position réelle du joueur.
|
||
|
||
La molette règle le palier avant le clic. Pendant le maintien, le groupe reste
|
||
fixe, même après sa fin : il faut relâcher avant d’en choisir un autre. Les
|
||
interruptions par changement d’outil, portée, menu, mort, droits, matériaux ou
|
||
perte de maintien restent actives. Les interactions natives, durées, coûts et
|
||
limites de blocs restent inchangés. Aucun nouveau format de sauvegarde ou paquet
|
||
réseau n’est introduit pour ce verrouillage ; son état est temporaire.
|
||
|
||
### Parcours client
|
||
|
||
Le parcours automatisé du client Minecraft 26.3-pre-2, sur un monde de
|
||
développement neuf de graine 42, passe avec le vrai clavier et la vraie souris :
|
||
|
||
- Emplacements synchronisés et ordre visuel, inventaire à 1 et 6 rangées, FR/EN.
|
||
- Maj-clic œuf/cape, placement manuel du cosmétique, piston avant/après un dégât
|
||
serveur et rendu d’épée, tête de joueur, coffre et piston.
|
||
- Suivi vivant et caresse ; rendus loup, vache, perroquet, creeper, morue et ghast.
|
||
- W gratuit, achat du repos, rendu de sommeil distinct et arrêt par déplacement.
|
||
- Tab en jeu, Maj inverse, maintien sans répétition, autre touche configurée,
|
||
conservation des 54 positions visibles et de la colonne sélectionnée.
|
||
- Balayage rapide dans les deux sens d’un coffre, destination pleine, une seule
|
||
visite par case, tri ingrédient/combustible du four, arrêt au relâchement de Maj,
|
||
équipement automatique œuf/cape et absence de cosmétique automatique.
|
||
- Veine de huit blocs entièrement cassée après changement de visée et déplacement
|
||
à portée ; cible voisine conservée pendant le maintien, puis minée après
|
||
relâchement et nouveau clic. Molette sans effet sur la sélection verrouillée.
|
||
- Surface de 25 escaliers terminée en regardant ailleurs et en bougeant, avec
|
||
orientation initiale et consommation exacte ; aucune nouvelle surface après
|
||
la fin tant que le clic est maintenu.
|
||
|
||
Les captures sont dans `mods/sanctuary/build/run/clientGameTest/screenshots/` ;
|
||
le journal complet final est `build/group-lock018-client.log` (1 min 46 s).
|
||
`build/cosmetics018-client.log` conserve le premier parcours des accessoires
|
||
et raccourcis, également réussi avant l’ajout des sélections verrouillées.
|
||
|
||
Limites : les essais ne constituent pas une validation de toutes les espèces,
|
||
de tous les modèles spéciaux d’objets/blocs, ni d’une session multijoueur sous
|
||
latence. Le déplacement du compagnon reste terrestre, même pour une apparence
|
||
aquatique ou volante. Les pouvoirs de familiers attendent leur ticket dédié.
|
||
|
||
### Serveur et distribution
|
||
|
||
`./gradlew check build assemblePack -PsanctuaryFocusedTests=accessories,progression,movement,inventory,inventoryflow,sorting,cycle,mining,building`
|
||
passe en **4 min 51 s**, avec **67 tests serveur obligatoires réussis**, ainsi
|
||
que les contrôles purs du dépôt. Journal : `build/cosmetics018-check-build.log`.
|
||
Les tests couvrent les six capacités d’inventaire, équipement typé, destination
|
||
pleine, mort, sauvegarde/rechargement, conservation au prestige, données futures
|
||
préservées, navigation et invincibilité du familier, interruption de l’arc lors
|
||
d’un changement de rangée, protections et coûts natifs du minage/construction.
|
||
La durée de minage reste identique entre une caméra fixe et une caméra qui
|
||
tourne ; le contexte de construction figé ne fuit pas dans la pose individuelle.
|
||
|
||
Export local : [Sanctuary-beta.018.mrpack](../build/Sanctuary-beta.018.mrpack),
|
||
**2 617 278 octets**. SHA-256 :
|
||
`06997ae60f3306b9b973c4b5e83894ca302905fbdd337e1d0c36abf0fa4d9aba`.
|
||
Reçu : `build/cosmetics018-artifact.json`. ZIP, versions, JAR Sanctuary et Demeure
|
||
embarqués, ressources, libellés, index packwiz et dépendance Fabric API vérifiés.
|
||
Les exports beta.003 à beta.017 restent identiques ; aucune installation
|
||
personnelle ni canal publié n’a été modifié.
|