Skip to content

FR: Créer et configurer un biome

Florian C edited this page Dec 22, 2016 · 4 revisions

Introduction

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).

Créer le biome

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 : Paramétrer la génération

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.

Instancier et appliquer au biome

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);

Les valeurs par défaut de 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 obligatoires !

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é.

Modifier la taille moyenne du biome

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.

[!] Modifier le terrain

Valeur par défaut : HashMap vide.
Méthode à utiliser : setTerrain(HashMap<TerrainType, TerrainSettings> terrain);

TerrainType

TerrainSettings

la suite...

BiomeSpawnRules : paramétrer le spawn naturel d'entités

Effects : paramétrer des effets (potions)

Voir FR: Paramétrer des effets