154 lines
8.6 KiB
Markdown
154 lines
8.6 KiB
Markdown
# Alpha.22 — placement sélectif
|
||
|
||
Ticket WG-25, branche `codex/placement-selectif-alpha22`.
|
||
Minecraft 26.3-pre-2, Fabric Loader 0.19.5, Fabric API 0.160.0+26.3 et Java25,
|
||
sans changement de dépendances.
|
||
|
||
## Contrat
|
||
|
||
Les bâtiments de surface redeviennent sélectifs : une ville peut être absente
|
||
si aucun emplacement n’est adéquat. Deux éléments de base sont prioritaires :
|
||
**la grande traversée souterraine et la salle d’expansion**, même sans ville.
|
||
Leurs emplacements sont réservés avant les petits réseaux et le catalogue
|
||
expérimental. Une recherche bornée ne prouve pas qu’aucun autre emplacement
|
||
possible n’existe dans toute l’île.
|
||
|
||
- Ville : aucune réserve artificielle de secours, aucun pilier de rattrapage,
|
||
terrassement/remblai limité à deux blocs par colonne. Les fondations sont
|
||
entièrement recertifiées dans la roche. Les quartiers supplémentaires exigent
|
||
un chemin complet vers les quartiers retenus. Au plus trois propositions dans
|
||
un budget partagé de20 000 colonnes et1 120 000 contrôles de volume.
|
||
- Infrastructures : relief maximal de quatre blocs sur l’emprise17×17, coupe et
|
||
remblai limités à deux blocs, deux couches de roche intacte sous chaque colonne
|
||
de fondation, sans piliers de secours. Jusqu’à24 candidats par famille, avec
|
||
les mêmes plafonds globaux de16 000 colonnes et800 000 sondages.
|
||
- Chemins patrimoniaux : coupe/remblai limité à un bloc, accès indépendant et
|
||
raccord complet requis pour publier une liaison.
|
||
- Traversée : conserve le génie civil21, avec deux accès réels, une chaussée
|
||
de cinq blocs et deux trottoirs. Les piliers sont bornés à16 blocs ; les
|
||
travées sans grille complète sont limitées à34 blocs et reposent sur les
|
||
modules adjacents. La recherche22 intervient avant les structures facultatives
|
||
pour leur réserver l’emprise. Si les lignes droites sont refusées, une seconde
|
||
passe cherche des accès différents et des détours. Chaque passe est limitée à
|
||
12 000 colonnes et3 millions de sondages (24 000 et6 millions au total au plus).
|
||
Ses parois peuvent traverser des cavités existantes sans écraser les volumes
|
||
d’eau et de lave protégés.
|
||
- Salle : recherche autonome d’un accès de surface et d’une salle25×25, sans
|
||
faux quartier ni socle de ville. Une salle déjà présente sous une ville évite
|
||
un doublon. Les égouts et annexes peuvent accompagner ce lieu indépendant.
|
||
|
||
|
||
Les palettes, les plans intérieurs et les petits filons minables restent ceux
|
||
de21. Les anciens petits réseaux expérimentaux17 et les sous-sols des villes gardent
|
||
leur géométrie ; leurs protections restent respectées.
|
||
Le nouveau principe narratif est documenté dans [la vision](vision.md) et
|
||
[l’audit](structures-audit.md), sans activer de système de progression.
|
||
|
||
## Sauvegardes
|
||
|
||
Le seul preset public utilise désormais `sanctuary:island_v22`. Le preset caché
|
||
`sanctuary_v21` est la copie de l’ancien preset public. Les anciens codecs,
|
||
planificateurs et rendus restent disponibles. Les pièces21 sont réutilisées
|
||
avec leur format existant ; les nouveaux coudes possèdent une pièce22 distincte
|
||
pour fermer leurs murs sans modifier les jonctions21 sauvegardées.
|
||
La salle indépendante possède un type de structure22
|
||
et réutilise les pièces souterraines20.
|
||
Le journal identifie la génération22 et refuse une lecture croisée avec21.
|
||
Aucun monde personnel n’est ouvert, converti ou régénéré.
|
||
|
||
Les nouvelles règles nécessitent un **nouveau monde Sanctuary**. Petit512,
|
||
Moyen724 par défaut et Grand1024 restent proposés. L’option **Structures
|
||
expérimentales** reste enregistrée à la création ; en22 elle retire le catalogue
|
||
facultatif, tandis que la traversée et la salle restent des éléments de base.
|
||
Le commutateur Minecraft général des structures demeure respecté.
|
||
|
||
## Témoin natif Moyen, graine0
|
||
|
||
La création et la réouverture dans deux JVM distinctes passent. La ville est
|
||
refusée ; la traversée comporte23 modules, dont deux accès et une salle de
|
||
maintenance. Son axe s’étend sur340 blocs. Les accès sont `-170 253 -100` et
|
||
`170 254 -100`. Le hall d’expansion indépendant se rejoint par la trappe
|
||
`2 252 0` ; son réseau comprend l’accès, la salle, deux passages et un égout.
|
||
La piscine est une annexe conditionnelle, absente sur ce témoin.
|
||
|
||
Les14 bâtiments patrimoniaux trouvent un terrain adapté ; sept liaisons sont
|
||
retenues. Les115 chunks de l’emprise sont générés en statut FULL. Les plans,
|
||
pièces natives et une modification témoin persistent après réouverture. Le
|
||
contrôle natif de circulation vérifie la vraie trappe, les échelles soutenues,
|
||
les ouvertures et le trajet jusqu’au socle central. Aucun déplacement de joueur
|
||
ou chargement d’un monde personnel n’a été utilisé pour ces essais.
|
||
|
||
## Vérifications complémentaires
|
||
|
||
**Petit512, graine42 :**17 modules, dont un coude sauvegardé avec sa pièce22,
|
||
et une salle indépendante. Les anciens alignements droits sont refusés ; le
|
||
repli trouve une paire d’accès naturels et conserve une chaussée continue.
|
||
Les portiques sont `-68 250 -93` et `68 250 43`, la trappe du hall `43 244 -10`.
|
||
La marche native relie les sorties en564 déplacements et atteint53 points de
|
||
contrôle. Huit bâtiments patrimoniaux et six liaisons sont admis ; aucune ville
|
||
n’est forcée. Les88 chunks de l’emprise sont vérifiés en statut FULL.
|
||
|
||
**Grand1024, graine42 :** un quartier naturel est admis avec son réseau de
|
||
sous-sols : salle d’expansion, piscine, égout et parking. Aucun hall autonome
|
||
supplémentaire n’est créé. La traversée comporte31 modules et s’étend sur476
|
||
blocs ; portiques `-272 249 -8` et `204 250 -8`. La marche native les relie
|
||
en740 déplacements et atteint98 points de contrôle. Quatorze bâtiments
|
||
patrimoniaux et huit liaisons sont admis. Les179 chunks de l’emprise sont
|
||
vérifiés en statut FULL ; la salle et ses17 ouvertures sont accessibles.
|
||
|
||
Les tests purs des trois tailles passent sur des terrains plats adaptés ;
|
||
falaises, eau/protections, vides et appuis insuffisants sont refusés pour les
|
||
bâtiments. Le hall autonome et ses annexes sont vérifiés sans fixture de ville.
|
||
Les suites historiques restent actives. Avec l’option expérimentale désactivée,
|
||
le témoin Moyen conserve ses23 modules de traversée et sa salle indépendante,
|
||
sans bâtiments patrimoniaux ni petits réseaux expérimentaux. La marche native
|
||
relie les deux sorties en548 déplacements et atteint74 points de contrôle ;
|
||
les échelles et l’accès au hall restent praticables.
|
||
|
||
Les créations et réouvertures de génération21 sont identiques aux rapports de
|
||
la release21, hors identifiants de processus et dossier de test. Les391 fichiers
|
||
de production historiques qui ne nécessitent pas de raccord22 restent identiques
|
||
octet pour octet ; le preset caché21 est la copie exacte du précédent preset
|
||
public. Les masques sont vérifiés à l’intérieur et hors des structures.
|
||
|
||
`check build assemblePack` passe :75 tâches, dont les huit GameTests généraux.
|
||
Le JAR, l’index packwiz, le MRpack et le ZIP Prism sont vérifiés. Aucun code de
|
||
test n’est embarqué dans le JAR. SHA-256 du JAR :
|
||
|
||
```text
|
||
10d7ef32ac2e81a977ea4854503bafa29e0bc10929984b76df01d6f5f61f9056
|
||
```
|
||
|
||
SHA-256 du MRpack :
|
||
|
||
```text
|
||
0b553fcdd8b6a2ec26f72059e428d2cc0ce526f36ef8580dd3e50c1dfa40ec78
|
||
```
|
||
|
||
Les reçus de publication et de synchronisation sont suivis dans
|
||
[la distribution](packwiz.md).
|
||
|
||
Ces témoins vérifient les trois tailles, avec et sans ville ; ils ne constituent
|
||
pas une preuve de présence pour toutes les graines. La recherche reste bornée
|
||
et refuse un volume protégé ou insuffisamment porté. Aucun essai visuel client
|
||
ou essai Windows natif n’est revendiqué.
|
||
|
||
## Reproduire dans le dossier de développement
|
||
|
||
Avec Java25, création du témoin Moyen puis réouverture du même monde de test :
|
||
|
||
```sh
|
||
./gradlew :sanctuary:runGameTest -PsanctuarySelective22Tests=true -PsanctuaryDensityMaps=false
|
||
./gradlew :sanctuary:runGameTest -PsanctuarySelective22Tests=true -PsanctuaryDensityMaps=false -PsanctuaryExpansionReload=true
|
||
```
|
||
|
||
Pour une nouvelle création Petit ou Grand, ajouter `-PsanctuaryTestSeed=42`
|
||
et `-PsanctuaryTestDiameter=512` ou `1024`. Le cas OFF utilise
|
||
`-PsanctuaryExperimentalStructures=false`. Chaque réouverture doit suivre la
|
||
création correspondante, avec les mêmes paramètres. Les rapports sont dans
|
||
`mods/sanctuary/build/run/gameTest/diagnostics/selective22-<graine>-<diamètre>/`.
|
||
|
||
Le témoin historique utilise `-PsanctuaryHeritage21Tests=true`, puis le même
|
||
drapeau avec `-PsanctuaryExpansionReload=true`. La vérification de livraison
|
||
reste `./gradlew check build assemblePack`. Exécuter ces JVM séquentiellement.
|