Aller au contenu principal

Créer des générateurs

Générateurs

Les générateurs sont la partie la plus puissante du système de configuration de BetterStructures. Par défaut, il existe 29 générateurs qui gèrent collectivement les constructions actuellement distribuées par BetterStructures et, même si vous pouvez créer vos propres générateurs, vous pouvez aussi utiliser ceux existants comme raccourci.

Les générateurs indiquent au plugin où exactement les choses doivent apparaître et définissent les tables de butin. Les générateurs par défaut sont en plus nommés de manière à ce qu'il soit très facile de deviner ce qu'ils font.

Options de configuration du générateur

CléPar défautObligatoireDescription
isEnabledtrueSi le générateur est activé. Le passer à false empêche également l'enregistrement de tous les schematics pointant vers ce générateur : c'est donc le moyen le plus rapide de désactiver tout un ensemble de structures.
structureType-Où les structures apparaissent (voir le tableau ci-dessous)
lowestYLevel-59Niveau Y minimum pour l'apparition
highestYLevel320Niveau Y maximum pour l'apparition
validWorldsTous autorisésListe des mondes où les structures peuvent apparaître
validWorldEnvironmentsTous autorisésNORMAL, NETHER, THE_END, CUSTOM
validBiomesV2Tous les biomesListe des biomes valides (format namespace:key)
treasureFilename-Fichier de trésor pour le butin des coffres
generateLootInBarrelstrueSi les tonneaux trouvés dans les schematics de ce générateur doivent être remplis de butin
barrelTreasureFilenametreasure_barrel_food.ymlFichier de trésor utilisé pour remplir les tonneaux de ce générateur

structureType

Définit le type de structure de la construction. Vous pouvez spécifier plusieurs types de structure pour un seul générateur !

TypeSurface / PersonnaliséNetherEndDescription
SURFACESurfacePoints similaires à la surfaceSurfaceApparaît à la surface du monde
SKY80-120 blocs au-dessus du bloc le plus hautPoche d'air trouvée entre Y 45 et Y 10080-120 blocs au-dessus du bloc le plus hautApparaît dans le ciel (configurable dans config.yml)
UNDERGROUND_SHALLOWY 0-50Y 60-120Y 0-80Structures souterraines peu profondes
UNDERGROUND_DEEPY -53 à 0Y 5-60Y 0-80Structures souterraines profondes
LIQUID_SURFACEEau (océans)Océan de lave à Y 31Aucune vérification de liquide n'est appliquéeApparaît sur les surfaces liquides
DUNGEONUtilisé pour le placement de donjons modulaires

Les plages du ciel sont des décalages appliqués au-dessus du bloc le plus haut du monde à cette colonne, et non des niveaux Y absolus.

Exemple de types de structure multiples
structureType:
- SURFACE
- UNDERGROUND_SHALLOW

Cela permet au même générateur de faire apparaître des structures à plusieurs endroits, par exemple à la fois en surface et dans les zones souterraines peu profondes.

Remarque : il existe deux paramètres souterrains car Minecraft dispose de beaucoup d'espace souterrain. Les avoir tous les deux assure une distribution uniforme à travers les profondeurs et empêche les joueurs de manquer des structures.


Plages de niveaux Y par dimension

Plages d'altitude par défaut par dimension (configurables dans config.yml) :

DimensionPlage par défautParamètres de configuration
Surface/PersonnaliséY=-60 à Y=320lowestYNormalCustom / highestYNormalCustom
NetherY=4 à Y=120lowestYNether / highestYNether
EndY=0 à Y=320lowestYEnd / highestYEnd
Ciel (Surface/Personnalisé)80 à 120 blocs au-dessus du bloc le plus hautnormalCustomAirBuildingMinAltitude / normalCustomAirBuildingMaxAltitude
Ciel (End)80 à 120 blocs au-dessus du bloc le plus hautendAirBuildMinAltitude / endAirBuildMaxAltitude

Ces valeurs par défaut peuvent être remplacées générateur par générateur en utilisant lowestYLevel et highestYLevel.

Les deux lignes « Ciel » sont des décalages ajoutés par-dessus le bloc le plus haut de la colonne, et non des niveaux Y absolus. Les décalages du ciel, aussi bien pour l'Overworld/Personnalisé que pour l'End, sont tirés au hasard entre leur minimum et leur maximum à chaque placement.

Le Nether ignore totalement ces décalages : au lieu de construire au-dessus du bloc le plus haut, BetterStructures analyse la colonne entre Y 45 et Y 100 à la recherche d'une poche d'air d'au moins 20 blocs de haut et y place la structure. Si aucune poche de ce type n'existe, rien n'apparaît dans ce chunk.


Prise en charge des biomes personnalisés

BetterStructures prend automatiquement en charge les biomes personnalisés des générateurs de monde comme Terralith, Iris, Terra et TerraformGenerator.

Lorsque vous spécifiez un biome vanilla dans validBiomesV2, le plugin inclut automatiquement les biomes personnalisés compatibles :

validBiomesV2:
- minecraft:plains
- minecraft:forest

Cela fait apparaître des structures dans les biomes vanilla ET dans tous les biomes personnalisés associés à ces types (par ex. terralith:blooming_plains).

Où se trouvent réellement les correspondances

La table de correspondance entre biomes personnalisés et biomes vanilla n'est pas stockée dans BetterStructures. C'est une unique table codée en dur à l'intérieur de MagmaCore, la bibliothèque partagée intégrée à BetterStructures, et elle est partagée avec les autres plugins MagmaGuy qui en ont besoin.

Cela a deux conséquences pratiques :

  1. Les longues listes de biomes que vous voyez dans les fichiers generator_surface_*.yml livrés sont une sortie générée, et non la source de vérité. Au chargement, BetterStructures lit validBiomesV2, recherche chaque entrée minecraft: dans la table de MagmaCore, ajoute tous les biomes personnalisés qui lui correspondent, puis réécrit directement la liste développée dans le fichier du générateur. Un générateur que vous avez écrit avec deux lignes peut donc en revenir avec une centaine. Modifier cette liste développée n'affecte que ce générateur-là, et toute entrée minecraft: que vous y laissez sera de nouveau développée au chargement suivant.
  2. Ajouter la prise en charge d'un nouveau biome personnalisé pour tout le monde relève d'une modification de MagmaCore, pas d'une modification de configuration. Si un générateur de monde fournit un biome que BetterStructures ne reconnaît pas, l'ajouter au validBiomesV2 d'un générateur est un contournement local pour ce seul générateur. Le faire correspondre correctement implique de l'ajouter à la table de correspondance de MagmaCore, ce qui est une modification de code — ouvrez une demande plutôt que d'essayer de résoudre cela dans les fichiers yml.

Vous pouvez toujours nommer directement un biome personnalisé dans validBiomesV2 (tout ce qui contient déjà un : est pris tel quel et n'est pas développé davantage), ce qui est la bonne approche pour un générateur ponctuel qui ne doit apparaître que dans un biome personnalisé précis.

Les biomes que MagmaCore fait correspondre à nothing sont délibérément exclus — ce sont des biomes personnalisés jugés inadaptés aux structures, et aucun biome vanilla ne les fera intervenir.


treasureFilename

Définit le fichier de trésor pour le butin des coffres. Cela s'applique à toutes les constructions utilisant ce générateur, sauf si c'est remplacé dans la configuration du schematic.


generateLootInBarrels et barrelTreasureFilename

BetterStructures traite désormais les tonneaux comme un deuxième conteneur de butin, aux côtés des coffres.

  • generateLootInBarrels (par défaut true) détermine si les tonneaux à l'intérieur des structures placées par ce générateur sont remplis. Définissez-le sur false pour laisser les tonneaux intacts.
  • barrelTreasureFilename (par défaut treasure_barrel_food.yml) sélectionne le fichier de trésor utilisé lors du remplissage de ces tonneaux. Le fichier par défaut fournit une table de butin légère axée sur la nourriture, mais vous pouvez le pointer vers n'importe quel fichier de trésor.

Les deux options peuvent être remplacées schematic par schematic à l'aide du champ barrelTreasureFilename correspondant dans la configuration du schematic.