Files
sanctuary-beta/docs/inventory-flow-beta012.md
T
2026-09-15 09:29:11 +02:00

7.0 KiB
Raw Blame History

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 15 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.003011 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.