10 KiB
Réutiliser la génération Sanctuary 26.2
Audit de source du 8 septembre 2026, effectué en lecture seule dans le dépôt voisin
../26.2, à la révision da61a3b1ec4fe161a9b5ffaab0fa3111238a35b6
(pack 26.2.0-alpha.242). Les chemins ci-dessous sont relatifs à ce dépôt historique.
Ce document décrit ce qui existe dans 26.2 ; il ne prétend pas que ces éléments sont
déjà portés dans Sanctuary Beta.
Conclusion pour le premier lot
La base de terrain est réutilisable : du bruit Minecraft lié à la seed, une enveloppe verticale d'îles flottantes, puis des masques de densité. En revanche, la génération 26.2 n'est pas un monde initialement vide avec des continents déverrouillables. L'archipel extérieur est généré automatiquement au-delà d'un petit anneau de vide. Le premier lot doit donc borner explicitement l'île centrale et garantir un départ sûr, avant de construire le système persistant d'expansion collective.
Carte des sources récupérables
| Élément | Source 26.2 | Réutilisation |
|---|---|---|
| Bruit de terrain | sanctuary/src/main/resources/data/sanctuary/worldgen/density_function/base_3d_noise.json |
minecraft:old_blended_noise, dépendant de la seed ; aucun bloc propre au mod. |
| Enveloppe flottante | sanctuary/src/main/resources/data/sanctuary/worldgen/density_function/floating_archipelago.json |
Gradients verticaux combinés au bruit précédent. |
| Composition finale | sanctuary/src/main/resources/data/sanctuary/worldgen/density_function/final_density.json |
Référence pour l'interpolation et le mélange ; remplacer le comportement extérieur infini. |
| Masques et relief | sanctuary/src/main/java/fr/koka99cab/sanctuary26/sanctuary/worldgen/SanctuaryDensityFunctions.java |
AnnularVoidMask, TectonicMassifDensity, TectonicVoidDensity ; séparer les fonctions utiles du code inactif. |
| Réglages de dimension | sanctuary/src/main/resources/data/sanctuary/dimension_type/sanctuary.json |
Plage verticale Y=0–383, lumière et ciel ; vérifier les codecs de la version cible. |
| Réglages de bruit | sanctuary/src/main/resources/data/sanctuary/worldgen/noise_settings/sanctuary.json |
Air comme fluide par défaut, aquifères désactivés, niveau marin -64 ; ne pas importer ses règles de surface en bloc. |
| Preset | sanctuary/src/main/resources/data/sanctuary/worldgen/world_preset/sanctuary.json |
Générateur minecraft:noise, biomes minecraft:multi_noise ; garder seulement les dimensions nécessaires au lot. |
| Recherche du spawn | sanctuary/src/main/java/fr/koka99cab/sanctuary26/sanctuary/world/SanctuarySpawn.java |
Recherche d'un sol naturel autour de l'origine ; corriger les limites décrites plus bas. |
| Lacs | sanctuary/src/main/java/fr/koka99cab/sanctuary26/sanctuary/worldgen/feature/SanctuaryWaterLakeFeature.java |
Extension de LakeFeature, avec quelques cannes à sucre ; utilisable dans un lot hydrologie. |
| Ravins | sanctuary/src/main/resources/data/sanctuary/worldgen/configured_carver/tectonic_ravine.json |
Configuration de carver ; revalider sur des îles finies. |
| Prévisualisation | sanctuary/src/main/java/fr/koka99cab/sanctuary26/sanctuary/client/worldgen/SanctuaryBiomePreviewScreen.java |
Référence ultérieure pour visualiser la seed et la distribution des biomes. |
Le graphe actif 26.2 est approximativement :
old_blended_noise -> floating_archipelago + central_halo_mask
|
max(tectonic_massifs)
|
min(void_basins)
|
blend_density -> interpolated -> squeeze
IslandSpawnDensity et RadialVoidMask restent enregistrés en Java mais ne font
plus partie du graphe actif. L'ancienne forme sculptée utilise des bruits de hachage
sans seed de monde passée à la fonction ; elle n'est pas un substitut fidèle au
terrain procédural actuel.
Terramix et Black Desert
Dans ce dépôt, Terramix est le nom du catalogue natif de 100 biomes d'Another World, répartis en dix familles de dix. Ce n'est pas une dépendance Fabric externe à ajouter automatiquement au pack.
- Catalogue auteur :
anotherworld/src/main/resources/data/anotherworld/sanctuary_biome_catalog.json. - Lecture et familles climatiques :
anotherworld/src/main/java/fr/koka99cab/sanctuary26/anotherworld/registry/SanctuaryBiomeCatalog.java. - Fabrication des biomes, végétations et géologies :
anotherworld/build.gradle, notamment la section commençant par « Terramix is a native Sanctuary catalogue ». - Mélange avec les biomes vanilla :
anotherworld/src/main/java/fr/koka99cab/sanctuary26/anotherworld/mixin/MultiNoiseBiomeSourceParameterListPresetMixin.java. - Black Desert est un biome historique distinct,
anotherworld:black_desert, avec du sable noir et une géologie sombre. Ses règles de surface se trouvent aussi danssanctuary/.../worldgen/noise_settings/sanctuary.json.
Le port du seul JSON de bruit complet échouerait sans les blocs, tags et biomes
anotherworld:* qu'il référence. Préférer d'abord une surface et des biomes vanilla,
puis un lot dédié qui préserve les identifiants du catalogue. Le mixin climatique
historique modifie le preset Overworld global : son périmètre doit être redéfini
pour éviter d'affecter d'autres mondes par simple installation du mod.
Le changelog indique que Terralith a été retiré en alpha.143 et remplacé par le catalogue natif en alpha.145. Ne pas confondre ces deux noms ni restaurer les anciennes ressources Terralith lors d'un port de Terramix.
Limites et défauts à traiter
- L'extérieur n'est pas vide. Le masque annulaire actif protège un rayon nominal de 96 blocs, entre dans le halo sur 160 blocs et quitte celui-ci à partir de 256 blocs sur 96 blocs, avec une distorsion de 32 blocs. Il retrouve donc l'archipel normal vers 352 blocs nominalement. Ce masque ne borne pas un monde.
- Aucune activation de continents trouvée. La recherche des sources Java Sanctuary, Another World et Master Key n'a trouvé ni registre de continents déverrouillés, ni commande d'expansion directionnelle. Les « continents » du changelog désignent le relief tectonique naturel. Un format de sauvegarde, des limites de taille et une politique pour les chunks déjà explorés restent à concevoir.
- Spawn non garanti.
SanctuarySpawnne cherche que dans un rayon de trois chunks autour de l'origine. En cas d'échec il conserve la suggestion vanilla, sans créer de sol sûr. Il sélectionne à nouveau le spawn global à chaqueSERVER_STARTED, ce qui peut écraser le choix d'un administrateur. - Reliefs extérieurs très éloignés. Les massifs et bassins de vide actifs ont
protected_radius=10000etprotection_fade=2000. Les copier autour d'une petite île ne produit donc pas de montagne proche du départ. - L'eau n'est pas une hydrologie continentale. Le réglage emploie de l'air et désactive les aquifères. Les lacs sont des features ponctuelles. Aucun réseau de rivières flottantes ou d'océans suspendus contrôlés n'a été identifié dans les sources examinées.
- La densité seule n'assure pas le vide final. Les carvers, décorations et structures constituent des étapes distinctes. Vérifier les chunks terminés, y compris aux frontières de l'île, et borner aussi les placements qui pourraient traverser la limite.
- Ordre des features sensible. Le changelog alpha.105 rapporte un blocage « Loading terrain » corrigé en ordonnant la végétation lush de plafond avant celle au sol. Revalider les dépendances entre features lors du port des biomes.
Ces constats sont issus de la lecture du code et du changelog. Aucun serveur 26.2 n'a été lancé ni modifié pendant cet audit.
Historique exploitable
L'historique Git local n'est pas shallow, mais commence par l'import
94644a2 (« Import Sanctuary 26.2 collaboration workspace »). Le générateur principal
actuel est déjà présent dans cet import : les étapes plus anciennes ne correspondent
donc pas à des commits individuels disponibles dans ce dépôt. Leurs descriptions
restent dans CHANGELOG.md et pack/migrations/.
| Repère | Intérêt |
|---|---|
| Alpha.104–106 | Introduction des massifs, lacs, ravins et hauteur de dimension 384. |
| Alpha.108–111 | Expériences de relief extrême, puis réduction des plateaux et pentes. |
| Alpha.116–120 | Protection centrale, passage à l'île procédurale et réduction du halo. |
| Alpha.143–148 | Retrait de Terralith, Terramix natif, correction des transitions et prévisualisation. |
| Alpha.189 | Provinces climatiques à deux échelles, points MultiNoise vanilla conservés. |
Commit 9c09664 |
Port de l'île Indev finie pour la dimension Alpha ; sujet distinct du monde Sanctuary. |
Les profils extrêmes sont réellement présents dans
sanctuary/design/worldgen/alpha108_mega_tectonics/ et
sanctuary/design/worldgen/alpha110_steep_massifs/. Les chemins backups/ cités par
le changelog sont des repères historiques ; leur disponibilité n'a pas été vérifiée.
Provenance et licences déclarées
Le LICENSE racine et le manifeste Fabric Sanctuary déclarent
GPL-3.0-or-later. Garder cette provenance avec les sources effectivement reprises.
La dimension Alpha possède en plus une notice BSD 3-Clause pour l'algorithme Indev
dans sanctuary/THIRD_PARTY_NOTICES.md ; elle concerne ce port spécifique.
anotherworld/THIRD_PARTY_NOTICES.md signale des textures Flower Cows dont la
permission de redistribution publique est à clarifier. Elles ne sont pas nécessaires
au générateur minimal et ne doivent pas être importées avec un lot de terrain.
Lots proposés après l'initialisation
- Île principale finie dépendante de la seed, vide extérieur, spawn durable et sûr, preset explicite ; validation sur plusieurs seeds et redémarrage serveur.
- Modèle persistant de continents : identifiant, seed, centre, orientation, taille, état verrouillé/déverrouillé et version de génération ; définir le traitement des chunks vides déjà visités avant toute commande d'activation.
- Hydrologie fermée et reliefs : bassins, lacs, rivières, cavités et ravins ; vérifier les bordures de chunks, l'écoulement et la conservation des constructions.
- Terramix et Black Desert avec leur géologie, leurs ressources et une distribution climatique mesurable ; puis structures procédurales et continents thématiques.