99 lines
6.1 KiB
Markdown
99 lines
6.1 KiB
Markdown
# beta.084 — Clé dorée, Fût et Fourneau
|
||
|
||
Premier lot implémenté sur `codex/multiblocs-beta084`.
|
||
Référence historique lue, sans modification : `../26.2/anotherworld`,
|
||
`VaultStructure`, `SafeVaultMenu` et `SafeVaultScreen`. Reprise du repérage
|
||
borné autour d'un centre et du contrôle serveur, pas du stockage monétaire,
|
||
de la propriété privée ni de sa forme creuse à 26 composants.
|
||
|
||
## Contrat de sauvegarde et de migration — avant implémentation
|
||
|
||
Aucune génération ni conversion automatique d'une construction existante.
|
||
L'assemblage est une action volontaire avec une clé dorée. Nouveau SavedData
|
||
par dimension `sanctuary:multiblocks`, schéma 1 : origine du cube, type,
|
||
orientation et identifiant UUID. Aucun contenu d'inventaire dans ce registre.
|
||
Les 27 BlockEntities vanilla conservent leurs objets, composants, temps de
|
||
cuisson, combustible restant et expérience. Les identifiants de blocs restent
|
||
`minecraft:barrel` et `minecraft:furnace`. Le chargement d'une ancienne
|
||
sauvegarde sans ce registre ne change rien : aucun fichier n’est écrit avant
|
||
le premier assemblage. Le codec refuse un schéma inconnu et le chargeur refuse
|
||
d’écraser un fichier illisible. La catégorie native de stockage NBT est
|
||
`SAVED_DATA_COMMAND_STORAGE` ; les données métier restent dans notre codec.
|
||
|
||
Une dissociation retire seulement l'appartenance : elle ne restitue jamais
|
||
une copie du stock initial. Une casse ou explosion laisse Minecraft déposer
|
||
le contenu du composant cassé et dissout la machine ; les autres composants
|
||
restent en place. Une partie déchargée suspend l'accès commun et la chauffe,
|
||
sans chargement forcé ni rattrapage hors ligne. À la reprise, validation des
|
||
27 composants. Les sauvegardes suivent l'atomicité native des chunks ; ce
|
||
lot n'ajoute pas de journal transactionnel inter-chunks en cas de crash brutal.
|
||
Les anciens inventaires ouverts sont fermés à l'assemblage/dissociation.
|
||
|
||
## Gestes et valeurs de la première version
|
||
|
||
- Clé : recette de trois lingots d'or en tête et un bâton en manche, sans usure.
|
||
- Clic droit sur 27 barils ou fours en cube plein : repérage et confirmation
|
||
par un deuxième clic dans les dix secondes. Une forme ambiguë est refusée.
|
||
- Maj + clic droit sur une machine assemblée : dissocier.
|
||
- Maj + clic droit sur un four ou baril indépendant : tourner, en conservant
|
||
ses données. Pas de rotation d'une machine chargée.
|
||
- Clic droit sans clé sur une façade : ouvrir le stock commun public.
|
||
- Fût : 729 cases physiques, 54 par page, recherche par nom et identifiant.
|
||
Les noms localisés sont résolus côté client en identifiants d’objets, puis
|
||
filtrés uniquement dans le stock accessible validé par le serveur. Le
|
||
Maj-clic de dépôt utilise tout le stock, même pendant une recherche.
|
||
Une recherche fige ses emplacements jusqu'à la prochaine recherche.
|
||
Changer de page/recherche ouvre un nouvel identifiant de menu et exige un
|
||
curseur vide ; les anciens paquets de clic ne peuvent pas viser une autre page.
|
||
- Fourneau : les 27 entrées, combustibles et sorties natifs, trois vues.
|
||
Jusqu'à 27 cuissons simultanées à vitesse vanilla, avec chaleur partagée.
|
||
Chaque cuisson paie un tick de combustible par tick de travail : le débit
|
||
augmente, pas le rendement par charbon. Les combustibles et leurs restes,
|
||
les recettes et l'XP restent gérés par le four vanilla. Pas de recette
|
||
culinaire It's Alive dans ce lot. Une panne de combustible met le travail
|
||
en attente sans effacer sa progression ; ajouter du combustible le reprend.
|
||
Le débit correspond aux 27 fours physiques, sans multiplicateur de minerai.
|
||
- Trémies : stock commun du Fût ; Fourneau, entrées en haut, combustible
|
||
latéral, résultats en bas, en respectant les règles natives des seaux.
|
||
- Apparence : composants vanilla conservés ; les fours montrent leur chauffe.
|
||
Aucune nouvelle grande texture de façade dans cette première livraison.
|
||
|
||
## Vérifications
|
||
|
||
`Multiblocks084ClientChecks` tourne dans un nouveau monde plat intégré :
|
||
confirmation volontaire, refus de chevauchement, cube traversant une frontière
|
||
de chunks, fichier SavedData écrit puis relu, schéma inconnu, sérialisation
|
||
native des objets nommés et de la cuisson, deux joueurs serveur dont un invité
|
||
automatisé, trémies natives, inventaire plein, recherche localisée, pagination,
|
||
curseur plein et paquet périmé, dissociation, casse et explosion avec conservation
|
||
du stock. Cuisson : deux recettes simultanées, rendement du charbon partagé,
|
||
sortie pleine, seau de lave/éponge mouillée, résultat natif/XP et panne puis
|
||
reprise des 27 cuissons. Captures natives en FR/EN aux échelles 2 et 3.
|
||
|
||
Validation finale réussie : `check build assemblePack assembleTestPack`
|
||
et `:sanctuary:runClientGameTest`, en excluant `:sanctuary:runGameTest`
|
||
(serveur dédié/EULA non autorisés). 131 tâches, 105 exécutées, en 3 min 16 s.
|
||
Le dernier scénario couvre aussi les six rangées, le dépôt depuis la rangée
|
||
supplémentaire et le maintien des menus voisins sans lien avec la machine.
|
||
|
||
Archives locales : `build/Sanctuary-beta.084.mrpack` et
|
||
`build/Sanctuary-Test-beta.084.mrpack`. Journaux :
|
||
`build/multiblocs084-check.log` ; reçu d’intégrité :
|
||
`build/multiblocs084-artifact.json`. Pack de textures beta.070 inchangé.
|
||
Le canal publié reste inchangé.
|
||
|
||
Pour essayer rapidement : fabriquer la clé avec le motif `G G / G / S `
|
||
(G = lingot d’or, S = bâton), ou obtenir `sanctuary:golden_wrench` en mode
|
||
opérateur. Construire un cube plein de 27 barils ou de 27 fours et cliquer
|
||
deux fois avec la clé. Maj-clic avec un autre bloc permet toujours d’en poser
|
||
un contre la façade, notamment une trémie.
|
||
|
||
Limites de cette livraison : façade composée des blocs vanilla ; comparateurs
|
||
sur le contenu du composant physique ; commandes de chauffe avancées et
|
||
recettes composées différées. La sauvegarde est vérifiée par relecture disque
|
||
et sérialisation native, pas par redémarrage complet d’une session à deux
|
||
clients. Le déchargement réel d’une moitié de machine pendant un transfert
|
||
reste à éprouver manuellement ; le refus d’accès aux chunks absents est testé.
|
||
Aucun serveur dédié démarré, aucune EULA acceptée, aucun déploiement Prism
|
||
ou monde personnel modifié.
|