-
-
Notifications
You must be signed in to change notification settings - Fork 0
FR: Créer et configurer un biome
Le biome est la brique de base de toutes les dimensions que vous pourrez créer avec l'API. Créer un biome n'est pas complexe, à l'inverse de sa configuration : beaucoup de paramètres sont disponibles.
Je vais les détailler en prenant pour exemple le biome Desert Mountains (classe: DBiomeDesertMountains).
Pour créer un biome, il est préférable de le faire dans une classe héritant de l'objet DBiome. L'instanciation est possible mais je préfère cette méthode par soucis de lisibilité et de possibilité de modifications.
Notre classe ressemble donc à cela :
public class DBiomeDesertMountains extends DBiome{}
Créons maintenant un constructeur sans paramètres, et commençons par appeler le constructeur de la classe DBiome :
super(id, biome, climate, allowRivers)
Effectivement, il existe deux constructeur pour DBiome, mais nous utiliserons ici le plus simple.
Ainsi, dans ce constructeur, nous avons 4 paramètres à renseigner :
- id (String) : ID du biome. C'est avec ce paramètre que Dimensions reconnaîtra le biome. Faites donc attention à ce qu'elle ne soit pas identique à celle d'un autre biome ! Il est préférable de l'écrire en suivant la convention des énumérations, c'est à dire "BIOME_ETRANGE".
- biome (Biome) : Biome vanilla. Il sert à définir la couleur de l'herbe et la météo.
- climate (Climate) : Influe sur la génération uniquement : il permet de répartir les biomes en fonction de leur climat (sauf si instruction contraire dans les paramètres de la Dimension). Voir la liste
- allowRivers (boolean) : Influe sur la génération : autorise ou non la génération de rivières au sein ou à proximité du biome.
Voici ce que ça donne pour notre biome :
super("DESERT_MOUNTAINS", Biome.DESERT_HILLS, Climate.DESERT, false);
BiomeGenerationRules (que je vais abréger en BGR) est l'objet qui stocke TOUS les paramètres de génération. Il est littéralement l'apparence de votre biome. Cela implique que vous passerez la majorité de votre temps dessus à expérimenter des valeurs afin d'obtenir le résultat que vous cherchez.
BGR s'instancie comme tout autre objet. Son constructeur ne contient pas d'arguments.
BiomeGenerationRules bgr = new BiomeGenerationRules();
Ensuite, pour appliquer BGR au biome, on utilise la méthode setBiomeGenerationRules(BiomeGenerationRules generationRules)
:
this.setBiomeGenerationRules(bgr);
Tous les paramètres de BGR sont ceux par défaut lorsqu'il est instancié. Ce système permet de ne pas avoir à tout spécifier à chaque fois et donc de ne modifier que ce qui nous intéresse.
Dans la liste ci-dessous, j'énumère les méthodes "getter" et la valeur par défaut.
- getAverageSizeInChunks() : 32
- getTerrain() : HashMap vide
- generateCaves() : true
- generateRavines() : true
- generateFossils(): true
- generateMineshafts() : true
- generateVillages(): true
- generateTemples() : true
- generateDungeons() : true
- generateWaterLakes() : true
- generateLavaLakes() : true
- getGroundMaterial() : new MaterialData(Material.GRASS)
- getAverageGroundLayers() : 3
- getTrees() : HashMap vide
- getTreesOnAverage() : 0
- getStructures() : HashMap vide
- getStructuresOnAverage() : 0
- getVegetation() : HashMap vide
- getVegetationDistribution() : Vegetation.NORMAL
- generateLeavesOnCliffs() : false
- getErosion() : Erosion.NONE
- RESSOURCES TODO
Les paramètres exigeant l'assignation d'une valeur sont signalés par un [!].
Si ceux-ci ne sont pas paramétrés, le biome ne pourra pas être généré.
Valeur par défaut : 32 chunks.
Méthode à utiliser : setAverageSizeInChunks(int size);
Info : La valeur attribuée est une valeur moyenne et de référence. Il est à noter que le paramètre BiomeSize dans les paramètres de la Dimension influe sur cette valeur en la divisant ou en la multipliant.
Valeur par défaut : HashMap vide.
Méthode à utiliser : setTerrain(HashMap<TerrainType, TerrainSettings> terrain);