7.0 KiB
beta.012 — transferts, barres rapides et progression
Ticket sur codex/inventory-flow-progression, demandé le 13 septembre 2026.
Contrat préalable à l'implémentation et à la migration des données.
Comportement attendu
Les rangées de stockage suivent leur ordre naturel de haut en bas ; la barre rapide active reste en bas. Tab fait tourner les contenus des rangées acquises, Maj+Tab inverse le sens. La touche est configurable ; E prend la priorité sur la fermeture de l'inventaire si elle est choisie, Échap ferme toujours le menu. Une rotation complète restitue l'ordre initial. Les anciennes cases verrouillées, l'équipement et les objets du conteneur ouvert ne participent pas à la rotation. Le serveur valide le menu, sa révision et la capacité ; aucune rotation avec un objet porté par le curseur. Il envoie ensuite les objets actualisés au client.
Maj-clic regroupe les piles compatibles dans toutes les rangées autorisées avant d'occuper une case vide. Les priorités des machines restent celles de Minecraft. Un coffre plein refuse le transfert sans déplacer l'objet dans l'inventaire du joueur. Les rangées verrouillées restent utilisables uniquement en récupération. Les fonds des coffres et machines partagent la même origine que leurs cases.
Les six compétences affichent une jauge textuelle et leur valeur/plafond. Le bouton + apparaît lorsque l'achat est possible. Le bouton − exige la permission opérateur réelle du serveur ; il retire un rang de compétence et rembourse le prix du dernier achat encore acquis pour cette compétence, enregistré au moment de l'achat. Les aptitudes ne sont pas retirables. Chaque retrait est historisé.
Migration et protocole
La progression passe du schéma 6 au schéma 7. Les migrations 1–5 restent suivies.
Tous les achats, dates, coûts, compétences, aptitudes et cycles restent conservés.
Un compteur revision explicite est initialisé avec l'ancienne valeur
cycle * 64 + history.size(), puis augmente à chaque achat, retrait et New Game+.
Le passage de cycle conserve aussi le plancher historique nouveauCycle * 64
pour reprendre les anciens journaux. Une révision déjà utilisée ne redevient jamais valide après un remboursement.
L'historique enregistre aussi les événements remove_<compétence>, avec le coût
exact remboursé. La relecture vérifie les achats encore acquis, leurs plafonds et
chaque remboursement. Le journal est limité à 1 024 événements par cycle ; arrivé
à cette limite, les ajustements sont refusés explicitement. Les retraits
réservent toujours assez de place pour terminer les six compétences et acheter
les aptitudes restantes. Le New Game+ archive
l'ancien historique par le journal de cycle existant et conserve les aptitudes.
Les anciens événements de cycle restent lisibles par les migrations de progression.
Le format des objets sanctuary:inventory reste au schéma 1 : les rotations
modifient les emplacements existants, sans inventaire parallèle ni permutation
persistante. Les objets occupés restent récupérables après retrait d'un rang.
Mort ordinaire : progression et historique conservés, règles d'objets inchangées.
Aucun terrain, identité, carte, Demeure, faction ou charge n'est modifié.
Client et serveur beta.012 exigent la capacité sanctuary:inventory_controls_v1.
Le snapshot de progression ajoute le droit opérateur et agrandit la borne de son
historique. Les identifiants existants restent stables. Un ancien client est
refusé avant le spawn ; mise à jour des deux côtés requise. Export local MRpack
pour essai, sans publication ni installation personnelle.
Vérification
La passe graphique :sanctuary:runClientGameTest -PsanctuaryClientTests=true -PsanctuaryInventoryClientTests=true réussit en 1 min 29 s. Elle crée uniquement
un monde de développement neuf, de graine 42. Le journal est
build/inventory012-client-final.log.
Elle ouvre les six capacités à deux échelles GUI, puis 24 types de menus natifs. Une sonde de test contrôle les coordonnées des vrais appels de dessin du fond, comparées à celles des cases. Les coffres sont remplis de blé et de charbon pour vérifier leur alignement. Les rangées visibles restent dans l'écran ; les grands coffres permettent de faire défiler le stockage en conservant la barre rapide.
Les essais client couvrent aussi le déplacement Tab, son inverse, le remplacement
par E, la fermeture par Échap, les + masqués sans XP, l'affichage opérateur, l'achat
d'un cœur puis son remboursement par −. L'XP passe de 30 à 29 puis revient à 30,
et le serveur enregistre remove_vitality. Les contrôles du protocole opèrent
uniquement sur un serveur Sanctuary ; les serveurs sans Sanctuary restent accessibles.
Captures conservées dans build/inventory012-evidence/, notamment le coffre
0014_sanctuary-beta012-generic_9x3-minimum.png et la progression opérateur
0039_sanctuary-beta012-progression-operator.png.
La validation finale serveur et la vérification de l'artefact sont consignées ci-dessous. Les tests ne simulent pas 30 clients simultanés. Les autres mods communautaires ne sont pas inclus dans cet essai des menus natifs.
Livraison vérifiée
check build assemblePack réussit en 4 min 19 s, avec 49 tests natifs
réussis et les tests purs. Commande :
JAVA_HOME=/Users/koka/Library/Java/JavaVirtualMachines/temurin-25.jdk/Contents/Home \
./gradlew check build assemblePack \
-PsanctuaryFocusedTests=progression,map,demeure,mining,building,inventory,cycle,inventoryflow
Journal : build/inventory012-delivery-final.log. Les quatre nouveaux scénarios
vérifient les regroupements à chacune des six capacités, les coffres pleins,
les priorités et restes natifs de 24 types de menus sur huit types d'objets,
les rotations inverses et complètes avec composants et anciennes cases occupées,
les refus de requêtes périmées, l'autorité opérateur et le remboursement exact.
Le coût remboursé et l'historique sont relus depuis la sauvegarde native du joueur.
Les tests de cycle vérifient également l'archivage des retraits au passage de
prestige ; les tests de progression atteignent le budget maximal d'historique
sans empêcher de terminer les six compétences. Les assertions historiques qui
exigeaient de déplacer tout le charbon dans toutes les machines sont remplacées
par la comparaison avec leurs règles natives ; les montures sont conservées
avec un conteneur de test aux dimensions exactes de 26.3-pre-2.
La suite serveur de génération générale n'est pas relancée par la sélection
ci-dessus ; les tests purs de génération inclus dans check passent. Aucun
serveur de 30 habitants n'est simulé.
- Export :
build/Sanctuary-beta.012.mrpack, 2,496,778 octets. - SHA-256 :
5d7fa635adb7ea5bf32ef361be95f242090912d52d6209398abeac32ea06f87d. - Reçu :
build/inventory012-artifact.json. - Archives beta.003–011 inchangées ; versions internes, JAR imbriqué Demeure, ressources d'origine, traductions et index packwiz vérifiés.
- Distribution locale pour essai, sans publication du canal ni installation dans une instance personnelle.