Files
sanctuary-beta/docs/metabli-beta096.md
T
2026-09-17 03:10:39 +02:00

105 lines
5.9 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.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 dextension 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 louvrir. Choisir un plan ferme le catalogue.
K ouvre les commandes de construction, avec aperçu, décalage dun 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 latelier.
## 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 dune génération en quittant
latelier, 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 dorigine 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 dEULA.
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 linstance 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.