Snap clay sculptures to aimed block edges on the voxel grid (beta.113)
Build Sanctuary / build (push) Canceled after 0s

This commit is contained in:
koka
2026-09-17 06:38:04 +02:00
parent 064701f210
commit 6166d0aa9e
13 changed files with 267 additions and 44 deletions
+78
View File
@@ -0,0 +1,78 @@
# STAT-04 — Sculptures dargile et accroche au bord — beta.113
Contrat du 17 septembre 2026, branche `codex/clay-sculpture-grid-beta113`.
Les miniatures de latelier deviennent des « sculptures dargile » / « Clay
sculptures ». Le nom du modèle reste dans leur infobulle. Les statues en blocs
du Métabli restent une catégorie distincte.
À la pose, le bord horizontal le plus proche du point visé accueille la
sculpture. Lautre axe est centré au pixel entier le plus proche, sur la grille
de 1/16 de bloc. Sur une face latérale, elle touche le bord du bloc support.
À égalité exacte entre deux bords, laxe Z départage ; au centre exact,
le bord côté joueur est retenu. Lorientation suit toujours le regard.
Le bouton Tourner prépare le modèle avant fabrication. Les marges horizontales vides du modèle ne créent pas de décalage au bord.
Tous les sommets restent
sur la grille entière, même avec des dimensions impaires et après rotation.
## Compatibilité préalable
La propriété native additive `anchor` du bloc `sanctuary:statuary` mémorise
`center`, `north`, `south`, `east` ou `west`. Un ancien état sans cette propriété
prend `center` : il reste centré, avec la correction visuelle du demi-voxel.
Le schéma 1, les voxels, noms de modèles et identifiants ne changent pas.
Il ny a aucun parcours ni réécriture de chunks existants. La sauvegarde native
conserve laccroche ; les rotations et miroirs de structures la transforment.
Casser et reposer choisit une nouvelle accroche sans modifier le modèle.
Les nouveaux objets emploient le nom traduit de leur type ; les noms déjà
enregistrés et les noms personnalisés restent conservés. La collision cubique
et la limite dune sculpture par bloc restent inchangées. Client et serveur
doivent utiliser ensemble beta.113.
## Vérifications natives
Le parcours `Statuary106ClientChecks`, étendu par `Sculpture113ClientChecks`,
passe en **1 min 25 s**, sur Minecraft 26.3 et un monde plat jetable de graine 106 :
- 5 120 combinaisons de largeur/profondeur, orientation et accroche : contrôle
de la géométrie émise, grille exacte de 1/16 et absence de dépassement du bloc.
- Modèles avec marges transparentes, repères colorés pour vérifier le sens du
rendu et égalité de la géométrie centrée entre lobjet et le bloc.
- Vrais clics de pose sur les quatre bords : orientation, bord côté serveur,
réception côté client, butin/repose et conservation après reconnexion.
- Contextes natifs de pose sur les faces latérales et coordonnées négatives.
- Rotation/miroir de chaque combinaison daccroche et dorientation ; lecture
des anciens états sans `anchor`, avec et sans `facing`.
- Noms français/anglais des objets fabriqués, menu aux échelles 2 et 3,
fabrication payée, Maj-clic limité à la hotbar et régression Métabli.
```sh
./gradlew :sanctuary:runClientGameTest \
-PsanctuaryClientTests=true -PsanctuaryStatuary106ClientTests=true \
-PsanctuaryClientNoVsync=true -PsanctuaryQuickTests=true
```
Marqueurs `STATUARY113_PASS` et `SCULPTURE113_GEOMETRY_PASS` dans
`build/clay-grid113-client.log`. Captures relues dans
`build/clay-grid113-evidence/`. Le GameTest dédié reste exclu conformément au
refus antérieur de son EULA ; ces essais utilisent le serveur intégré macOS.
Pas de validation Windows ni depuis deux ordinateurs. Aucun monde personnel
na été ouvert.
## Livraison
`./gradlew check build assemblePack assembleTestPack -x :sanctuary:runGameTest`
passe en **3 min 11 s**, 125 tâches. Les sources JAR correspondent exactement
aux sources du dépôt. Les classes et ressources hors du ticket sont identiques
à beta.112. Les deux packs contiennent le même JAR, sans monde, GLB ni test.
- Sanctuary-beta.113.mrpack : 10173807 octets, SHA-256
`ed082ff29a0e9a70fd6786bc024241b276cb516bc09fb5151d6cb324604429bb`.
- Sanctuary-Test-beta.113.mrpack : 10192733 octets, SHA-256
`387f54dc77884a9c9bccdcc1904778ca7f0b2fbda126754fdc49b10a492e4602`.
- JAR Sanctuary : SHA-256
`e242d9fd2edeede922a72a10e988e29c2b49dea52105cfc9fc8573154849ead3`.
Reçu local : `build/clay-grid113-artifact.json`.
Publication et synchronisation de linstance à effectuer après le commit source.