User Tools

Site Tools


fr:tutoriel:biomes

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
fr:tutoriel:biomes [2021/02/20 17:15] – created mysterious_devfr:tutoriel:biomes [2021/06/26 19:09] (current) – external edit 127.0.0.1
Line 1: Line 1:
-====== Ajouter un biome [1.16.3] ======+====== Ajouter un biome [1.16.5] ======
 Il y a 3 étapes nécessaires pour ajouter un biome au monde. Il y a 3 étapes nécessaires pour ajouter un biome au monde.
   * Création d'un biome   * Création d'un biome
Line 8: Line 8:
  
 ==== Création d'un biome ==== ==== Création d'un biome ====
-WIP+Pour créer un biome, utilisez "Biome.Builder" et configurez les propriétés. 
 +Manquer une propriété entraînera probablement le crash du jeu. 
 +Il est recommandé de regarder les biomes de base(créés dans ''DefaultBiomeCreator'') comme exemples. 
 + 
 +<code java> 
 +public class ExampleMod implements ModInitializer { 
 +  // SurfaceBuilder defines how the surface of your biome looks. 
 +  // We use custom surface builder for our biome to cover surface with obsidians. 
 +  private static final ConfiguredSurfaceBuilder<TernarySurfaceConfig> OBSIDIAN_SURFACE_BUILDER = SurfaceBuilder.DEFAULT 
 +    .withConfig(new TernarySurfaceConfig( 
 +      Blocks.OBSIDIAN.getDefaultState(), 
 +      Blocks.DIRT.getDefaultState(), 
 +      Blocks.GRAVEL.getDefaultState())); 
 + 
 +  private static final Biome OBSILAND = createObsiland(); 
 + 
 +  private static Biome createObsiland() { 
 +    // We specify what entities spawn and what features generate in the biome. 
 +    // Aside from some structures, trees, rocks, plants and 
 +    //   custom entities, these are mostly the same for each biome. 
 +    // Vanilla configured features for biomes are defined in DefaultBiomeFeatures. 
 + 
 +    SpawnSettings.Builder spawnSettings = new SpawnSettings.Builder(); 
 +    DefaultBiomeFeatures.addFarmAnimals(spawnSettings); 
 +    DefaultBiomeFeatures.addMonsters(spawnSettings, 95, 5, 100); 
 + 
 +    GenerationSettings.Builder generationSettings = new GenerationSettings.Builder(); 
 +    generationSettings.surfaceBuilder(OBSIDIAN_SURFACE_BUILDER); 
 +    DefaultBiomeFeatures.addDefaultUndergroundStructures(generationSettings); 
 +    DefaultBiomeFeatures.addLandCarvers(generationSettings); 
 +    DefaultBiomeFeatures.addDefaultLakes(generationSettings); 
 +    DefaultBiomeFeatures.addDungeons(generationSettings); 
 +    DefaultBiomeFeatures.addMineables(generationSettings); 
 +    DefaultBiomeFeatures.addDefaultOres(generationSettings); 
 +    DefaultBiomeFeatures.addDefaultDisks(generationSettings); 
 +    DefaultBiomeFeatures.addSprings(generationSettings); 
 +    DefaultBiomeFeatures.addFrozenTopLayer(generationSettings); 
 + 
 +    return (new Biome.Builder()) 
 +      .precipitation(Biome.Precipitation.RAIN) 
 +      .category(Biome.Category.NONE) 
 +      .depth(0.125F) 
 +      .scale(0.05F) 
 +      .temperature(0.8F) 
 +      .downfall(0.4F) 
 +      .effects((new BiomeEffects.Builder()) 
 +        .waterColor(0x3f76e4) 
 +        .waterFogColor(0x050533) 
 +        .fogColor(0xc0d8ff) 
 +        .skyColor(0x77adff) 
 +        .build()) 
 +      .spawnSettings(spawnSettings.build()) 
 +      .generationSettings(generationSettings.build()) 
 +      .build(); 
 +  } 
 +
 +</code> 
 + 
 +==== Enregistrement des biomes ==== 
 +Nous enregistrerons notre biome au point d'entrée '' onInitialize ''
 +Si vous utilisez votre propre constructeur de surfaces, vous devrez également l'enregistrer. 
 + 
 +<code java> 
 +public class ExampleMod implements ModInitializer { 
 +  public static final RegistryKey<Biome> OBSILAND_KEY = RegistryKey.of(Registry.BIOME_KEY, new Identifier("tutorial", "obsiland")); 
 + 
 +  @Override 
 +  public void onInitialize() { 
 +    Registry.register(BuiltinRegistries.CONFIGURED_SURFACE_BUILDER, new Identifier("tutorial", "obsidian"), OBSIDIAN_SURFACE_BUILDER); 
 +    Registry.register(BuiltinRegistries.BIOME, OBSILAND_KEY.getValue(), OBSILAND); 
 +  } 
 +
 +</code> 
 + 
 +Vous devez également donner à votre biome une entrée de langue dans votre fichier '' en_us.json '': 
 + 
 +<code JavaScript src/main/resources/assets/modid/lang/en_us.json> 
 +
 +  "biome.tutorial.obsiland": "Obsiland" 
 +
 +</code> 
 + 
 +==== Ajout d'un biome à une zone climatique dans le monde ==== 
 +Nous devons spécifier le climat auquel le biome est ajouté, le biome que nous ajoutons et le poids du biome (une valeur double). 
 +Le poids est une mesure de la chance que le biome a de se reproduire. 
 +Un poids plus élevé correspond à une probabilité plus élevée pour le biome d'apparaitre, proportionnellement aux poids des autres biomes. 
 +Vous devrez peut-être donner à votre biome un poids plus élevé pendant les tests afin de pouvoir trouver le biome plus facilement. 
 +Dans ce tutoriel, nous allons ajouter le biome personnalisé aux climats TEMPERATE et COOL à titre d'exemple. 
 + 
 +<code java> 
 +public class ExampleMod implements ModInitializer { 
 +  @Override 
 +  public void onInitialize() { 
 +    [...] 
 + 
 +    OverworldBiomes.addContinentalBiome(OBSILAND_KEY, OverworldClimate.TEMPERATE, 2D); 
 +    OverworldBiomes.addContinentalBiome(OBSILAND_KEY, OverworldClimate.COOL, 2D); 
 +  } 
 +
 +</code> 
 + 
 +==== Résultat ==== 
 + 
 +** Félicitations! ** Votre biome devrait maintenant se générer dans le monde! 
 +Vous pouvez utiliser la commande ci-dessous pour trouver votre biome dans le monde. 
 + 
 +<code> 
 +/locatebiome tutorial:obsiland 
 +</code> 
 + 
 +{{tutorial:obsiland.png}}
fr/tutoriel/biomes.1613841302.txt.gz · Last modified: 2021/02/20 17:15 by mysterious_dev