Initialize Sanctuary Fabric 26.3 prototype and pack
Build Sanctuary / build (push) Canceled after 0s
Build Sanctuary / build (push) Canceled after 0s
This commit is contained in:
@@ -0,0 +1,154 @@
|
||||
# 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 :
|
||||
|
||||
```text
|
||||
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 dans
|
||||
`sanctuary/.../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
|
||||
|
||||
1. **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.
|
||||
2. **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.
|
||||
3. **Spawn non garanti.** `SanctuarySpawn` ne 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 à chaque
|
||||
`SERVER_STARTED`, ce qui peut écraser le choix d'un administrateur.
|
||||
4. **Reliefs extérieurs très éloignés.** Les massifs et bassins de vide actifs ont
|
||||
`protected_radius=10000` et `protection_fade=2000`. Les copier autour d'une petite
|
||||
île ne produit donc pas de montagne proche du départ.
|
||||
5. **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.
|
||||
6. **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.
|
||||
7. **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
|
||||
|
||||
1. Î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.
|
||||
2. 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.
|
||||
3. 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.
|
||||
4. Terramix et Black Desert avec leur géologie, leurs ressources et une distribution
|
||||
climatique mesurable ; puis structures procédurales et continents thématiques.
|
||||
Reference in New Issue
Block a user