# beta.096 — Métabli et commandes de construction Le parcours créatif est complété depuis [beta.098](creative-construction-beta098.md) par un bouton de construction immédiate. Le présent document décrit beta.096. ## Contrat de monde avant implémentation Neuf établis à plat, en carré 3 × 3, sont assemblés volontairement à la clé avec la confirmation habituelle. Aucun établi existant n'est converti au chargement. Les neuf composants deviennent `sanctuary:metatable`, propriété `part` de 0 à 8 (x + 3z). Leur origine est déduite de cette propriété. Ces états sont stockés normalement dans les chunks ; aucun SavedData ancien n'est modifié, aucun inventaire ou contenu n'est copié. Pas de BlockEntity. Le contrôle des neuf cases est borné et n'impose pas de chargement de chunk. Une dissociation restaure neuf établis. Casser un composant dépose son établi selon le butin natif et restaure les autres sans drops supplémentaires. Les composants déchargés sont contrôlés à leur reprise. Une machine partielle est inaccessible jusqu'à validation/restauration. Les pistons ne déplacent pas un Métabli assemblé. Les permissions serveur s'appliquent à chaque composant. Les deux PNG fournis sont conservés octet pour octet : dessus 48 × 48, côtés 48 × 16, prélevés par tiers sans étirement. Le dessous utilise les planches de chêne du pack actif. ## Parcours retenu Clic droit au Métabli → catalogue → choix unique du projet → retour dans le monde. K ouvre les commandes du projet : ancrer au point visé, décaler, tourner, afficher une couche, masquer/afficher et consulter les besoins. Changer de projet, créer une autre statue, importer ou abandonner le plan se fait au Métabli. Esc ferme seulement l'interface et ne retire pas le plan. Un import ou une génération en cours n'est accepté que si le joueur est encore à l'atelier qui a initié le choix. Le choix ne pose aucun bloc. Construction manuelle avec l'inventaire natif. Aucun collage ni chantier automatique dans ce parcours, même en créatif. Les fonctions serveur de collage créatif historiques restent contrôlées par leurs règles existantes. Le projet et son aperçu restent locaux au joueur, comme dans beta.072 ; ils sont effacés au changement de monde/dimension ou à la déconnexion. L'export reste disponible pour les conserver. Le chantier partagé persistant, les catalogues en datapack serveur et les services commerciaux sont des lots futurs. Aucune économie n'est ajoutée. ## Catalogue initial et extension - Statues : les modèles natifs déjà pris en charge, avec hauteur et palette. - Machines : Fourneau, Fût, super piston normal et gluant. Le plan guide les blocs sources ; la clé réalise ensuite leur assemblage fonctionnel. - Bâtiments : abri de 5 × 5 et passerelle de 3 × 7, deux plans simples de départ. - Mes plans : bibliothèque locale et imports existants `.litematic`, `.schem` et `.nbt`. Les anciens `.schematic` demandent une conversion externe. `ConstructionCatalog.ENTRIES` est le point d’extension des plans intégrés : identifiant, catégorie et fabrique de `BuildPlan`, avec nom et aide FR/EN. Une machine fonctionnelle conserve son implémentation serveur propre : un plan ne lui confère ni inventaire prérempli ni commandes ni service commercial. Le catalogue configurable par datapack reste à implémenter. ## Utilisation Poser neuf établis en carré à plat. Deux clics à la clé dorée confirment le Métabli ; clic droit pour l’ouvrir. Choisir un plan ferme le catalogue. K ouvre les commandes de construction, avec aperçu, décalage d’un bloc, rotation par quart de tour, couches et matériaux restants. Poser les blocs normalement ; revenir au Métabli pour changer de choix ou abandonner. Maj + clic droit à la clé dissocie l’atelier. ## Vérifications Deux suites natives sur Minecraft 26.3, en nouveaux mondes de développement : - `Metatable096ClientChecks`, graine 96 : assemblage en deux clics sur quatre chunks, ouverture par clic droit natif, quatre rubriques, sélection unique, K réservé aux réglages, refus de changement/import à distance, rotation et translation, pose native payée, annulation d’une génération en quittant l’atelier, statue puis export/import, interfaces FR/EN, casse pendant le menu, un seul drop et huit établis restaurés, réassemblage, déchargement réel des chunks puis retour, dissociation des neuf cases. Réussi en 1 min 11 s. - Régression `Plans072ClientChecks` adaptée au Métabli : capture des **88 modèles** sans refus, statue de 32 blocs, rotations, matériaux, export, ancien protocole de collage créatif et refus en survie, pose native consommant son bloc, interfaces FR/EN. Réussi en 1 min 7 s. Captures inspectées dans `build/metabli096-evidence/`. Le premier passage du nouveau test attendait le déchargement via `ClientLevel.hasChunkAt`, qui ne reflète pas le cache client ; le test utilise désormais `getChunkNow`, comme les autres essais natifs. Le parcours fonctionnel précédant cette attente avait déjà réussi. Ce premier journal est conservé séparément. `./gradlew check build assemblePack assembleTestPack -x :sanctuary:runGameTest` réussi : 124 tâches, 2 min 20 s. Voir `build/metabli096-check.log` et le reçu `build/metabli096-artifact.json`. Textures d’origine comparées octet pour octet, modèles découpés par tiers, JAR sources et archives vérifiés ; archives beta.095 conservées. Les tests dédiés sont exclus conformément au refus antérieur d’EULA. Aucun serveur dédié démarré, aucune EULA acceptée, aucun déploiement personnel. ## Livraison locale Packs normal et Test `build/Sanctuary-beta.096.mrpack` et `build/Sanctuary-Test-beta.096.mrpack`, Minecraft 26.3 finale. Le canal packwiz et l’instance Prism ne sont pas modifiés. Les dépendances et le pack de textures intégré beta.090 restent identiques ; les textures du Métabli sont les ressources propres du mod.