8.6 KiB
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 et l’audit, 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 :
10d7ef32ac2e81a977ea4854503bafa29e0bc10929984b76df01d6f5f61f9056
SHA-256 du MRpack :
0b553fcdd8b6a2ec26f72059e428d2cc0ce526f36ef8580dd3e50c1dfa40ec78
Les reçus de publication et de synchronisation sont suivis dans la distribution.
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 :
./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.