872 lines
51 KiB
Markdown
872 lines
51 KiB
Markdown
# Premier monde Sanctuary
|
||
|
||
## Alpha.13 — génération unifiée
|
||
|
||
Le choix public **Sanctuary** (`sanctuary:sanctuary`) crée l’île principale à
|
||
l’origine de l’Overworld, entourée de vide. Son bouton natif **Personnaliser**
|
||
propose **Petit** (512 blocs de diamètre nominal), **Moyen** (724, par défaut)
|
||
et **Grand** (1 024). Les types vanilla restent disponibles. La hauteur reste
|
||
de 384 blocs ; les dimensions nominales ne donnent ni aire habitable garantie
|
||
ni capacité multijoueur.
|
||
|
||
L’île initiale reprend la densité, les forêts et l’hydrologie complète de la
|
||
famille Population, avec les poches de biomes souterrains natives du laboratoire.
|
||
Les extensions conservent leurs profils climatiques et leurs commandes
|
||
alpha.12.1. Leurs règles de génération restent distinctes de celles de l’île
|
||
initiale : la grande hydrologie de départ n’est pas automatiquement reproduite
|
||
sur chaque continent ajouté.
|
||
|
||
Les trois tailles et les cavités passent les contrôles moteur. Le [guide alpha.13](alpha13-worldgen.md)
|
||
décrit l’interface, les paramètres sauvegardés et les outils d’expansion ;
|
||
[Validation](testing.md) conserve la portée des essais de chaque version.
|
||
|
||
## Créer un nouveau monde
|
||
|
||
En solo, choisir **Sanctuary**, ouvrir **Personnaliser**, puis confirmer la
|
||
taille avec **Terminé**. **Annuler** conserve le réglage précédent. Cette
|
||
interface configure le monde à créer ; elle ne redimensionne pas une partie.
|
||
|
||
Sur un nouveau serveur Fabric avec Fabric API, le preset public utilise la
|
||
taille **Moyen**, 724 blocs :
|
||
|
||
```properties
|
||
level-type=sanctuary:sanctuary
|
||
level-name=sanctuary-dev
|
||
level-seed=0
|
||
```
|
||
|
||
La graine est libre. Utiliser un dossier neuf pour un essai ; modifier
|
||
`level-type` ne convertit aucun monde enregistré. Aucune commande de migration
|
||
ou de régénération des anciennes îles n’est fournie.
|
||
|
||
## Compatibilité et versions historiques
|
||
|
||
L’alpha.13 enregistre le générateur `sanctuary:island_v13`, son diamètre initial
|
||
et une racine de génération 13. Les nouvelles expansions restent de génération
|
||
12. Leur journal utilise le dossier propre au monde
|
||
`data/sanctuary-world-v13/`. Les anciens codecs et presets sont conservés, mais
|
||
cachés de la sélection publique. Les mondes déjà créés conservent leurs réglages
|
||
et leur journal ; aucun chunk n’est remplacé par cette mise à jour.
|
||
|
||
### Alpha.12 et alpha.12.1 — laboratoire historique
|
||
|
||
Le preset distinct `sanctuary:expansion_lab` proposait une origine de 512 blocs
|
||
et des commandes opérateur pour ajouter des îles de 64/128/256/512 blocs.
|
||
Son relief expérimental et ses biomes natifs ne reprenaient pas les grandes
|
||
rivières et terrasses de Population. L’alpha.12.1 ajoutait une distance
|
||
facultative et la recherche d’un emplacement libre au-delà des chunks occupés.
|
||
|
||
Ces mondes gardent leur génération 12 et leur dossier
|
||
`data/sanctuary-expansion-v1/`. Le [guide du laboratoire](alpha12-laboratory.md)
|
||
reste la référence historique de ces versions, avec leurs seules observations.
|
||
|
||
### Alpha.11 — Petit et Grand historiques
|
||
|
||
| Ancien choix public | Diamètre nominal | Ancien preset | Réglage enregistré |
|
||
| --- | --- | --- | --- |
|
||
| Petit | 512 blocs | `sanctuary:sanctuary_5` | `sanctuary:population_5` |
|
||
| Grand, ancien défaut | Environ 724 blocs | `sanctuary:sanctuary` | `sanctuary:population_10` |
|
||
|
||
L’ancien Grand correspond à la taille nominale du nouveau Moyen. Les mondes
|
||
historiques `population_5`, `population_10`, `population_20` et `population_100`
|
||
restent chargeables avec leurs dimensions. Le preset public est une recette
|
||
de création ; sa nouvelle définition ne remplace pas leur générateur sauvegardé.
|
||
|
||
L’optimisation alpha.11 conserve l’arithmétique de l’interpolation et les règles
|
||
de terrain et d’hydrologie. Ses mesures et contrôles sont historiques, sans
|
||
validation anticipée des ajouts de l’alpha.13.
|
||
|
||
## Socle de génération conservé
|
||
|
||
Les points suivants décrivent le socle livré jusqu’à l’alpha.8. Les évolutions
|
||
alpha.9 et alpha.10 sont précisées dans les sections v9 et v10 ci-dessous.
|
||
|
||
- Le générateur reste celui de Minecraft, `minecraft:noise`.
|
||
- La forme reprend le champ de bruit flottant actif en 26.2 : `old_blended_noise`
|
||
avec `xz_scale=0.25`, `y_scale=0.25`, `xz_factor=80`, `y_factor=160`, `smear=4`,
|
||
ainsi que son gradient supérieur. Il est échantillonné **64 blocs plus bas**
|
||
pour relever l'île entière de 64 blocs. Reliefs, surplombs, trous et fragments
|
||
dépendent de la seed Minecraft. L’alpha.8 y soustrait des failles courbes,
|
||
sans ajouter de matière. L'ancien gradient inférieur uniforme est
|
||
remplacé par la sculpture irrégulière décrite ci-dessous.
|
||
- Le terrain naturel reste libre de laisser un trou à l'origine, de former des
|
||
surplombs ou de se séparer en fragments. **Aucun noyau ellipsoïdal, cylindre ou
|
||
plateforme de départ n'est ajouté.** Le relief relevé de 64 blocs reste le
|
||
champ source ; les failles de l’alpha.8 en retirent de la matière et
|
||
l’hydrologie traite ensuite les lits et les rives près de la surface.
|
||
- Le pourtour est sculpté par retrait de matière à partir du rayon **128 blocs**.
|
||
Le contour de référence de 256 blocs est déformé par les bruits, entre 204 et
|
||
288 blocs ; il indique la fin de l'érosion, pas un mur de roche.
|
||
La côte réelle apparaît plus tôt, selon la densité du terrain et la seed.
|
||
Aucun terrain ne réapparaît au-delà de **288 blocs**, sans répétition d'îles.
|
||
Les arbres peuvent dépasser la côte rocheuse de quelques blocs.
|
||
- Les nouveaux mondes utilisent **384 blocs de hauteur**, de `Y=0` à `Y=383`,
|
||
pour la dimension et le générateur. La roche disparaît avant leurs limites.
|
||
Il n'y a ni plancher de bedrock,
|
||
ni mer globale, ni reprise du terrain à distance. Le Nether et l'End restent
|
||
ceux de Minecraft.
|
||
- Les nouveaux mondes utilisent une palette tempérée de forêts de chênes et de
|
||
bouleaux, de clairières fleuries et de zones rocheuses. Les strates intérieures
|
||
portent des chênes noirs et des champignons sur leurs corniches naturelles.
|
||
Dappled Forest est réservé aux futurs continents. Leur végétation et leurs animaux proviennent
|
||
de Minecraft 26.3-pre-2. Les nouveaux identifiants ne reprennent pas les tags
|
||
de structures vanilla, afin de ne pas placer leurs structures dans le vide.
|
||
- Jusqu’à l’alpha.8, les carvers, géodes, donjons, grands lacs de lave et sources
|
||
vanilla sont retirés. L’alpha.9 ajoute une intégration bornée de géodes et
|
||
de geysers, sans réactiver l’ensemble de la décoration souterraine vanilla.
|
||
L’eau de Sanctuary suit son propre plan de surface et de niches
|
||
rocheuses. Les arbres et les petits filons ont besoin du terrain existant.
|
||
Aucun mod de biomes externe n’est nécessaire.
|
||
|
||
L’alpha.8 associe ces biomes aux plages, aux eaux et aux filons décrits
|
||
ci-dessous. Les ressources de survie ne se limitent pas au bois et à la pierre,
|
||
mais cet incrément ne garantit pas encore une partie Minecraft complète sur
|
||
chaque seed. L’accès à chaque progression vanilla et les ressources renouvelables
|
||
nécessitent des vérifications concrètes. Les stocks réels sont relevés après la
|
||
génération, sans corriger une île pour atteindre un quota.
|
||
|
||
## Capacité de l’île — génération v10 historique
|
||
|
||
Lors de l’alpha.10, trois tailles étaient accessibles à la création d’un monde.
|
||
Le choix **Sanctuary** visait 20 joueurs par défaut, accompagné de variantes
|
||
pour 5 et 100 joueurs. Le tableau suivant conserve cette association historique ;
|
||
l’alpha.11 utilise le nouveau défaut Grand indiqué plus haut :
|
||
|
||
| Preset de création | Paramètres enregistrés dans le monde |
|
||
| --- | --- |
|
||
| `sanctuary:sanctuary_5` | `sanctuary:population_5` |
|
||
| `sanctuary:sanctuary` | `sanctuary:population_20` |
|
||
| `sanctuary:sanctuary_100` | `sanctuary:population_100` |
|
||
|
||
Les nouveaux réglages restent distincts des identifiants enregistrés dans
|
||
les anciennes sauvegardes. Modifier le preset
|
||
sélectionné pour une nouvelle partie ne convertit pas un monde existant.
|
||
|
||
| Capacité de référence | Facteur horizontal | Aire nominale relative | Diamètre nominal | Hauteur |
|
||
| --- | --- | --- | --- | --- |
|
||
| 5 joueurs | 1 | 1 | 512 blocs | 384 blocs |
|
||
| 20 joueurs, défaut | 2 | 4 | 1 024 blocs | 384 blocs |
|
||
| 100 joueurs | √20, environ 4,472 | 20 | Environ 2 290 blocs | 384 blocs |
|
||
|
||
Le facteur horizontal vaut `√(capacité / 5)` : doubler le diamètre multiplie
|
||
l’aire nominale par quatre. Cette relation décrit l’enveloppe de référence,
|
||
pas la surface réellement constructible après les trous, les falaises et
|
||
la sculpture de la bordure. Aucun cylindre central ni remplissage de secours
|
||
ne doit être ajouté pour obtenir l’aire théorique. La hauteur de dimension
|
||
reste `Y=0..383`.
|
||
|
||
La capacité choisie reste un paramètre de génération. Elle ne modifie pas
|
||
`max-players`, n’agrandit pas l’île à chaque connexion et ne fixe aucun quota
|
||
de ressources. Les anciens mondes jusqu’à l’alpha.9 gardent leur génération
|
||
et leur taille ; leurs chunks ne sont ni remplacés ni régénérés. Le projet
|
||
de continents déverrouillables reste séparé de ces tailles de départ.
|
||
|
||
Le bruit naturel reste échantillonné aux coordonnées du monde ; seule
|
||
l’enveloppe extérieure change de taille. Les plans hydrauliques sont construits
|
||
à la demande dans des régions de 512 blocs, avec une graine régionale distincte.
|
||
Les marges d’admission sont de 16 blocs pour l’eau et 32 pour la lave. Bassins,
|
||
berges et groupes de terrasses sont admis entiers ; les sources dépendant d’une
|
||
coupe écartée sont retirées aussi. Aucun trajet n’est tronqué à la frontière.
|
||
Les couches superposées et leurs sources sont ensuite traduites ensemble.
|
||
|
||
Les forêts, minerais et décorations utilisent toute l’emprise du profil.
|
||
La recherche facultative d’un arbre remarquable reste unique et centrale.
|
||
Les sources et exutoires n’agissent que pendant la génération, avec les
|
||
marqueurs vanilla consommés ; recharger un ancien chunk ne rouvre pas une bouche.
|
||
|
||
Les trois tailles passent onze tests requis sur la graine `0`, avec 1 800 ticks
|
||
de fluides et un aller-retour réel des paramètres sur disque. Le fichier
|
||
`data/minecraft/world_gen_settings.dat` conserve la clé du profil choisi.
|
||
212 anciens fichiers de production sont strictement identiques, tandis que
|
||
huit fichiers d’intégration ou d’interface exposent les nouvelles générations.
|
||
Le premier calcul d’une région reste coûteux ; les résultats ne sont pas un
|
||
test de cent connexions ni une garantie de génération rapide de toute l’île.
|
||
Voir les emprises et durées dans [Validation](testing.md).
|
||
|
||
## Cavités et terrasses d’eau — génération v9
|
||
|
||
Le nouveau réglage est `sanctuary:sanctuary_cavern`, avec le biome source
|
||
`sanctuary:cavern_island` et la règle de matière `sanctuary:cavern_island`.
|
||
La densité réutilise `sanctuary:final_density_rift` sans changer cet identifiant
|
||
historique. Ses nouvelles données et traitements
|
||
doivent rester distincts de `sanctuary:sanctuary_rift` et de toutes les
|
||
générations précédentes. Le preset sélectionne la nouvelle génération à la
|
||
création ; une mise à jour du JAR ne convertit pas une sauvegarde ni ne
|
||
régénère ses chunks. Les cavités restent dans l’Overworld sur 384 blocs de
|
||
hauteur ; la dimension des cavernes décrite dans la vision n’est pas ajoutée.
|
||
|
||
### Ambiances et ressources
|
||
|
||
Le ticket conserve les forêts de surface et ajoute des cavités luxuriantes
|
||
éclairées par leur végétation, des secteurs à spéléothèmes et des géodes
|
||
d’améthyste sur des emplacements compatibles. Les sols, plafonds, coquilles
|
||
et ouvertures doivent être observés après la décoration réelle : une valeur
|
||
de biome ne prouve ni le décor ni son éclairage. L’objectif est d’utiliser
|
||
les volumes naturels de l’île, sans remplir ses trous pour accueillir une
|
||
structure.
|
||
|
||
Les dix biomes ont leurs propres identifiants : `cavern_oak_forest`,
|
||
`cavern_birch_forest`, `cavern_clearing`, `cavern_dry_woodland`,
|
||
`cavern_rocky_heath`, `cavern_dark_grove`, `cavern_bamboo_grove`,
|
||
`cavern_sulfur_depths`, `cavern_lush_caves` et `cavern_dripstone_caves`, dans
|
||
le namespace `sanctuary`. Les deux nouvelles ambiances luxuriantes et à
|
||
spéléothèmes sont limitées à Y<184 par la palette ; leur décoration recherche
|
||
des sols entre Y=40 et Y=182, avec trois blocs naturels de support et un
|
||
plafond situé de 6 à 48 blocs au-dessus.
|
||
|
||
Dans les cavités luxuriantes, la mousse remplace le sol compatible et de
|
||
petites plantes l’accompagnent. Les vraies lianes `cave_vines` et
|
||
`cave_vines_plant` pendent sur 3 à 8 blocs ; leurs baies émettent de la lumière
|
||
et restent récoltables. Ce décor n’ajoute pas d’eau. Les spéléothèmes utilisent
|
||
les blocs `pointed_dripstone` orientés, sur un appui de `dripstone_block`
|
||
remplaçant de la roche existante, avec une longueur de 1 à 4 blocs selon
|
||
l’espace disponible.
|
||
|
||
La géode utilise une configuration vanilla compacte avec améthyste,
|
||
améthyste bourgeonnante, calcite et basalte lisse. Son enveloppe doit tenir
|
||
dans la roche préexistante et un passage de deux blocs de haut la relie à
|
||
la cavité, en préservant l’améthyste bourgeonnante et les cristaux attachés.
|
||
Un chunk sur huit est candidat ; au plus une pose réussie est retenue par
|
||
chunk candidat. Cela ne garantit pas de géode sur une graine.
|
||
|
||
Le soufre devient admissible dans une bande climatique plus étroite sous
|
||
Y=176. La réduction de cette sélection peut être testée indépendamment du
|
||
terrain ; seule une comparaison des vrais blocs sur un périmètre commun
|
||
mesure sa diminution dans l’île. Un geyser éventuel creuse un seul bloc de
|
||
sol pour sa source d’eau, avec `potent_sulfur` dessous et `magma_block` encore
|
||
en dessous. Le fond, les quatre parois et la hauteur libre sont contrôlés.
|
||
Le cycle du geyser reste celui de Minecraft ; ce décor est distinct des
|
||
bassins hydrologiques et son eau doit être comptée séparément.
|
||
|
||
Leur présence, leur activité, l’éclairage et la cohabitation avec les eaux
|
||
et la végétation sont contrôlés dans les mondes de test. Les preuves de ces
|
||
éléments sont cumulées sur les trois graines. Un site incompatible peut
|
||
être rejeté ; aucun geyser ni stock n’est garanti pour chaque graine.
|
||
|
||
### Lacs et bassins étagés
|
||
|
||
Le plan hydrologique conserve la recherche de rivière de
|
||
l’alpha.8 et vise de plus grands lacs de surface. Les cibles actuelles sont
|
||
de l’ordre de **700 à 1 100 colonnes** par grand lac, jusqu’à **7 à 8 blocs**
|
||
de profondeur intérieure et une incision limitée à **12 blocs**. Ce sont des
|
||
bornes de recherche ; les dimensions réelles sont relevées séparément, sans quota d’eau à
|
||
remplir. Les fonds, les parois et les dépôts exigent du terrain naturel.
|
||
|
||
Les terrasses sont recherchées dans des cavités entre **Y=56 et Y=208**,
|
||
avec deux paliers par groupe et jusqu’à deux groupes facultatifs.
|
||
Un palier vise environ **40 à 180 colonnes**, une profondeur de **1 à 3 blocs**
|
||
et une incision d’au plus **5 blocs**. Le fond doit conserver trois couches
|
||
de sédiments et deux couches de support naturel ; le plafond et l’espace
|
||
disponible sont vérifiés. Les mesures moteur précisent les sites effectivement retenus.
|
||
|
||
La recherche suit le choix de pente de l’eau vanilla : parmi les passages
|
||
libres, elle privilégie ceux qui rejoignent la chute la plus proche. Un
|
||
bassin inférieur doit intercepter ce trajet réel, sans détour creusé pour
|
||
le rejoindre. Les sorties entre paliers sont déclarées et les cascades sont formées par les
|
||
ticks de fluides Minecraft. Le premier débordement doit atteindre le second
|
||
bassin. Celui-ci peut avoir un exutoire terminal qui s’écoule sur les roches
|
||
ou vers le vide, sans troisième bassin ajouté. Le générateur ne doit ni peindre une colonne
|
||
d’eau jusqu’au vide ni colmater un trou pour retenir un bassin. Les volumes
|
||
retenus et les liaisons réelles sont vérifiés séparément après décoration
|
||
et simulation, y compris aux frontières de chunks. Les cascades peuvent
|
||
servir à monter ou descendre selon la nage vanilla ; aucune mécanique
|
||
d’ascenseur supplémentaire n’est prévue. « Rizières » décrit seulement
|
||
l’aspect du paysage en terrasses, sans ajouter une culture de riz.
|
||
|
||
**Validation moteur au 9 septembre 2026 :** les trois graines de référence
|
||
passent les contrôles après 1 800 ticks, avec preuves cumulées des terrasses
|
||
connectées, geysers actifs, baies lumineuses, spéléothèmes et améthyste
|
||
bourgeonnante. Le build complet réussit. Les résultats et leurs limites sont
|
||
consignés dans [Validation](testing.md). Aucune présence universelle n’est
|
||
garantie. La [distribution](packwiz.md) est publiée et la même instance Prism
|
||
est synchronisée, sauvegardes et réglages conservés.
|
||
|
||
## Failles, géologie et ressources — génération v8
|
||
|
||
Les nouveaux mondes utilisent `sanctuary:sanctuary_rift`, la densité
|
||
`sanctuary:final_density_rift` et le biome source `sanctuary:rift_island`.
|
||
Les anciens paramètres `sanctuary`, `sanctuary_384`, `sanctuary_hydrology`,
|
||
`sanctuary_natural`, `sanctuary_layered` et `sanctuary_woodland` restent séparés.
|
||
Changer le preset ne migre pas un monde existant ; aucune régénération de
|
||
chunks ni modification de sauvegarde n’est prévue par cet incrément.
|
||
|
||
### Failles et palette
|
||
|
||
`RiftShape` définit une à trois traces principales, courbes et ramifiées,
|
||
de longueur nominale 84 à 160 blocs. Leur largeur varie avec deux bruits en
|
||
trois dimensions ; le cœur ouvert est de l’ordre de 4 à 12 blocs, avec des
|
||
parois érodées autour. Ces nombres décrivent les traces avant leur intersection
|
||
avec la roche, pas une garantie de canyon continu de cette taille. La passe
|
||
retire seulement de la matière et laisse intactes les zones de rayon inférieur
|
||
à 20 blocs et extérieur à 224 blocs. Elle ne crée aucun socle central.
|
||
|
||
Les huit biomes `rift_oak_forest`, `rift_birch_forest`, `rift_clearing`,
|
||
`rift_dry_woodland`, `rift_rocky_heath`, `rift_dark_grove`, `rift_bamboo_grove`
|
||
et `rift_sulfur_depths` ont de nouveaux identifiants dans le namespace
|
||
`sanctuary`. Les choix climatiques de l’alpha.7 sont conservés en haut. Le
|
||
soufre devient admissible dans des régions plus larges des étages inférieurs,
|
||
notamment vers Y=176, selon les bruits de variation et d’humidité. Le test de
|
||
palette prouve cette possibilité ; seule la lecture des vrais blocs peut
|
||
prouver une poche accessible sur une graine.
|
||
|
||
La végétation vanilla de surface garde ses arbres et ses teintes. La feature
|
||
`rift_groves` passe ensuite, avant `rift_shore_sugar_cane`, pour choisir les
|
||
volumes inférieurs encore libres après les arbres. Elle peut placer de gros
|
||
champignons vanilla, avec des petits champignons dispersés et des sols mêlant
|
||
mousse, podzol et mycélium. Les supports naturels et la place disponible
|
||
restent nécessaires ; un arbre remarquable peut échouer si son site est occupé.
|
||
L’ordre des plantations intérieures donne la priorité aux arbres dans trois
|
||
cas sur quatre et aux gros champignons dans l’autre cas, selon un choix lié
|
||
au chunk. Cela laisse des volumes disponibles aux chênes noirs. Dans les
|
||
biomes `sanctuary:rift_dark_grove` et `sanctuary:rift_bamboo_grove`, l’ardoise
|
||
des abîmes peut aussi fournir le support naturel des sols et bosquets
|
||
inférieurs. Son admissibilité est vérifiée au-dessus de chaque pied : seules
|
||
ces deux variantes humides autorisent ce support.
|
||
|
||
### Matières selon la profondeur
|
||
|
||
La règle `sanctuary:rift_island` ne change que la matière de blocs déjà solides.
|
||
Ses nappes utilisent un bruit 3D, avec un bruit distinct pour faire varier les
|
||
transitions de profondeur.
|
||
|
||
| Domaine | Matières |
|
||
| --- | --- |
|
||
| Masses supérieures | Pierre, granite, andésite, diorite ; sols enherbés hors affleurements |
|
||
| Intérieur des bosquets humides | Tuf, cobblestone, cobblestone moussue, boue compactée |
|
||
| Masses profondes | Ardoise des abîmes, roche noire, basalte |
|
||
| Poches soufrées | Soufre et cinabre ordinaires sur les masses existantes |
|
||
|
||
Les strates humides se mêlent aux matières hautes entre Y=192 et Y=224 dans
|
||
leurs biomes ; la transition vers les roches profondes s’étend de Y=136 à Y=168.
|
||
La profondeur sert de critère géologique : ces blocs ne signifient pas qu’une
|
||
source de lave se trouve forcément à proximité. Aucun bassin, spike, source
|
||
vanilla ou bloc de soufre puissant du biome Sulfur Caves n’est ajouté.
|
||
|
||
Les anciens petits dépôts vanilla de granite, andésite, diorite et tuf sont
|
||
remplacés par ces nappes dans les seuls biomes `rift_*`. Les anciennes données
|
||
de biomes et leurs features ne sont pas modifiées.
|
||
|
||
### Minerais
|
||
|
||
Les features `rift_ore_*` ciblent des tags Sanctuary locaux : les pierres hautes
|
||
et humides produisent les minerais ordinaires ; ardoise des abîmes, roche noire
|
||
et basalte produisent leurs variantes d’ardoise. Les tags vanilla ne sont pas
|
||
élargis globalement. Le soufre et le cinabre restent des matières distinctes.
|
||
|
||
| Minerai | Taille du filon configurée | Essais principaux par chunk | Altitudes principales |
|
||
| --- | ---: | --- | --- |
|
||
| Charbon | 9 | 8 | Y=96..304 |
|
||
| Fer | 7 | 4 | Y=88..280 |
|
||
| Cuivre | 7 | 3 | Y=96..280 |
|
||
| Or | 5 | 2 | Y=88..224 |
|
||
| Redstone | 5 | 2 | Y=88..216 |
|
||
| Lapis | 4 | 1 | Y=104..240 |
|
||
| Diamant | 4 | Un essai une fois sur deux | Y=80..208 |
|
||
| Émeraude | 3 | 1 | Y=104..224 |
|
||
|
||
Les hauteurs suivent une distribution en trapèze. Charbon, fer et cuivre
|
||
reçoivent aussi respectivement 4, 2 et 2 essais sur roche supérieure exposée,
|
||
et autant de recherches de corniche depuis l’air entre Y=64 et Y=288. Un essai
|
||
peut ne produire aucun bloc. Les tailles configurées ne sont ni des quantités
|
||
garanties par filon ni des quotas par île. L’exposition à l’air est autorisée
|
||
pour ces trois minerais et l’émeraude ; une partie des candidats exposés est
|
||
encore écartée pour les autres minerais. Les stocks devront être relevés après
|
||
génération, avec leur emprise explicite.
|
||
|
||
### Eaux et lave
|
||
|
||
`RiftHydrology` cherche des bassins plus grands et une longue liaison calme
|
||
sur la vraie densité fissurée. Le critère de cet incrément est un chemin d’eau
|
||
continu d’au moins 140 blocs entre deux bassins au même niveau, alimenté par
|
||
une source rocheuse et sa cascade entrante. Il ne s’agit pas d’une rivière
|
||
descendant continuellement en altitude. La recherche parcourt huit directions
|
||
et pondère les trajets selon le relief et un bruit ; le parcours retenu est
|
||
lissé sur une échelle de 16 à 32 blocs, puis arrondi avant sa conversion en
|
||
blocs. Le lit varie entre environ 5 et 7 blocs de largeur, hors élargissement
|
||
des bassins. Le chemin et ses marges sont à nouveau vérifiés sur la roche
|
||
après ce lissage : une courbe ne peut pas servir à franchir un trou.
|
||
|
||
La roche doit soutenir le fond et les berges. L’incision du lit reste limitée
|
||
à 16 blocs. Les berges de rivière peuvent retirer jusqu’à 12 blocs pour
|
||
rejoindre l’eau par paliers progressifs ; les autres rives conservent leur
|
||
limite de 2 blocs. Les dépôts de 3 à 5 couches ont toujours besoin de supports
|
||
naturels. Aucun remblai ne franchit une faille ou un trou. Si aucun parcours
|
||
compatible n’est retenu, le générateur garde les bassins et sources qui
|
||
conviennent au relief.
|
||
|
||
Le calcul initial du plan reste coûteux : les essais finaux sur ce poste
|
||
mesurent 80,5 secondes pour la graine `0`, 50,7 pour `42` et 59,7 pour
|
||
`8675309`, hors génération des chunks. Le résultat est mis en cache par état
|
||
aléatoire du monde ; il n’est pas recalculé pour chaque chunk. L’optimisation
|
||
de ce premier calcul reste un travail ultérieur.
|
||
|
||
La recherche de lave profonde vise une à deux petites sources entre Y=40 et
|
||
Y=160, en complément de la niche couverte accessible. Cette poche de 18 blocs
|
||
sources est recherchée d’abord sur une corniche intérieure entre Y=64 et
|
||
Y=160. Si aucun site profond ne réunit les conditions de support, de voûte
|
||
et d’accès, la recherche reprend sur les corniches plus hautes, jusqu’à Y=300.
|
||
Il n’y a pas de poche créée de force lorsque les deux recherches échouent.
|
||
Les sources supplémentaires laissent Minecraft former leurs coulées par ses
|
||
ticks, sans colonne préremplie. L’eau, les supports et les marges de végétation doivent être
|
||
contrôlés après décoration et simulation. La finition des bouches doit rester
|
||
limitée à la première génération du chunk, sans effacer un aménagement joueur
|
||
lors d’un rechargement.
|
||
|
||
**Validation du 9 septembre 2026 :** le build complet réussit et les contrôles
|
||
moteur passent sur les trois graines de référence. Les failles, les bassins terminaux,
|
||
les liaisons de rivière, les champignons et les fluides après 1 800 ticks sont
|
||
documentés avec les relevés de ressources dans [Validation](testing.md).
|
||
Ces échantillons ne garantissent pas la présence de chaque ressource sur
|
||
toutes les graines. Les rapports intermédiaires ne servent pas de preuve
|
||
pour la version finale ; aucun monde personnel n’est utilisé par ces tests.
|
||
|
||
## Sculpture du pourtour — conservée depuis la génération v2
|
||
|
||
La version **0.1.0-alpha.2** retire deux contraintes de la génération v1
|
||
(`0.1.0-alpha.1`) : le noyau central qui remplissait les creux du bruit naturel,
|
||
et la découpe radiale qui pouvait exposer une tranche verticale à toutes les
|
||
altitudes. Les identifiants `sanctuary:*` du preset et de la fonction restent
|
||
stables. Il s'agit d'une évolution du terrain, pas d'une migration de sauvegarde.
|
||
|
||
Trois passes composent désormais la densité finale, après l'interpolation du
|
||
champ historique :
|
||
|
||
1. Un bruit horizontal à grande échelle déforme le contour. Dans la bande
|
||
extérieure, large de 128 blocs avant déformation, une érosion progressive
|
||
(`2 × t⁴`) augmente le seuil nécessaire pour conserver de la roche. Une
|
||
érosion supplémentaire, quadratique selon la hauteur et nulle à l'intérieur,
|
||
fait reculer les faces hautes et basses même lorsque le bruit naturel est
|
||
saturé dans une grande masse pleine. Elle arrondit le pourtour sans ajouter
|
||
de volume au centre.
|
||
2. Un bruit **3D**, échantillonné à la hauteur réelle, déplace ce contour et
|
||
creuse des renfoncements plus larges. Le bord peut ainsi changer de position
|
||
avec l'altitude au lieu de prolonger une ligne verticale.
|
||
3. Un second bruit **3D**, plus fin, ajoute de petites irrégularités. Ces deux
|
||
passes s'atténuent progressivement vers l'intérieur ; elles ne remplissent
|
||
jamais un trou du terrain initial.
|
||
|
||
Les bruits `island_edge`, `island_sculpt` et `island_detail` sont tous initialisés
|
||
avec la seed du monde. Ils utilisent respectivement les octaves de base
|
||
`-7`, `-5` et `-3`. Les nouvelles entrées `sculpt` et `detail` du codec sont
|
||
optionnelles pour garder les anciennes définitions JSON lisibles ; leur absence
|
||
ne rétablit pas le noyau de la génération v1.
|
||
|
||
L'érosion est toujours soustraite à la densité bornée du terrain. Une densité
|
||
nulle ou négative ne peut donc jamais devenir solide. Même avec un terrain
|
||
d'entrée maximalement positif, elle est négative dès le rayon 280, avant la
|
||
limite de sécurité 288. Deux transitions verticales douces protègent aussi les
|
||
bornes de hauteur, sans découper de dalle à `Y=0` ou `Y=256`.
|
||
|
||
Ces formules sont toujours utilisées par les sauvegardes de la génération v2.
|
||
La génération v3 conserve la sculpture latérale dans le repère de l'île relevée.
|
||
|
||
## Île relevée et dessous irrégulier — génération v3
|
||
|
||
La version **0.1.0-alpha.3** crée les nouveaux mondes avec les paramètres et le
|
||
type de dimension `sanctuary:sanctuary_384` : `min_y=0`, `height=384` et
|
||
`logical_height=384`. Le nom du preset sélectionné reste `sanctuary:sanctuary`.
|
||
Le gain de hauteur n'agrandit pas le rayon horizontal et n'active aucun continent.
|
||
|
||
Le bruit naturel et les bruits de sculpture sont échantillonnés à `Y−64`.
|
||
Le profil supérieur et les bords approuvés en alpha.2 sont ainsi relevés sans
|
||
changer de seed ou étirer l'île. Sur les graines de régression, les sommets
|
||
proches de `Y=184` se retrouvent vers `Y=248`, avec de l'espace libre au-dessus.
|
||
|
||
Sous l'île, déplacer l'ancien gradient inférieur aurait seulement déplacé son
|
||
plan de coupe. `floating_archipelago_384` conserve donc le bruit naturel sans
|
||
ce gradient inférieur. Une nouvelle érosion travaille sur une transition de
|
||
**72 blocs**, dont l'altitude varie avec le bruit 3D `island_underside` et les
|
||
deux bruits de sculpture existants. Elle laisse les lobes naturels se poursuivre
|
||
vers le bas, puis les amincit à différentes hauteurs ; elle n'ajoute ni socle ni
|
||
surface garantie. La transition n'affecte plus le terrain à partir de `Y=144`.
|
||
Une marge vide protège le bas de la dimension : aucun plancher rocheux ne doit
|
||
apparaître dans `Y=0..15`. À partir de l’alpha.5, seules les eaux descendantes de
|
||
sources explicitement déclarées peuvent traverser cette marge.
|
||
|
||
Les champs optionnels du codec `vertical_offset`, `height` et `underside` valent
|
||
respectivement `0`, `256` et un bruit nul par défaut. Seule la nouvelle fonction
|
||
`sanctuary:final_density_384` active l'offset `64`, la hauteur `384` et le bruit du
|
||
dessous. Les anciennes fonctions `final_density`, `floating_archipelago` et les
|
||
paramètres `sanctuary:sanctuary` restent inchangés : les sauvegardes alpha.2 qui
|
||
les référencent gardent leur hauteur de génération et leur ancien terrain.
|
||
|
||
**Créer un nouveau monde pour tester l'île relevée.** L'actualisation du pack ne
|
||
convertit pas les sauvegardes existantes ; aucun chunk n'est supprimé, déplacé
|
||
ou régénéré. Il n'existe pas de migration automatique des anciens mondes vers la
|
||
dimension de 384 blocs. Changer manuellement leurs références de générateur ou
|
||
de dimension sort de ce contrat de compatibilité.
|
||
|
||
## Hydrologie de surface — génération v4
|
||
|
||
La version **0.1.0-alpha.4** conserve la densité, la hauteur et le ciel de
|
||
l’alpha.3. Les nouveaux mondes sélectionnent les paramètres
|
||
`sanctuary:sanctuary_hydrology` et le biome `sanctuary:starter_forest_hydrology`.
|
||
Le type de dimension reste `sanctuary:sanctuary_384`. Les anciens paramètres et
|
||
le biome `sanctuary:starter_forest` restent disponibles et inchangés : ils
|
||
n’activent pas cette hydrologie dans les sauvegardes antérieures.
|
||
|
||
Un plan calculé depuis le relief et la graine recherche des emplacements de
|
||
surface pour des étangs, des petits lacs et un premier cours d’eau calme.
|
||
Le lit peut être légèrement creusé dans la roche existante. Avant d’accepter
|
||
un emplacement, le plan vérifie le fond et les parois en trois dimensions ainsi
|
||
que l’ouverture vers le ciel. Un trou profond dans la carte de hauteur ne suffit
|
||
pas à constituer un lac. Aucune digue ni masse de roche n’est ajoutée pour
|
||
boucher une fuite, et aucun bassin souterrain n’est rempli.
|
||
|
||
Les fonds alternent sable, gravier et argile ; les berges basses peuvent recevoir
|
||
du sable. Dans ce nouveau biome, les disques de sédiments vanilla et les veines
|
||
de gravier sont remplacés par ces dépôts de rive et de fond : une feature
|
||
ultérieure ne doit pas transformer leur support en gravier instable. Les
|
||
sources de magma sous-marines sont également absentes. Après les arbres et la
|
||
végétation, de la canne à sucre peut pousser sur
|
||
les rives qui respectent ses règles de placement vanilla. Le nombre de sites,
|
||
leur eau et leurs ressources dépendent du terrain : le générateur ne complète
|
||
pas une graine pour atteindre un quota économique.
|
||
|
||
Le plan est indépendant des chunks chargés. Chaque chunk applique uniquement
|
||
ses propres colonnes après le terrain et avant la décoration, ce qui permet de
|
||
raccorder un même plan d’eau aux frontières des chunks. Les anciens chunks ne
|
||
sont jamais retouchés, et aucun travail hydrologique ne se déclenche au simple
|
||
chargement d’une sauvegarde.
|
||
|
||
Cette première version vise de petites eaux retenues et des cours d’eau calmes
|
||
sur les plateaux. Le cours d’eau est un chenal à niveau constant reliant des
|
||
plans d’eau ; il ne simule pas encore une pente vers l’aval ou un débit. Les
|
||
tracés peuvent passer par les diagonales, mais leur eau reste connectée de
|
||
bloc en bloc. L’excavation est limitée à six blocs, l’eau à quatre blocs de
|
||
profondeur, avec un fond plein sur trois blocs d’épaisseur, dont deux blocs naturels sous
|
||
le sédiment. Ce contrat alpha.4 reste celui de ses sauvegardes. Les sources en cascade sont
|
||
ajoutées séparément dans la génération v5 ; les grandes rivières en pente, océans,
|
||
aquifères, climats multiples et continents restent des incréments distincts.
|
||
|
||
## Plages, sources et mosaïque tempérée — génération v5
|
||
|
||
L’implémentation **0.1.0-alpha.5** sélectionne la nouvelle clé de paramètres
|
||
`sanctuary:sanctuary_natural` (`SanctuarySpawn.NATURAL_SETTINGS`). Elle conserve
|
||
la densité relevée, les 384 blocs de hauteur et le ciel de l’alpha.3. La classe
|
||
`NaturalHydrology` et son application sont séparées de `SurfaceHydrology` et
|
||
`HydrologyRuntime` : le code, les paramètres `sanctuary:sanctuary_hydrology` et
|
||
le biome `sanctuary:starter_forest_hydrology` de l’alpha.4 restent inchangés.
|
||
Les clés alpha.2 et alpha.3 restent également disponibles avec leur comportement
|
||
antérieur. **Ces changements concernent uniquement les nouveaux mondes** : aucune
|
||
conversion de sauvegarde, régénération de chunk ou expansion n’est effectuée.
|
||
|
||
### Dépôts et eau de surface
|
||
|
||
Le plan recherche des étangs, de petits lacs et un cours d’eau calme dans le
|
||
relief naturel. L’excavation maximale passe à **quatre blocs**, pour une eau de
|
||
**trois blocs de profondeur** au plus. Les bassins gardent un fond et des parois
|
||
naturels pleins ; aucune digue n’est ajoutée et aucune chambre souterraine n’est
|
||
remplie. Le cours d’eau reste à niveau constant : il ne modélise pas un débit
|
||
ni une pente continue vers l’aval.
|
||
|
||
Les plages sont des nappes irrégulières qui suivent les faibles variations du
|
||
relief autour des plans d’eau. Elles peuvent s’étendre sur plusieurs blocs,
|
||
se rapprocher d’une autre poche d’eau et retrouver progressivement l’herbe ou
|
||
la pierre. Les matériaux varient entre sable, gravier, pierre et terre enherbée ;
|
||
l’argile peut apparaître dans les fonds. Le traitement d’une terrasse sèche
|
||
retire au plus **deux blocs** du relief existant.
|
||
|
||
Chaque dépôt remplace **trois à cinq couches** de terrain déjà plein et garde
|
||
**deux couches naturelles de support** en dessous. Ce support permet notamment
|
||
au sable et au gravier de rester en place après les mises à jour de gravité.
|
||
Les veines de gravier, disques de sédiments et magma sous-marin vanilla ne sont
|
||
pas réintroduits dans ces nouveaux biomes. Les autres décorations rocheuses et
|
||
les minerais peuvent encore remplacer la pierre ; ils ne remplacent pas les
|
||
couches de sable, gravier ou argile. Les rives compatibles peuvent porter de la
|
||
canne à sucre après la végétation. Les troncs couchés vanilla peuvent occuper
|
||
quelques blocs de la surface d’un étang ; les contrôles distinguent cette
|
||
décoration de l’eau restante et vérifient leur fond ou l’eau sous les troncs,
|
||
les sources voisines et la rétention du bassin.
|
||
|
||
### Sources rocheuses et cascades
|
||
|
||
Le plan peut retenir jusqu’à **trois sources** dans des niches rocheuses
|
||
naturelles, séparées des dépôts modifiés. Une source remplace un seul bloc de
|
||
roche, sous un toit, sur un fond et entre trois côtés déjà pleins. Son unique
|
||
sortie horizontale est naturellement ouverte sur une chute d’au moins huit
|
||
blocs. Le générateur ne construit ni pylône, ni corniche, ni tunnel pour obtenir
|
||
ce résultat.
|
||
|
||
Seul le bloc source est généré. Les ticks de fluide de Minecraft forment la
|
||
cascade et ses éventuels passages sur des paliers. Ces écoulements peuvent
|
||
descendre **jusque dans le vide**, conformément au comportement demandé. Cette
|
||
exception concerne les sources déclarées. Le trajet calculé dans la roche nue
|
||
est une prévision : les arbres générés ensuite peuvent dévier une chute. Les
|
||
diagnostics vérifient donc les connexions réelles de chaque bloc d’eau vers une
|
||
source, dans l’emprise des chunks inspectés et de leur halo. Ils échouent si de
|
||
l’eau touche une frontière non inspectée ou si un bassin perd sa coque. Les
|
||
déviations par rapport à la prévision restent mesurées dans le rapport. Le
|
||
comportement des fluides reste celui de Minecraft, y compris lorsque les joueurs
|
||
modifient une rive.
|
||
|
||
### Petite réserve de lave
|
||
|
||
`StarterLavaDeposit` recherche au plus une niche de **18 blocs sources** dans
|
||
la roche existante, accessible par un passage sec de deux blocs de haut depuis
|
||
une corniche naturelle. Le fond garde trois blocs pleins, les parois deux et
|
||
la couverture huit ; ces supports sont vérifiés avant les écritures. La niche
|
||
reste éloignée des eaux et de leurs parcours. Elle fournit de la lave prélevable
|
||
pour les premières productions et un portail du Nether. Si aucun site ne
|
||
convient, le plan reste vide : aucun bassin artificiel n’est ajouté dans le vide.
|
||
|
||
Les tests vérifient l’accès praticable, la rétention de la lave et l’absence
|
||
d’incendie après simulation.
|
||
|
||
### Biomes et minerais
|
||
|
||
Le biome source `sanctuary:temperate_island` utilise deux champs de bruit
|
||
initialisés par la seed pour répartir cinq variantes horizontales. Une rive et
|
||
la roche sous elle restent dans la même variante :
|
||
|
||
| Identifiant | Variante |
|
||
| --- | --- |
|
||
| `sanctuary:temperate_forest` | Forêt dominante |
|
||
| `sanctuary:temperate_plains` | Clairières et plaines tempérées |
|
||
| `sanctuary:temperate_birch_forest` | Forêt de bouleaux |
|
||
| `sanctuary:temperate_flower_forest` | Forêt fleurie |
|
||
| `sanctuary:temperate_dappled_forest` | Dappled Forest, peupliers et végétation associée |
|
||
|
||
Dappled Forest est un biome vanilla introduit dans
|
||
[Minecraft 26.3 Snapshot 1](https://www.minecraft.net/en-us/article/minecraft-26-3-snapshot-1).
|
||
Cette variante reprend ses données de **26.3-pre-2**, avec une humidité légèrement
|
||
relevée pour Sanctuary. Elle n’ajoute ni dépendance externe ni structure de camp.
|
||
La palette tempérée ne constitue pas encore le catalogue TerraMix ni le champ
|
||
climatique des futurs continents.
|
||
|
||
Les nouveaux biomes remplacent les filons vanilla de métaux par de petites
|
||
features `sanctuary:island_ore_*`, à des altitudes adaptées à l’île relevée :
|
||
|
||
| Ressource | Taille du filon | Tentatives par chunk | Plage Y |
|
||
| --- | --- | --- | --- |
|
||
| Charbon | 6 | 2 | 96–288 |
|
||
| Fer | 4 | 2 | 88–248 |
|
||
| Cuivre | 4 | 1 | 96–248 |
|
||
| Or | 4 | 1 | 104–224 |
|
||
| Redstone | 4 | 1 | 96–224 |
|
||
| Lapis | 3 | Une tentative, chance 1/2 | 112–232 |
|
||
| Diamant | 3 | Une tentative, chance 1/4 | 104–208 |
|
||
|
||
Ces paramètres décrivent des tentatives, pas des quantités promises : le filon
|
||
doit rencontrer la roche existante, et sa forme dépend du hasard de génération.
|
||
La sélection des biomes et des eaux ne cherche aucun stock cible. Un relevé
|
||
partiel reste un relevé partiel ; la présence des sept ressources sur une seed
|
||
de référence ne garantit pas leur présence sur toutes les seeds.
|
||
|
||
La validation de l’alpha.5 est suivie dans [Validation](testing.md). Ses diagnostics
|
||
sont conçus pour inspecter les blocs décorés, les profils des dépôts, les
|
||
jointures de chunks, les biomes et les ressources, puis simuler réellement les
|
||
fluides dans les chunks des sites. Les cartes et profils PNG montrent des
|
||
lectures de blocs, pas un rendu Minecraft. La descente des
|
||
cascades est contrôlée après activation effective des chunks qui les simulent.
|
||
|
||
## Prairies et corniches — génération v6
|
||
|
||
L’alpha.6 utilise `sanctuary:sanctuary_layered` et le biome source
|
||
`sanctuary:layered_island`. Les formes et le ciel restent ceux de la génération
|
||
relevée. Les anciennes classes, biomes et règles de matériaux restent disponibles
|
||
pour les sauvegardes alpha.2 à alpha.5 ; seul le preset de création choisit v6.
|
||
|
||
### Une palette qui varie aussi en hauteur
|
||
|
||
Les cinq variantes partagent leurs teintes d’herbe et de feuillage. Les champs
|
||
de climat liés à la seed déforment de larges bandes d’altitude, autour de Y154
|
||
et Y214 : prairies et prairies fleuries sur le dessus, bosquets et corniches
|
||
moussues plus bas. Des zones rocheuses traversent ces bandes et remplacent la
|
||
couverture de terre par de la pierre sur le relief existant. Les prairies gardent
|
||
quelques arbres épars et leur végétation vanilla. Dappled Forest n’appartient
|
||
plus à cette palette ; son utilisation sur de futurs continents reste à développer.
|
||
|
||
| Identifiant | Ambiance |
|
||
| --- | --- |
|
||
| `sanctuary:layered_meadow` | Prairie tempérée |
|
||
| `sanctuary:layered_flower_meadow` | Prairie fleurie |
|
||
| `sanctuary:layered_lower_grove` | Bosquet inférieur |
|
||
| `sanctuary:layered_mossy_terraces` | Corniches moussues |
|
||
| `sanctuary:layered_rocky_terraces` | Affleurements rocheux |
|
||
|
||
`LowerTerraceVegetationFeature` parcourt aussi les sols naturels sous les
|
||
surplombs, au moins huit blocs sous une surface supérieure. Elle demande trois
|
||
blocs pleins de support et deux blocs libres au-dessus. Elle peut remplacer la
|
||
surface existante par de la mousse et planter fougères, fleurs ou petits arbustes
|
||
lorsque leurs règles de survie le permettent. Les cellules hydrologiques, les
|
||
sources, les parcours d’eau prévus et les supports de lave sont protégés.
|
||
Il n’y a ni corniche construite dans l’air ni ajout d’éclairage artificiel.
|
||
|
||
### Bassins et sources de paroi
|
||
|
||
`LayeredHydrology` conserve les petits bassins et les dépôts épais, avec une
|
||
plus grande présence de pierre. Le court `STREAM` à niveau constant de l’alpha.5
|
||
n’est pas repris. Cette version retient uniquement les étangs et les petits
|
||
lacs ; elle ne cherche pas de grande rivière. Le parcours traversant avec
|
||
source, cascade et bassin reste un ticket distinct, à démontrer sur le relief
|
||
Minecraft réel. Aucun chenal de secours n’est creusé.
|
||
|
||
La profondeur reste limitée à trois blocs et l’incision à quatre. Le plan
|
||
vérifie le fond et les rives avant d’appliquer ses écritures, dans les nouveaux
|
||
chunks seulement. Le sable, le gravier, l’argile et la roche suivent les rives.
|
||
Des niches de source sont également recherchées dans les strates inférieures,
|
||
et pas seulement près de la surface la plus haute. Leurs chutes sont produites
|
||
par les ticks de Minecraft à partir d’un seul bloc source. Le post-traitement
|
||
des nouveaux chunks libère uniquement leur ouverture, déjà vide dans la densité
|
||
naturelle, pour qu’un lichen ou une plante ne bouche pas la source. Les positions
|
||
sont marquées dans la file vanilla pendant la génération, puis consommées une
|
||
seule fois. Un rechargement ne dégage pas une bouche modifiée par un joueur.
|
||
Aucune chute n’est préremplie et aucun nouveau passage n’est creusé dans la roche.
|
||
|
||
Les parcours, les écoulements et la végétation réellement observés, ainsi que
|
||
les limites du modèle, sont consignés dans [Validation](testing.md).
|
||
|
||
## Apparition commune
|
||
|
||
Une injection limitée à la création initiale cherche du sol naturel depuis
|
||
l'origine vers l'extérieur, dans toute l'emprise finie de l'île. Elle préfère
|
||
une surface stable de 3 × 3 blocs, avec deux blocs libres en hauteur. En
|
||
l'absence d'une telle surface, elle retient une colonne de sol praticable ; si
|
||
aucun emplacement naturel sûr n'existe, la création signale la seed concernée
|
||
plutôt que d'ajouter une plateforme. Elle ne s'applique qu'à l'Overworld
|
||
utilisant les paramètres `sanctuary:sanctuary`, `sanctuary:sanctuary_384` ou
|
||
`sanctuary:sanctuary_hydrology`, `sanctuary:sanctuary_natural` ou
|
||
`sanctuary:sanctuary_layered`.
|
||
Elle enregistre le spawn partagé dans la sauvegarde et ne le réinitialise pas
|
||
au redémarrage : les modifications administratives de `/setworldspawn` restent
|
||
conservées. Les lits et la dispersion habituelle du spawn suivent encore les
|
||
règles de Minecraft.
|
||
|
||
## Adaptation 26.2 → 26.3
|
||
|
||
Les références historiques sont
|
||
`sanctuary/worldgen/density_function/base_3d_noise.json` et
|
||
`floating_archipelago.json` dans l'ancien module Sanctuary. L'ancien masque
|
||
annulaire n'est pas conservé : après son anneau de vide, il faisait réapparaître
|
||
un archipel infini. Les anciennes surcharges de `minecraft:normal`, dimensions
|
||
supplémentaires, intégrations TerraMix et injections globales de features ne
|
||
font pas partie de ce port.
|
||
|
||
Minecraft 26.3 a changé l'API de génération : les fonctions de densité compilent
|
||
maintenant un `DensitySampler`, leurs opérateurs JSON utilisent
|
||
`left` / `right` / `input`, les gradients utilisent `from_coordinate` et les
|
||
surfaces passent par le registre `worldgen/material_rule`. Les données de cette
|
||
branche suivent ces formats réels ; copier directement les JSON 26.2 ne suffit
|
||
pas. Les bruits utilisent également `base_octave`, `octave_count` et
|
||
`amplitude_modifiers`. Le seul opérateur Java ajouté, `sanctuary:main_island`,
|
||
compose le terrain et les bruits de sculpture, applique le repère vertical
|
||
choisi et impose la limite extérieure après interpolation.
|
||
|
||
## Vérification
|
||
|
||
```sh
|
||
./gradlew :sanctuary:worldgenSmoke
|
||
./gradlew :sanctuary:runGameTest
|
||
```
|
||
|
||
Le smoke test vérifie qu'aucun sol n'est ajouté, que l'intérieur conserve le champ
|
||
naturel et que l'érosion évolue progressivement sur un profil de terrain contrôlé.
|
||
Il vérifie aussi qu'un lobe plein recule d'au moins 30 blocs en haut et en bas
|
||
par rapport à son milieu, pour éviter une paroi verticale simplement déplacée.
|
||
Il couvre aussi l'influence des deux bruits de sculpture, le vide avant les
|
||
bornes de sécurité, et le vide dans les quatre directions même avec un bruit
|
||
entièrement positif. Les coordonnées testées incluent les limites de Minecraft
|
||
et des entiers Java pour détecter débordements et répétitions involontaires.
|
||
|
||
Les GameTests chargent le preset réel sur un serveur éphémère, vérifient le
|
||
spawn après décoration, puis inspectent des chunks complets à distance dans
|
||
les quatre directions. Ils comparent aussi la densité compilée avec deux
|
||
instances de la même seed et une seed différente. Cela détecte les références
|
||
JSON invalides et les blocs que des features pourraient ajouter après le calcul
|
||
de densité. Les injections du serveur de test sont isolées dans
|
||
`src/gametest` et ne sont pas distribuées dans le mod.
|
||
|
||
Les graines de régression des générations v2 et v3 sont **0**, **42** et **8675309**.
|
||
Le serveur de test exporte leurs cartes de hauteur et coupes de densité dans
|
||
`mods/sanctuary/build/run/gameTest/diagnostics/`. Ces images permettent de
|
||
comparer la vraie densité alpha.2, toujours chargée, avec la nouvelle île relevée
|
||
dans toute la hauteur `0..383`. Les assertions vérifient la translation du relief
|
||
supérieur, la variation des hauteurs du dessous, l'absence de plancher, les
|
||
384 blocs de génération et la conservation des anciens paramètres 256.
|
||
Ces images ne montrent
|
||
pas les arbres ni les matériaux et ne remplacent pas un essai visuel en jeu.
|
||
|
||
## Contrat du prochain ticket : expansion
|
||
|
||
Avant de créer des continents, définir une donnée **persistante par monde**
|
||
contenant pour chaque région son identifiant, centre, direction, emprise,
|
||
seed dérivée, version de générateur et état de déblocage. L'île principale
|
||
devient la première région de ce registre ; les nouvelles régions utilisent
|
||
des coordonnées absolues, sans cellules périodiques.
|
||
|
||
L'activation doit être une action du serveur, reproductible et sauvegardée,
|
||
conditionnée ensuite par les contributions collectives. Elle doit tenir compte
|
||
du fait qu'un joueur peut déjà avoir chargé ou construit dans le vide : un
|
||
chunk existant ne se régénère pas simplement parce que la liste des continents
|
||
change. Le ticket doit choisir une réservation d'espace ou une matérialisation
|
||
contrôlée qui protège les constructions et ne remplace jamais aveuglément des
|
||
chunks sauvegardés.
|
||
|
||
La version de génération et les emprises doivent être gelées avant les premières
|
||
sauvegardes destinées à durer. Ce prototype ne promet pas encore de migration
|
||
automatique des mondes entre deux versions de terrain.
|
||
|
||
|
||
## Forêts, corniches humides et affleurements — génération v7
|
||
|
||
L’alpha.7 crée les nouveaux mondes avec `sanctuary:sanctuary_woodland` et
|
||
`sanctuary:woodland_island`. La densité `sanctuary:final_density_384`, les
|
||
formes rocheuses, la hauteur et le ciel restent identiques. Les plans des
|
||
bassins, sources et petites niches de lave reprennent les algorithmes alpha.6.
|
||
Les anciens paramètres, biomes et features sont conservés ; cette livraison
|
||
ne modifie pas les mondes existants.
|
||
|
||
La palette comporte huit biomes :
|
||
|
||
| Identifiant | Rôle |
|
||
| --- | --- |
|
||
| `sanctuary:woodland_oak_forest` | Forêt de chênes dominante, bouleaux secondaires |
|
||
| `sanctuary:woodland_birch_forest` | Forêt de bouleaux complémentaire |
|
||
| `sanctuary:woodland_clearing` | Clairière fleurie |
|
||
| `sanctuary:woodland_dry_woodland` | Bois sec plus clairsemé |
|
||
| `sanctuary:woodland_rocky_heath` | Masses rocheuses exposées |
|
||
| `sanctuary:woodland_dark_grove` | Corniches humides à chênes noirs et champignons |
|
||
| `sanctuary:woodland_bamboo_grove` | Rare intérieur à jungle et bambou |
|
||
| `sanctuary:woodland_sulfur_depths` | Rare poche profonde de soufre sur roche existante |
|
||
|
||
Une altitude élevée ne transforme plus automatiquement une forêt en prairie
|
||
ou en roche. Les forêts utilisent les véritables arbres vanilla avec leurs
|
||
conditions de croissance ; les affleurements sont des patches horizontaux
|
||
et des variations de matériau sur le terrain existant.
|
||
|
||
`woodland_groves` place de vrais chênes noirs sur des sols naturels de 2×2,
|
||
avec trois blocs de support et une place suffisante pour le tronc et la
|
||
canopée sous le plafond. Des champignons accompagnent les sols de podzol et
|
||
de mycélium, avec quelques touches de mousse. La jungle et le bambou restent
|
||
limités aux rares poches qui leur conviennent.
|
||
|
||
Un seul emplacement remarquable est recherché par graine, avec une essence
|
||
choisie parmi cerisier (favorisé), épicéa, jungle, acacia, palétuvier et chêne
|
||
pâle. Il ne produit pas de terrain : si le site ou les conditions de l’arbre
|
||
vanilla ne conviennent pas, il ne pousse pas. Ce n’est pas une garantie de
|
||
chaque essence sur chaque île. Aucun cœur de Creaking n’est ajouté par l’arbre
|
||
pâle utilisé ici.
|
||
|
||
Les affleurements mêlent des nappes cohérentes de pierre, andésite, diorite et
|
||
granite. Les berges conservent leur excavation limitée et leurs dépôts de
|
||
3 à 5 blocs, avec des patches de sable, gravier, argile et roche. Les plantations de `woodland_groves` évitent les sources, leurs exutoires
|
||
et les niches de lave. Les décorations vanilla conservent leurs placements ;
|
||
le traitement unique après génération peut rouvrir la seule bouche de source
|
||
déclarée si une plante l’obstrue. Le soufre
|
||
reste une matière rare des profondeurs ; les grands bassins et sources
|
||
vanilla du biome Sulfur Caves ne sont pas activés.
|
||
|
||
Les anciens petits filons souterrains de charbon, fer et cuivre étaient peu
|
||
susceptibles d’atteindre les surfaces hautes ; leur réglage écartait aussi une
|
||
partie des blocs voisins de l’air. Les nouvelles features `woodland_ore_*`
|
||
utilisent des tailles vanilla limitées (`size=6` pour le charbon, `size=5`
|
||
pour fer/cuivre), sans garantir ce nombre de blocs produits par filon,
|
||
autorisent cette exposition et ajoutent des essais aléatoires sur les roches
|
||
de surface et les corniches rencontrées depuis l’air. Elles remplacent
|
||
seulement les roches naturelles reconnues par Minecraft, dont andésite,
|
||
diorite et granite. Les autres minerais et les anciens générateurs gardent
|
||
leurs réglages ; aucune quantité cible n’est réinjectée après mesure.
|
||
|
||
La version et les graines de validation sont consignées dans [Validation](testing.md).
|