Files
sanctuary-beta/docs/companions-cosmetics-beta018.md
T
2026-09-15 09:29:11 +02:00

154 lines
9.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 dexécuter leur
Maj-clic natif successivement. Le geste part dune case avec le curseur vide ;
chaque case est visitée une seule fois, y compris lors dun 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 dorigine ; linventaire 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 linventaire. Seules les rangées débloquées sont parcourues.
Une commutation interrompt lutilisation de lobjet 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é.
## Sallonger et se reposer
W est un geste de base gratuit. Sallonger 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 dachat `lying`
sont conservés pour lire les sauvegardes beta.017 ; aucun nouvel achat nest
accepté et `lyingCost` devient un champ historique sans effet.
## Validation
### Sélections de minage et de construction
Le retour dessai ajouté pendant ce ticket fixe le groupe au premier clic
maintenu avec R. Le client conserve lorigine, 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 lorigine. 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 den choisir un autre. Les
interruptions par changement doutil, 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 nest 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 dun 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 lajout 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 dobjets/blocs, ni dune 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 dinventaire, équipement typé, destination
pleine, mort, sauvegarde/rechargement, conservation au prestige, données futures
préservées, navigation et invincibilité du familier, interruption de larc lors
dun 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é na été modifié.