100 lines
5.0 KiB
Markdown
100 lines
5.0 KiB
Markdown
# STAT-02 — Atelier d’argile et orientation — beta.111
|
||
|
||
Contrat du 17 septembre 2026, branche `codex/clay-workshop-ui-beta111`.
|
||
|
||
## Résultat attendu
|
||
|
||
Le menu utilise le cadre `task_frame_unobtained.png` fourni par le créateur,
|
||
sans retouche, comme sprite Sanctuary avec les métadonnées nine-slice natives
|
||
de Minecraft. Les coins restent à leur taille d’origine. Catalogue, aperçu,
|
||
fabrication, explications et inventaire évolutif tiennent dans ce cadre.
|
||
La texture reste remplaçable par un pack de ressources.
|
||
|
||
La pose d’un statuaire suit le regard horizontal du joueur, dans les quatre
|
||
directions. Le bouton Tourner règle toujours l’orientation du modèle importé.
|
||
Le placement ajoute ensuite l’orientation du bloc sans réécrire ses voxels.
|
||
|
||
## Contrat de compatibilité préalable
|
||
|
||
Ajout de la propriété native `facing` au bloc `sanctuary:statuary`, avec `south`
|
||
par défaut : cette orientation correspond au rendu historique, sans rotation.
|
||
Les anciens états sans propriété prennent cette valeur à la lecture et gardent
|
||
leur apparence. Aucun parcours ni réécriture des anciens chunks n’est effectué.
|
||
Le schéma 1 de la sculpture, ses voxels, ses identifiants et les données des
|
||
objets restent identiques. Casser puis reposer utilise le nouveau regard,
|
||
sans cumuler les orientations précédentes. Rotation et miroir de structures
|
||
transforment l’état du bloc. La collision cubique reste celle déjà livrée.
|
||
|
||
## Texture
|
||
|
||
Le fichier fourni, 26 × 26 pixels, est conservé octet pour octet sous
|
||
`assets/sanctuary/textures/gui/sprites/container/clay_workshop/frame.png`.
|
||
Le fichier adjacent `.png.mcmeta` utilise le moteur `nine_slice` de Minecraft
|
||
avec une bordure fixe de quatre pixels et un centre extensible. L’identifiant
|
||
du sprite est `sanctuary:container/clay_workshop/frame` ; aucun sprite global
|
||
Minecraft n’est remplacé. Les emplacements utilisent `minecraft:container/slot`.
|
||
|
||
## Vérifications natives
|
||
|
||
`Statuary106ClientChecks`, étendu aux cas beta.111, passe en **1 min 3 s** sur
|
||
Minecraft 26.3, avec serveur intégré et monde plat jetable de graine 106 :
|
||
|
||
- Fabrication payée, restitutions, Maj-clic et teintes des seize argiles.
|
||
- Menu FR/EN aux échelles 2 et 3, cases et actions contenues dans le cadre.
|
||
- Six rangées d’inventaire à l’échelle 3 : affichage borné et défilement.
|
||
- Vrais clics de pose aux quatre points cardinaux : état côté serveur,
|
||
transmission au client et rotation du rendu alignés sur le regard.
|
||
- Rotation et miroir de structures ; lecture d’un ancien état sans `facing`.
|
||
- Butin d’une statue orientée au nord puis repose vers l’ouest : nouvelle
|
||
orientation, mêmes voxels. Sauvegarde/réouverture et transmission sans GLB.
|
||
- Conversion au Métabli et annulation d’import conservées.
|
||
|
||
Commande :
|
||
|
||
```sh
|
||
./gradlew :sanctuary:runClientGameTest \
|
||
-PsanctuaryClientTests=true -PsanctuaryStatuary106ClientTests=true \
|
||
-PsanctuaryClientNoVsync=true -PsanctuaryQuickTests=true
|
||
```
|
||
|
||
Marqueurs `STATUARY106_PASS`, `STATUARY106_INTEROP_PASS` et `STATUARY111_PASS`
|
||
dans `build/clay-ui111-client.log`. Captures dans `build/clay-ui111-evidence/`,
|
||
dont les menus français et anglais relus visuellement.
|
||
|
||
Le GameTest dédié reste exclu conformément au refus antérieur de son EULA.
|
||
Les essais tournent sur macOS avec serveur intégré ; pas de validation depuis
|
||
deux ordinateurs ni sur Windows. Aucun monde personnel n’est ouvert.
|
||
|
||
## Livraison vérifiée
|
||
|
||
`./gradlew check build assemblePack assembleTestPack -x :sanctuary:runGameTest`
|
||
passe en **2 min 33 s**, 125 tâches. Les sources JAR correspondent exactement
|
||
aux fichiers Java du dépôt. Le contenu du mod hors classes et ressources de
|
||
ce ticket est identique à beta.110 ; œufs, neige et fonte restent inclus.
|
||
Les deux MRpack contiennent le même JAR vérifié, sans monde, GLB ni classe de test.
|
||
|
||
- Pack normal : `build/Sanctuary-beta.111.mrpack`, 10 169 372 octets,
|
||
SHA-256 `f83098f80ac2edb8e32877bf8d5a362cd75f2fa9020593c2c7e4f9abe8b3e9f6`.
|
||
- Pack Test : `build/Sanctuary-Test-beta.111.mrpack`, 10 188 298 octets,
|
||
SHA-256 `1234b10eb4685d99aa7421de46bc54fd114b791f1b4d63803a09afc926d2c9d9`.
|
||
- JAR Sanctuary : SHA-256
|
||
`b3e967db7b336b970e4121981e3ef8140fe90f0ecc5850ce90a70caaf3772684`.
|
||
|
||
Reçu local : `build/clay-ui111-artifact.json`.
|
||
|
||
## Publication et installation
|
||
|
||
La [release beta.111](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.111)
|
||
est publiée depuis le commit source `289697becf19db4acf50d224b1dd3d753eff1153`.
|
||
Le tag exact et les artefacts sont immuables ; leurs téléchargements publics
|
||
ont été vérifiés. Le canal packwiz avance au commit
|
||
`87c9f81761309316c601ed32fa922c1a5893952c`.
|
||
|
||
Deux synchronisations isolées puis deux passages dans l’instance existante
|
||
**Sanctuary Beta** ont réussi. Un seul JAR Sanctuary beta.111 est actif ; le
|
||
second passage conserve les mêmes hashes. Les **923 fichiers personnels et
|
||
réglages suivis** restent identiques. Aucun monde personnel n’a été ouvert.
|
||
La sauvegarde ciblée est dans `sanctuary-backups/before-beta.111/` de cette
|
||
instance. Reçus : `build/clay-ui111-isolated.json` et
|
||
`build/clay-ui111-prism.json`.
|