OverworldBiomes.java

net.minecraft.data.worldgen.biome.OverworldBiomes

信息

  • 全限定名:net.minecraft.data.worldgen.biome.OverworldBiomes
  • 类型:public class
  • 包:net.minecraft.data.worldgen.biome
  • 源码路径:src/main/java/net/minecraft/data/worldgen/biome/OverworldBiomes.java
  • 起始行号:L27
  • 职责:

    TODO

字段/常量

  • NORMAL_WATER_COLOR

    • 类型: int
    • 修饰符: protected static final
    • 源码定位: L28
    • 说明:

      TODO

  • DARK_DRY_FOLIAGE_COLOR

    • 类型: int
    • 修饰符: private static final
    • 源码定位: L29
    • 说明:

      TODO

  • SWAMP_SKELETON_WEIGHT

    • 类型: int
    • 修饰符: public static final
    • 源码定位: L30
    • 说明:

      TODO

内部类/嵌套类型

构造器

方法

下面的方法块按源码顺序生成。

public static int calculateSkyColor(float temperature) @ L32

  • 方法名:calculateSkyColor
  • 源码定位:L32
  • 返回类型:int
  • 修饰符:public static

参数:

  • temperature: float

说明:

TODO

private static Biome.BiomeBuilder baseBiome(float temperature, float downfall) @ L38

  • 方法名:baseBiome
  • 源码定位:L38
  • 返回类型:Biome.BiomeBuilder
  • 修饰符:private static

参数:

  • temperature: float
  • downfall: float

说明:

TODO

private static void globalOverworldGeneration(BiomeGenerationSettings.Builder generation) @ L47

  • 方法名:globalOverworldGeneration
  • 源码定位:L47
  • 返回类型:void
  • 修饰符:private static

参数:

  • generation: BiomeGenerationSettings.Builder

说明:

TODO

public static Biome oldGrowthTaiga(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers, boolean spruce) @ L56

  • 方法名:oldGrowthTaiga
  • 源码定位:L56
  • 返回类型:Biome
  • 修饰符:public static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>
  • spruce: boolean

说明:

TODO

public static Biome sparseJungle(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) @ L91

  • 方法名:sparseJungle
  • 源码定位:L91
  • 返回类型:Biome
  • 修饰符:public static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>

说明:

TODO

public static Biome jungle(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) @ L101

  • 方法名:jungle
  • 源码定位:L101
  • 返回类型:Biome
  • 修饰符:public static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>

说明:

TODO

public static Biome bambooJungle(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) @ L114

  • 方法名:bambooJungle
  • 源码定位:L114
  • 返回类型:Biome
  • 修饰符:public static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>

说明:

TODO

private static Biome.BiomeBuilder baseJungle(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers, float downfall, boolean bamboo, boolean sparse, boolean core) @ L127

  • 方法名:baseJungle
  • 源码定位:L127
  • 返回类型:Biome.BiomeBuilder
  • 修饰符:private static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>
  • downfall: float
  • bamboo: boolean
  • sparse: boolean
  • core: boolean

说明:

TODO

public static Biome windsweptHills(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers, boolean moreTrees) @ L167

  • 方法名:windsweptHills
  • 源码定位:L167
  • 返回类型:Biome
  • 修饰符:public static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>
  • moreTrees: boolean

说明:

TODO

public static Biome desert(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) @ L192

  • 方法名:desert
  • 源码定位:L192
  • 返回类型:Biome
  • 修饰符:public static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>

说明:

TODO

public static Biome plains(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers, boolean sunflower, boolean snowy, boolean spikes) @ L215

  • 方法名:plains
  • 源码定位:L215
  • 返回类型:Biome
  • 修饰符:public static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>
  • sunflower: boolean
  • snowy: boolean
  • spikes: boolean

说明:

TODO

public static Biome mushroomFields(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) @ L253

  • 方法名:mushroomFields
  • 源码定位:L253
  • 返回类型:Biome
  • 修饰符:public static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>

说明:

TODO

public static Biome savanna(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers, boolean shattered, boolean plateau) @ L270

  • 方法名:savanna
  • 源码定位:L270
  • 返回类型:Biome
  • 修饰符:public static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>
  • shattered: boolean
  • plateau: boolean

说明:

TODO

public static Biome badlands(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers, boolean wooded) @ L310

  • 方法名:badlands
  • 源码定位:L310
  • 返回类型:Biome
  • 修饰符:public static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>
  • wooded: boolean

说明:

TODO

private static Biome.BiomeBuilder baseOcean() @ L343

  • 方法名:baseOcean
  • 源码定位:L343
  • 返回类型:Biome.BiomeBuilder
  • 修饰符:private static

参数:

说明:

TODO

private static BiomeGenerationSettings.Builder baseOceanGeneration(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) @ L347

  • 方法名:baseOceanGeneration
  • 源码定位:L347
  • 返回类型:BiomeGenerationSettings.Builder
  • 修饰符:private static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>

说明:

TODO

public static Biome coldOcean(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers, boolean deep) @ L362

  • 方法名:coldOcean
  • 源码定位:L362
  • 返回类型:Biome
  • 修饰符:public static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>
  • deep: boolean

说明:

TODO

public static Biome ocean(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers, boolean deep) @ L377

  • 方法名:ocean
  • 源码定位:L377
  • 返回类型:Biome
  • 修饰符:public static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>
  • deep: boolean

说明:

TODO

public static Biome lukeWarmOcean(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers, boolean deep) @ L388

  • 方法名:lukeWarmOcean
  • 源码定位:L388
  • 返回类型:Biome
  • 修饰符:public static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>
  • deep: boolean

说明:

TODO

public static Biome warmOcean(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) @ L411

  • 方法名:warmOcean
  • 源码定位:L411
  • 返回类型:Biome
  • 修饰符:public static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>

说明:

TODO

public static Biome frozenOcean(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers, boolean deep) @ L428

  • 方法名:frozenOcean
  • 源码定位:L428
  • 返回类型:Biome
  • 修饰符:public static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>
  • deep: boolean

说明:

TODO

public static Biome forest(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers, boolean birch, boolean tall, boolean flower) @ L456

  • 方法名:forest
  • 源码定位:L456
  • 返回类型:Biome
  • 修饰符:public static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>
  • birch: boolean
  • tall: boolean
  • flower: boolean

说明:

TODO

public static Biome taiga(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers, boolean snowy) @ L511

  • 方法名:taiga
  • 源码定位:L511
  • 返回类型:Biome
  • 修饰符:public static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>
  • snowy: boolean

说明:

TODO

public static Biome darkForest(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers, boolean isPaleGarden) @ L541

  • 方法名:darkForest
  • 源码定位:L541
  • 返回类型:Biome
  • 修饰符:public static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>
  • isPaleGarden: boolean

说明:

TODO

public static Biome swamp(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) @ L607

  • 方法名:swamp
  • 源码定位:L607
  • 返回类型:Biome
  • 修饰符:public static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>

说明:

TODO

public static Biome mangroveSwamp(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) @ L638

  • 方法名:mangroveSwamp
  • 源码定位:L638
  • 返回类型:Biome
  • 修饰符:public static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>

说明:

TODO

public static Biome river(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers, boolean frozen) @ L668

  • 方法名:river
  • 源码定位:L668
  • 返回类型:Biome
  • 修饰符:public static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>
  • frozen: boolean

说明:

TODO

public static Biome beach(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers, boolean snowy, boolean stony) @ L696

  • 方法名:beach
  • 源码定位:L696
  • 返回类型:Biome
  • 修饰符:public static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>
  • snowy: boolean
  • stony: boolean

说明:

TODO

public static Biome theVoid(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) @ L729

  • 方法名:theVoid
  • 源码定位:L729
  • 返回类型:Biome
  • 修饰符:public static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>

说明:

TODO

public static Biome meadowOrCherryGrove(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers, boolean cherryGrove) @ L739

  • 方法名:meadowOrCherryGrove
  • 源码定位:L739
  • 返回类型:Biome
  • 修饰符:public static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>
  • cherryGrove: boolean

说明:

TODO

private static Biome.BiomeBuilder basePeaks(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) @ L780

  • 方法名:basePeaks
  • 源码定位:L780
  • 返回类型:Biome.BiomeBuilder
  • 修饰符:private static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>

说明:

TODO

public static Biome frozenPeaks(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) @ L797

  • 方法名:frozenPeaks
  • 源码定位:L797
  • 返回类型:Biome
  • 修饰符:public static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>

说明:

TODO

public static Biome jaggedPeaks(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) @ L803

  • 方法名:jaggedPeaks
  • 源码定位:L803
  • 返回类型:Biome
  • 修饰符:public static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>

说明:

TODO

public static Biome stonyPeaks(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) @ L809

  • 方法名:stonyPeaks
  • 源码定位:L809
  • 返回类型:Biome
  • 修饰符:public static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>

说明:

TODO

public static Biome snowySlopes(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) @ L825

  • 方法名:snowySlopes
  • 源码定位:L825
  • 返回类型:Biome
  • 修饰符:public static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>

说明:

TODO

public static Biome grove(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) @ L846

  • 方法名:grove
  • 源码定位:L846
  • 返回类型:Biome
  • 修饰符:public static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>

说明:

TODO

public static Biome lushCaves(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) @ L868

  • 方法名:lushCaves
  • 源码定位:L868
  • 返回类型:Biome
  • 修饰符:public static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>

说明:

TODO

public static Biome dripstoneCaves(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) @ L887

  • 方法名:dripstoneCaves
  • 源码定位:L887
  • 返回类型:Biome
  • 修饰符:public static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>

说明:

TODO

public static Biome deepDark(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) @ L906

  • 方法名:deepDark
  • 源码定位:L906
  • 返回类型:Biome
  • 修饰符:public static

参数:

  • placedFeatures: HolderGetter
  • carvers: HolderGetter<ConfiguredWorldCarver<?>>

说明:

TODO

代码

public class OverworldBiomes {
    protected static final int NORMAL_WATER_COLOR = 4159204;
    private static final int DARK_DRY_FOLIAGE_COLOR = 8082228;
    public static final int SWAMP_SKELETON_WEIGHT = 70;
 
    public static int calculateSkyColor(float temperature) {
        float temp = temperature / 3.0F;
        temp = Mth.clamp(temp, -1.0F, 1.0F);
        return ARGB.opaque(Mth.hsvToRgb(0.62222224F - temp * 0.05F, 0.5F + temp * 0.1F, 1.0F));
    }
 
    private static Biome.BiomeBuilder baseBiome(float temperature, float downfall) {
        return new Biome.BiomeBuilder()
            .hasPrecipitation(true)
            .temperature(temperature)
            .downfall(downfall)
            .setAttribute(EnvironmentAttributes.SKY_COLOR, calculateSkyColor(temperature))
            .specialEffects(new BiomeSpecialEffects.Builder().waterColor(4159204).build());
    }
 
    private static void globalOverworldGeneration(BiomeGenerationSettings.Builder generation) {
        BiomeDefaultFeatures.addDefaultCarversAndLakes(generation);
        BiomeDefaultFeatures.addDefaultCrystalFormations(generation);
        BiomeDefaultFeatures.addDefaultMonsterRoom(generation);
        BiomeDefaultFeatures.addDefaultUndergroundVariety(generation);
        BiomeDefaultFeatures.addDefaultSprings(generation);
        BiomeDefaultFeatures.addSurfaceFreezing(generation);
    }
 
    public static Biome oldGrowthTaiga(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers, boolean spruce) {
        MobSpawnSettings.Builder mobs = new MobSpawnSettings.Builder();
        BiomeDefaultFeatures.farmAnimals(mobs);
        mobs.addSpawn(MobCategory.CREATURE, 8, new MobSpawnSettings.SpawnerData(EntityType.WOLF, 4, 4));
        mobs.addSpawn(MobCategory.CREATURE, 4, new MobSpawnSettings.SpawnerData(EntityType.RABBIT, 2, 3));
        mobs.addSpawn(MobCategory.CREATURE, 8, new MobSpawnSettings.SpawnerData(EntityType.FOX, 2, 4));
        if (spruce) {
            BiomeDefaultFeatures.commonSpawns(mobs);
        } else {
            BiomeDefaultFeatures.caveSpawns(mobs);
            BiomeDefaultFeatures.monsters(mobs, 100, 25, 0, 100, false);
        }
 
        BiomeGenerationSettings.Builder generation = new BiomeGenerationSettings.Builder(placedFeatures, carvers);
        globalOverworldGeneration(generation);
        BiomeDefaultFeatures.addMossyStoneBlock(generation);
        BiomeDefaultFeatures.addFerns(generation);
        BiomeDefaultFeatures.addDefaultOres(generation);
        BiomeDefaultFeatures.addDefaultSoftDisks(generation);
        generation.addFeature(
            GenerationStep.Decoration.VEGETAL_DECORATION,
            spruce ? VegetationPlacements.TREES_OLD_GROWTH_SPRUCE_TAIGA : VegetationPlacements.TREES_OLD_GROWTH_PINE_TAIGA
        );
        BiomeDefaultFeatures.addDefaultFlowers(generation);
        BiomeDefaultFeatures.addGiantTaigaVegetation(generation);
        BiomeDefaultFeatures.addDefaultMushrooms(generation);
        BiomeDefaultFeatures.addDefaultExtraVegetation(generation, true);
        BiomeDefaultFeatures.addCommonBerryBushes(generation);
        return baseBiome(spruce ? 0.25F : 0.3F, 0.8F)
            .setAttribute(EnvironmentAttributes.BACKGROUND_MUSIC, new BackgroundMusic(SoundEvents.MUSIC_BIOME_OLD_GROWTH_TAIGA))
            .mobSpawnSettings(mobs.build())
            .generationSettings(generation.build())
            .build();
    }
 
    public static Biome sparseJungle(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) {
        MobSpawnSettings.Builder mobs = new MobSpawnSettings.Builder();
        BiomeDefaultFeatures.baseJungleSpawns(mobs);
        mobs.addSpawn(MobCategory.CREATURE, 8, new MobSpawnSettings.SpawnerData(EntityType.WOLF, 2, 4));
        return baseJungle(placedFeatures, carvers, 0.8F, false, true, false)
            .mobSpawnSettings(mobs.build())
            .setAttribute(EnvironmentAttributes.BACKGROUND_MUSIC, new BackgroundMusic(SoundEvents.MUSIC_BIOME_SPARSE_JUNGLE))
            .build();
    }
 
    public static Biome jungle(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) {
        MobSpawnSettings.Builder mobs = new MobSpawnSettings.Builder();
        BiomeDefaultFeatures.baseJungleSpawns(mobs);
        mobs.addSpawn(MobCategory.CREATURE, 40, new MobSpawnSettings.SpawnerData(EntityType.PARROT, 1, 2))
            .addSpawn(MobCategory.MONSTER, 2, new MobSpawnSettings.SpawnerData(EntityType.OCELOT, 1, 3))
            .addSpawn(MobCategory.CREATURE, 1, new MobSpawnSettings.SpawnerData(EntityType.PANDA, 1, 2));
        return baseJungle(placedFeatures, carvers, 0.9F, false, false, true)
            .mobSpawnSettings(mobs.build())
            .setAttribute(EnvironmentAttributes.BACKGROUND_MUSIC, new BackgroundMusic(SoundEvents.MUSIC_BIOME_JUNGLE))
            .setAttribute(EnvironmentAttributes.INCREASED_FIRE_BURNOUT, true)
            .build();
    }
 
    public static Biome bambooJungle(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) {
        MobSpawnSettings.Builder mobs = new MobSpawnSettings.Builder();
        BiomeDefaultFeatures.baseJungleSpawns(mobs);
        mobs.addSpawn(MobCategory.CREATURE, 40, new MobSpawnSettings.SpawnerData(EntityType.PARROT, 1, 2))
            .addSpawn(MobCategory.CREATURE, 80, new MobSpawnSettings.SpawnerData(EntityType.PANDA, 1, 2))
            .addSpawn(MobCategory.MONSTER, 2, new MobSpawnSettings.SpawnerData(EntityType.OCELOT, 1, 1));
        return baseJungle(placedFeatures, carvers, 0.9F, true, false, true)
            .mobSpawnSettings(mobs.build())
            .setAttribute(EnvironmentAttributes.BACKGROUND_MUSIC, new BackgroundMusic(SoundEvents.MUSIC_BIOME_BAMBOO_JUNGLE))
            .setAttribute(EnvironmentAttributes.INCREASED_FIRE_BURNOUT, true)
            .build();
    }
 
    private static Biome.BiomeBuilder baseJungle(
        HolderGetter<PlacedFeature> placedFeatures,
        HolderGetter<ConfiguredWorldCarver<?>> carvers,
        float downfall,
        boolean bamboo,
        boolean sparse,
        boolean core
    ) {
        BiomeGenerationSettings.Builder generation = new BiomeGenerationSettings.Builder(placedFeatures, carvers);
        globalOverworldGeneration(generation);
        BiomeDefaultFeatures.addDefaultOres(generation);
        BiomeDefaultFeatures.addDefaultSoftDisks(generation);
        if (bamboo) {
            BiomeDefaultFeatures.addBambooVegetation(generation);
        } else {
            if (core) {
                BiomeDefaultFeatures.addLightBambooVegetation(generation);
            }
 
            if (sparse) {
                BiomeDefaultFeatures.addSparseJungleTrees(generation);
            } else {
                BiomeDefaultFeatures.addJungleTrees(generation);
            }
        }
 
        BiomeDefaultFeatures.addWarmFlowers(generation);
        BiomeDefaultFeatures.addJungleGrass(generation);
        BiomeDefaultFeatures.addDefaultMushrooms(generation);
        BiomeDefaultFeatures.addDefaultExtraVegetation(generation, true);
        BiomeDefaultFeatures.addJungleVines(generation);
        if (sparse) {
            BiomeDefaultFeatures.addSparseJungleMelons(generation);
        } else {
            BiomeDefaultFeatures.addJungleMelons(generation);
        }
 
        return baseBiome(0.95F, downfall).generationSettings(generation.build());
    }
 
    public static Biome windsweptHills(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers, boolean moreTrees) {
        MobSpawnSettings.Builder mobs = new MobSpawnSettings.Builder();
        BiomeDefaultFeatures.farmAnimals(mobs);
        mobs.addSpawn(MobCategory.CREATURE, 5, new MobSpawnSettings.SpawnerData(EntityType.LLAMA, 4, 6));
        BiomeDefaultFeatures.commonSpawns(mobs);
        BiomeGenerationSettings.Builder generation = new BiomeGenerationSettings.Builder(placedFeatures, carvers);
        globalOverworldGeneration(generation);
        BiomeDefaultFeatures.addDefaultOres(generation);
        BiomeDefaultFeatures.addDefaultSoftDisks(generation);
        if (moreTrees) {
            BiomeDefaultFeatures.addMountainForestTrees(generation);
        } else {
            BiomeDefaultFeatures.addMountainTrees(generation);
        }
 
        BiomeDefaultFeatures.addBushes(generation);
        BiomeDefaultFeatures.addDefaultFlowers(generation);
        BiomeDefaultFeatures.addDefaultGrass(generation);
        BiomeDefaultFeatures.addDefaultMushrooms(generation);
        BiomeDefaultFeatures.addDefaultExtraVegetation(generation, true);
        BiomeDefaultFeatures.addExtraEmeralds(generation);
        BiomeDefaultFeatures.addInfestedStone(generation);
        return baseBiome(0.2F, 0.3F).mobSpawnSettings(mobs.build()).generationSettings(generation.build()).build();
    }
 
    public static Biome desert(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) {
        MobSpawnSettings.Builder mobs = new MobSpawnSettings.Builder();
        BiomeDefaultFeatures.desertSpawns(mobs);
        BiomeGenerationSettings.Builder generation = new BiomeGenerationSettings.Builder(placedFeatures, carvers);
        BiomeDefaultFeatures.addFossilDecoration(generation);
        globalOverworldGeneration(generation);
        BiomeDefaultFeatures.addDefaultOres(generation);
        BiomeDefaultFeatures.addDefaultSoftDisks(generation);
        BiomeDefaultFeatures.addDefaultFlowers(generation);
        BiomeDefaultFeatures.addDefaultGrass(generation);
        BiomeDefaultFeatures.addDesertVegetation(generation);
        BiomeDefaultFeatures.addDefaultMushrooms(generation);
        BiomeDefaultFeatures.addDesertExtraVegetation(generation);
        BiomeDefaultFeatures.addDesertExtraDecoration(generation);
        return baseBiome(2.0F, 0.0F)
            .hasPrecipitation(false)
            .setAttribute(EnvironmentAttributes.BACKGROUND_MUSIC, new BackgroundMusic(SoundEvents.MUSIC_BIOME_DESERT))
            .setAttribute(EnvironmentAttributes.SNOW_GOLEM_MELTS, true)
            .mobSpawnSettings(mobs.build())
            .generationSettings(generation.build())
            .build();
    }
 
    public static Biome plains(
        HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers, boolean sunflower, boolean snowy, boolean spikes
    ) {
        MobSpawnSettings.Builder mobs = new MobSpawnSettings.Builder();
        BiomeGenerationSettings.Builder generation = new BiomeGenerationSettings.Builder(placedFeatures, carvers);
        globalOverworldGeneration(generation);
        if (snowy) {
            mobs.creatureGenerationProbability(0.07F);
            BiomeDefaultFeatures.snowySpawns(mobs, !spikes);
            if (spikes) {
                generation.addFeature(GenerationStep.Decoration.SURFACE_STRUCTURES, MiscOverworldPlacements.ICE_SPIKE);
                generation.addFeature(GenerationStep.Decoration.SURFACE_STRUCTURES, MiscOverworldPlacements.ICE_PATCH);
            }
        } else {
            BiomeDefaultFeatures.plainsSpawns(mobs);
            BiomeDefaultFeatures.addPlainGrass(generation);
            if (sunflower) {
                generation.addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, VegetationPlacements.PATCH_SUNFLOWER);
            } else {
                BiomeDefaultFeatures.addBushes(generation);
            }
        }
 
        BiomeDefaultFeatures.addDefaultOres(generation);
        BiomeDefaultFeatures.addDefaultSoftDisks(generation);
        if (snowy) {
            BiomeDefaultFeatures.addSnowyTrees(generation);
            BiomeDefaultFeatures.addDefaultFlowers(generation);
            BiomeDefaultFeatures.addDefaultGrass(generation);
        } else {
            BiomeDefaultFeatures.addPlainVegetation(generation);
        }
 
        BiomeDefaultFeatures.addDefaultMushrooms(generation);
        BiomeDefaultFeatures.addDefaultExtraVegetation(generation, true);
        return baseBiome(snowy ? 0.0F : 0.8F, snowy ? 0.5F : 0.4F).mobSpawnSettings(mobs.build()).generationSettings(generation.build()).build();
    }
 
    public static Biome mushroomFields(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) {
        MobSpawnSettings.Builder mobs = new MobSpawnSettings.Builder();
        BiomeDefaultFeatures.mooshroomSpawns(mobs);
        BiomeGenerationSettings.Builder generation = new BiomeGenerationSettings.Builder(placedFeatures, carvers);
        globalOverworldGeneration(generation);
        BiomeDefaultFeatures.addDefaultOres(generation);
        BiomeDefaultFeatures.addDefaultSoftDisks(generation);
        BiomeDefaultFeatures.addMushroomFieldVegetation(generation);
        BiomeDefaultFeatures.addNearWaterVegetation(generation);
        return baseBiome(0.9F, 1.0F)
            .setAttribute(EnvironmentAttributes.INCREASED_FIRE_BURNOUT, true)
            .setAttribute(EnvironmentAttributes.CAN_PILLAGER_PATROL_SPAWN, false)
            .mobSpawnSettings(mobs.build())
            .generationSettings(generation.build())
            .build();
    }
 
    public static Biome savanna(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers, boolean shattered, boolean plateau) {
        BiomeGenerationSettings.Builder generation = new BiomeGenerationSettings.Builder(placedFeatures, carvers);
        globalOverworldGeneration(generation);
        if (!shattered) {
            BiomeDefaultFeatures.addSavannaGrass(generation);
        }
 
        BiomeDefaultFeatures.addDefaultOres(generation);
        BiomeDefaultFeatures.addDefaultSoftDisks(generation);
        if (shattered) {
            BiomeDefaultFeatures.addShatteredSavannaTrees(generation);
            BiomeDefaultFeatures.addDefaultFlowers(generation);
            BiomeDefaultFeatures.addShatteredSavannaGrass(generation);
        } else {
            BiomeDefaultFeatures.addSavannaTrees(generation);
            BiomeDefaultFeatures.addWarmFlowers(generation);
            BiomeDefaultFeatures.addSavannaExtraGrass(generation);
        }
 
        BiomeDefaultFeatures.addDefaultMushrooms(generation);
        BiomeDefaultFeatures.addDefaultExtraVegetation(generation, true);
        MobSpawnSettings.Builder mobs = new MobSpawnSettings.Builder();
        BiomeDefaultFeatures.farmAnimals(mobs);
        mobs.addSpawn(MobCategory.CREATURE, 1, new MobSpawnSettings.SpawnerData(EntityType.HORSE, 2, 6))
            .addSpawn(MobCategory.CREATURE, 1, new MobSpawnSettings.SpawnerData(EntityType.DONKEY, 1, 1))
            .addSpawn(MobCategory.CREATURE, 10, new MobSpawnSettings.SpawnerData(EntityType.ARMADILLO, 2, 3));
        BiomeDefaultFeatures.commonSpawnWithZombieHorse(mobs);
        if (plateau) {
            mobs.addSpawn(MobCategory.CREATURE, 8, new MobSpawnSettings.SpawnerData(EntityType.LLAMA, 4, 4));
            mobs.addSpawn(MobCategory.CREATURE, 8, new MobSpawnSettings.SpawnerData(EntityType.WOLF, 4, 8));
        }
 
        return baseBiome(2.0F, 0.0F)
            .hasPrecipitation(false)
            .setAttribute(EnvironmentAttributes.SNOW_GOLEM_MELTS, true)
            .mobSpawnSettings(mobs.build())
            .generationSettings(generation.build())
            .build();
    }
 
    public static Biome badlands(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers, boolean wooded) {
        MobSpawnSettings.Builder mobs = new MobSpawnSettings.Builder();
        BiomeDefaultFeatures.farmAnimals(mobs);
        BiomeDefaultFeatures.commonSpawns(mobs);
        mobs.addSpawn(MobCategory.CREATURE, 6, new MobSpawnSettings.SpawnerData(EntityType.ARMADILLO, 1, 2));
        mobs.creatureGenerationProbability(0.03F);
        if (wooded) {
            mobs.addSpawn(MobCategory.CREATURE, 2, new MobSpawnSettings.SpawnerData(EntityType.WOLF, 4, 8));
            mobs.creatureGenerationProbability(0.04F);
        }
 
        BiomeGenerationSettings.Builder generation = new BiomeGenerationSettings.Builder(placedFeatures, carvers);
        globalOverworldGeneration(generation);
        BiomeDefaultFeatures.addDefaultOres(generation);
        BiomeDefaultFeatures.addExtraGold(generation);
        BiomeDefaultFeatures.addDefaultSoftDisks(generation);
        if (wooded) {
            BiomeDefaultFeatures.addBadlandsTrees(generation);
        }
 
        BiomeDefaultFeatures.addBadlandGrass(generation);
        BiomeDefaultFeatures.addDefaultMushrooms(generation);
        BiomeDefaultFeatures.addBadlandExtraVegetation(generation);
        return baseBiome(2.0F, 0.0F)
            .hasPrecipitation(false)
            .setAttribute(EnvironmentAttributes.BACKGROUND_MUSIC, new BackgroundMusic(SoundEvents.MUSIC_BIOME_BADLANDS))
            .setAttribute(EnvironmentAttributes.SNOW_GOLEM_MELTS, true)
            .specialEffects(new BiomeSpecialEffects.Builder().waterColor(4159204).foliageColorOverride(10387789).grassColorOverride(9470285).build())
            .mobSpawnSettings(mobs.build())
            .generationSettings(generation.build())
            .build();
    }
 
    private static Biome.BiomeBuilder baseOcean() {
        return baseBiome(0.5F, 0.5F).setAttribute(EnvironmentAttributes.BACKGROUND_MUSIC, BackgroundMusic.OVERWORLD.withUnderwater(Musics.UNDER_WATER));
    }
 
    private static BiomeGenerationSettings.Builder baseOceanGeneration(
        HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers
    ) {
        BiomeGenerationSettings.Builder generation = new BiomeGenerationSettings.Builder(placedFeatures, carvers);
        globalOverworldGeneration(generation);
        BiomeDefaultFeatures.addDefaultOres(generation);
        BiomeDefaultFeatures.addDefaultSoftDisks(generation);
        BiomeDefaultFeatures.addWaterTrees(generation);
        BiomeDefaultFeatures.addDefaultFlowers(generation);
        BiomeDefaultFeatures.addDefaultGrass(generation);
        BiomeDefaultFeatures.addDefaultMushrooms(generation);
        BiomeDefaultFeatures.addDefaultExtraVegetation(generation, true);
        return generation;
    }
 
    public static Biome coldOcean(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers, boolean deep) {
        MobSpawnSettings.Builder mobs = new MobSpawnSettings.Builder();
        BiomeDefaultFeatures.oceanSpawns(mobs, 3, 4, 15);
        mobs.addSpawn(MobCategory.WATER_AMBIENT, 15, new MobSpawnSettings.SpawnerData(EntityType.SALMON, 1, 5));
        mobs.addSpawn(MobCategory.WATER_CREATURE, 2, new MobSpawnSettings.SpawnerData(EntityType.NAUTILUS, 1, 1));
        BiomeGenerationSettings.Builder generation = baseOceanGeneration(placedFeatures, carvers);
        generation.addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, deep ? AquaticPlacements.SEAGRASS_DEEP_COLD : AquaticPlacements.SEAGRASS_COLD);
        BiomeDefaultFeatures.addColdOceanExtraVegetation(generation);
        return baseOcean()
            .specialEffects(new BiomeSpecialEffects.Builder().waterColor(4020182).build())
            .mobSpawnSettings(mobs.build())
            .generationSettings(generation.build())
            .build();
    }
 
    public static Biome ocean(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers, boolean deep) {
        MobSpawnSettings.Builder mobs = new MobSpawnSettings.Builder();
        BiomeDefaultFeatures.oceanSpawns(mobs, 1, 4, 10);
        mobs.addSpawn(MobCategory.WATER_CREATURE, 1, new MobSpawnSettings.SpawnerData(EntityType.DOLPHIN, 1, 2))
            .addSpawn(MobCategory.WATER_CREATURE, 5, new MobSpawnSettings.SpawnerData(EntityType.NAUTILUS, 1, 1));
        BiomeGenerationSettings.Builder generation = baseOceanGeneration(placedFeatures, carvers);
        generation.addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, deep ? AquaticPlacements.SEAGRASS_DEEP : AquaticPlacements.SEAGRASS_NORMAL);
        BiomeDefaultFeatures.addColdOceanExtraVegetation(generation);
        return baseOcean().mobSpawnSettings(mobs.build()).generationSettings(generation.build()).build();
    }
 
    public static Biome lukeWarmOcean(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers, boolean deep) {
        MobSpawnSettings.Builder mobs = new MobSpawnSettings.Builder();
        if (deep) {
            BiomeDefaultFeatures.oceanSpawns(mobs, 8, 4, 8);
        } else {
            BiomeDefaultFeatures.oceanSpawns(mobs, 10, 2, 15);
        }
 
        mobs.addSpawn(MobCategory.WATER_AMBIENT, 5, new MobSpawnSettings.SpawnerData(EntityType.PUFFERFISH, 1, 3))
            .addSpawn(MobCategory.WATER_AMBIENT, 25, new MobSpawnSettings.SpawnerData(EntityType.TROPICAL_FISH, 8, 8))
            .addSpawn(MobCategory.WATER_CREATURE, 2, new MobSpawnSettings.SpawnerData(EntityType.DOLPHIN, 1, 2))
            .addSpawn(MobCategory.WATER_CREATURE, 5, new MobSpawnSettings.SpawnerData(EntityType.NAUTILUS, 1, 1));
        BiomeGenerationSettings.Builder generation = baseOceanGeneration(placedFeatures, carvers);
        generation.addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, deep ? AquaticPlacements.SEAGRASS_DEEP_WARM : AquaticPlacements.SEAGRASS_WARM);
        BiomeDefaultFeatures.addLukeWarmKelp(generation);
        return baseOcean()
            .setAttribute(EnvironmentAttributes.WATER_FOG_COLOR, -16509389)
            .specialEffects(new BiomeSpecialEffects.Builder().waterColor(4566514).build())
            .mobSpawnSettings(mobs.build())
            .generationSettings(generation.build())
            .build();
    }
 
    public static Biome warmOcean(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) {
        MobSpawnSettings.Builder mobs = new MobSpawnSettings.Builder()
            .addSpawn(MobCategory.WATER_AMBIENT, 15, new MobSpawnSettings.SpawnerData(EntityType.PUFFERFISH, 1, 3))
            .addSpawn(MobCategory.WATER_CREATURE, 5, new MobSpawnSettings.SpawnerData(EntityType.NAUTILUS, 1, 1));
        BiomeDefaultFeatures.warmOceanSpawns(mobs, 10, 4);
        BiomeGenerationSettings.Builder generation = baseOceanGeneration(placedFeatures, carvers)
            .addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, AquaticPlacements.WARM_OCEAN_VEGETATION)
            .addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, AquaticPlacements.SEAGRASS_WARM)
            .addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, AquaticPlacements.SEA_PICKLE);
        return baseOcean()
            .setAttribute(EnvironmentAttributes.WATER_FOG_COLOR, -16507085)
            .specialEffects(new BiomeSpecialEffects.Builder().waterColor(4445678).build())
            .mobSpawnSettings(mobs.build())
            .generationSettings(generation.build())
            .build();
    }
 
    public static Biome frozenOcean(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers, boolean deep) {
        MobSpawnSettings.Builder mobs = new MobSpawnSettings.Builder()
            .addSpawn(MobCategory.WATER_CREATURE, 1, new MobSpawnSettings.SpawnerData(EntityType.SQUID, 1, 4))
            .addSpawn(MobCategory.WATER_AMBIENT, 15, new MobSpawnSettings.SpawnerData(EntityType.SALMON, 1, 5))
            .addSpawn(MobCategory.CREATURE, 1, new MobSpawnSettings.SpawnerData(EntityType.POLAR_BEAR, 1, 2))
            .addSpawn(MobCategory.WATER_CREATURE, 2, new MobSpawnSettings.SpawnerData(EntityType.NAUTILUS, 1, 1));
        BiomeDefaultFeatures.commonSpawns(mobs);
        mobs.addSpawn(MobCategory.MONSTER, 5, new MobSpawnSettings.SpawnerData(EntityType.DROWNED, 1, 1));
        float temperature = deep ? 0.5F : 0.0F;
        BiomeGenerationSettings.Builder generation = new BiomeGenerationSettings.Builder(placedFeatures, carvers);
        BiomeDefaultFeatures.addIcebergs(generation);
        globalOverworldGeneration(generation);
        BiomeDefaultFeatures.addBlueIce(generation);
        BiomeDefaultFeatures.addDefaultOres(generation);
        BiomeDefaultFeatures.addDefaultSoftDisks(generation);
        BiomeDefaultFeatures.addWaterTrees(generation);
        BiomeDefaultFeatures.addDefaultFlowers(generation);
        BiomeDefaultFeatures.addDefaultGrass(generation);
        BiomeDefaultFeatures.addDefaultMushrooms(generation);
        BiomeDefaultFeatures.addDefaultExtraVegetation(generation, true);
        return baseBiome(temperature, 0.5F)
            .temperatureAdjustment(Biome.TemperatureModifier.FROZEN)
            .specialEffects(new BiomeSpecialEffects.Builder().waterColor(3750089).build())
            .mobSpawnSettings(mobs.build())
            .generationSettings(generation.build())
            .build();
    }
 
    public static Biome forest(
        HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers, boolean birch, boolean tall, boolean flower
    ) {
        BiomeGenerationSettings.Builder generation = new BiomeGenerationSettings.Builder(placedFeatures, carvers);
        globalOverworldGeneration(generation);
        BackgroundMusic music;
        if (flower) {
            music = new BackgroundMusic(SoundEvents.MUSIC_BIOME_FLOWER_FOREST);
            generation.addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, VegetationPlacements.FLOWER_FOREST_FLOWERS);
        } else {
            music = new BackgroundMusic(SoundEvents.MUSIC_BIOME_FOREST);
            BiomeDefaultFeatures.addForestFlowers(generation);
        }
 
        BiomeDefaultFeatures.addDefaultOres(generation);
        BiomeDefaultFeatures.addDefaultSoftDisks(generation);
        if (flower) {
            generation.addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, VegetationPlacements.TREES_FLOWER_FOREST);
            generation.addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, VegetationPlacements.FLOWER_FLOWER_FOREST);
            BiomeDefaultFeatures.addDefaultGrass(generation);
        } else {
            if (birch) {
                BiomeDefaultFeatures.addBirchForestFlowers(generation);
                if (tall) {
                    BiomeDefaultFeatures.addTallBirchTrees(generation);
                } else {
                    BiomeDefaultFeatures.addBirchTrees(generation);
                }
            } else {
                BiomeDefaultFeatures.addOtherBirchTrees(generation);
            }
 
            BiomeDefaultFeatures.addBushes(generation);
            BiomeDefaultFeatures.addDefaultFlowers(generation);
            BiomeDefaultFeatures.addForestGrass(generation);
        }
 
        BiomeDefaultFeatures.addDefaultMushrooms(generation);
        BiomeDefaultFeatures.addDefaultExtraVegetation(generation, true);
        MobSpawnSettings.Builder mobs = new MobSpawnSettings.Builder();
        BiomeDefaultFeatures.farmAnimals(mobs);
        BiomeDefaultFeatures.commonSpawns(mobs);
        if (flower) {
            mobs.addSpawn(MobCategory.CREATURE, 4, new MobSpawnSettings.SpawnerData(EntityType.RABBIT, 2, 3));
        } else if (!birch) {
            mobs.addSpawn(MobCategory.CREATURE, 5, new MobSpawnSettings.SpawnerData(EntityType.WOLF, 4, 4));
        }
 
        return baseBiome(birch ? 0.6F : 0.7F, birch ? 0.6F : 0.8F)
            .setAttribute(EnvironmentAttributes.BACKGROUND_MUSIC, music)
            .mobSpawnSettings(mobs.build())
            .generationSettings(generation.build())
            .build();
    }
 
    public static Biome taiga(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers, boolean snowy) {
        MobSpawnSettings.Builder mobs = new MobSpawnSettings.Builder();
        BiomeDefaultFeatures.farmAnimals(mobs);
        mobs.addSpawn(MobCategory.CREATURE, 8, new MobSpawnSettings.SpawnerData(EntityType.WOLF, 4, 4))
            .addSpawn(MobCategory.CREATURE, 4, new MobSpawnSettings.SpawnerData(EntityType.RABBIT, 2, 3))
            .addSpawn(MobCategory.CREATURE, 8, new MobSpawnSettings.SpawnerData(EntityType.FOX, 2, 4));
        BiomeDefaultFeatures.commonSpawns(mobs);
        BiomeGenerationSettings.Builder generation = new BiomeGenerationSettings.Builder(placedFeatures, carvers);
        globalOverworldGeneration(generation);
        BiomeDefaultFeatures.addFerns(generation);
        BiomeDefaultFeatures.addDefaultOres(generation);
        BiomeDefaultFeatures.addDefaultSoftDisks(generation);
        BiomeDefaultFeatures.addTaigaTrees(generation);
        BiomeDefaultFeatures.addDefaultFlowers(generation);
        BiomeDefaultFeatures.addTaigaGrass(generation);
        BiomeDefaultFeatures.addDefaultExtraVegetation(generation, true);
        if (snowy) {
            BiomeDefaultFeatures.addRareBerryBushes(generation);
        } else {
            BiomeDefaultFeatures.addCommonBerryBushes(generation);
        }
 
        int waterColor = snowy ? 4020182 : 4159204;
        return baseBiome(snowy ? -0.5F : 0.25F, snowy ? 0.4F : 0.8F)
            .specialEffects(new BiomeSpecialEffects.Builder().waterColor(waterColor).build())
            .mobSpawnSettings(mobs.build())
            .generationSettings(generation.build())
            .build();
    }
 
    public static Biome darkForest(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers, boolean isPaleGarden) {
        MobSpawnSettings.Builder mobs = new MobSpawnSettings.Builder();
        if (!isPaleGarden) {
            BiomeDefaultFeatures.farmAnimals(mobs);
        }
 
        BiomeDefaultFeatures.commonSpawns(mobs);
        BiomeGenerationSettings.Builder generation = new BiomeGenerationSettings.Builder(placedFeatures, carvers);
        globalOverworldGeneration(generation);
        generation.addFeature(
            GenerationStep.Decoration.VEGETAL_DECORATION,
            isPaleGarden ? VegetationPlacements.PALE_GARDEN_VEGETATION : VegetationPlacements.DARK_FOREST_VEGETATION
        );
        if (!isPaleGarden) {
            BiomeDefaultFeatures.addForestFlowers(generation);
        } else {
            generation.addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, VegetationPlacements.PALE_MOSS_PATCH);
            generation.addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, VegetationPlacements.PALE_GARDEN_FLOWERS);
        }
 
        BiomeDefaultFeatures.addDefaultOres(generation);
        BiomeDefaultFeatures.addDefaultSoftDisks(generation);
        if (!isPaleGarden) {
            BiomeDefaultFeatures.addDefaultFlowers(generation);
        } else {
            generation.addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, VegetationPlacements.FLOWER_PALE_GARDEN);
        }
 
        BiomeDefaultFeatures.addForestGrass(generation);
        if (!isPaleGarden) {
            BiomeDefaultFeatures.addDefaultMushrooms(generation);
            BiomeDefaultFeatures.addLeafLitterPatch(generation);
        }
 
        BiomeDefaultFeatures.addDefaultExtraVegetation(generation, true);
        EnvironmentAttributeMap paleGardenAttributes = EnvironmentAttributeMap.builder()
            .set(EnvironmentAttributes.SKY_COLOR, -4605511)
            .set(EnvironmentAttributes.FOG_COLOR, -8292496)
            .set(EnvironmentAttributes.WATER_FOG_COLOR, -11179648)
            .set(EnvironmentAttributes.BACKGROUND_MUSIC, BackgroundMusic.EMPTY)
            .set(EnvironmentAttributes.MUSIC_VOLUME, 0.0F)
            .build();
        EnvironmentAttributeMap darkForestAttributes = EnvironmentAttributeMap.builder()
            .set(EnvironmentAttributes.BACKGROUND_MUSIC, new BackgroundMusic(SoundEvents.MUSIC_BIOME_FOREST))
            .build();
        return baseBiome(0.7F, 0.8F)
            .putAttributes(isPaleGarden ? paleGardenAttributes : darkForestAttributes)
            .specialEffects(
                isPaleGarden
                    ? new BiomeSpecialEffects.Builder()
                        .waterColor(7768221)
                        .grassColorOverride(7832178)
                        .foliageColorOverride(8883574)
                        .dryFoliageColorOverride(10528412)
                        .build()
                    : new BiomeSpecialEffects.Builder()
                        .waterColor(4159204)
                        .dryFoliageColorOverride(8082228)
                        .grassColorModifier(BiomeSpecialEffects.GrassColorModifier.DARK_FOREST)
                        .build()
            )
            .mobSpawnSettings(mobs.build())
            .generationSettings(generation.build())
            .build();
    }
 
    public static Biome swamp(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) {
        MobSpawnSettings.Builder mobs = new MobSpawnSettings.Builder();
        BiomeDefaultFeatures.farmAnimals(mobs);
        BiomeDefaultFeatures.swampSpawns(mobs, 70);
        BiomeGenerationSettings.Builder generation = new BiomeGenerationSettings.Builder(placedFeatures, carvers);
        BiomeDefaultFeatures.addFossilDecoration(generation);
        globalOverworldGeneration(generation);
        BiomeDefaultFeatures.addDefaultOres(generation);
        BiomeDefaultFeatures.addSwampClayDisk(generation);
        BiomeDefaultFeatures.addSwampVegetation(generation);
        BiomeDefaultFeatures.addDefaultMushrooms(generation);
        BiomeDefaultFeatures.addSwampExtraVegetation(generation);
        generation.addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, AquaticPlacements.SEAGRASS_SWAMP);
        return baseBiome(0.8F, 0.9F)
            .setAttribute(EnvironmentAttributes.WATER_FOG_COLOR, -14474473)
            .modifyAttribute(EnvironmentAttributes.WATER_FOG_END_DISTANCE, FloatModifier.MULTIPLY, 0.85F)
            .setAttribute(EnvironmentAttributes.BACKGROUND_MUSIC, new BackgroundMusic(SoundEvents.MUSIC_BIOME_SWAMP))
            .setAttribute(EnvironmentAttributes.INCREASED_FIRE_BURNOUT, true)
            .specialEffects(
                new BiomeSpecialEffects.Builder()
                    .waterColor(6388580)
                    .foliageColorOverride(6975545)
                    .dryFoliageColorOverride(8082228)
                    .grassColorModifier(BiomeSpecialEffects.GrassColorModifier.SWAMP)
                    .build()
            )
            .mobSpawnSettings(mobs.build())
            .generationSettings(generation.build())
            .build();
    }
 
    public static Biome mangroveSwamp(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) {
        MobSpawnSettings.Builder mobs = new MobSpawnSettings.Builder();
        BiomeDefaultFeatures.swampSpawns(mobs, 70);
        mobs.addSpawn(MobCategory.WATER_AMBIENT, 25, new MobSpawnSettings.SpawnerData(EntityType.TROPICAL_FISH, 8, 8));
        BiomeGenerationSettings.Builder generation = new BiomeGenerationSettings.Builder(placedFeatures, carvers);
        BiomeDefaultFeatures.addFossilDecoration(generation);
        globalOverworldGeneration(generation);
        BiomeDefaultFeatures.addDefaultOres(generation);
        BiomeDefaultFeatures.addMangroveSwampDisks(generation);
        BiomeDefaultFeatures.addMangroveSwampVegetation(generation);
        BiomeDefaultFeatures.addMangroveSwampExtraVegetation(generation);
        return baseBiome(0.8F, 0.9F)
            .setAttribute(EnvironmentAttributes.FOG_COLOR, -4138753)
            .setAttribute(EnvironmentAttributes.WATER_FOG_COLOR, -11699616)
            .modifyAttribute(EnvironmentAttributes.WATER_FOG_END_DISTANCE, FloatModifier.MULTIPLY, 0.85F)
            .setAttribute(EnvironmentAttributes.BACKGROUND_MUSIC, new BackgroundMusic(SoundEvents.MUSIC_BIOME_SWAMP))
            .setAttribute(EnvironmentAttributes.INCREASED_FIRE_BURNOUT, true)
            .specialEffects(
                new BiomeSpecialEffects.Builder()
                    .waterColor(3832426)
                    .foliageColorOverride(9285927)
                    .dryFoliageColorOverride(8082228)
                    .grassColorModifier(BiomeSpecialEffects.GrassColorModifier.SWAMP)
                    .build()
            )
            .mobSpawnSettings(mobs.build())
            .generationSettings(generation.build())
            .build();
    }
 
    public static Biome river(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers, boolean frozen) {
        MobSpawnSettings.Builder mobs = new MobSpawnSettings.Builder()
            .addSpawn(MobCategory.WATER_CREATURE, 2, new MobSpawnSettings.SpawnerData(EntityType.SQUID, 1, 4))
            .addSpawn(MobCategory.WATER_AMBIENT, 5, new MobSpawnSettings.SpawnerData(EntityType.SALMON, 1, 5));
        BiomeDefaultFeatures.commonSpawns(mobs);
        mobs.addSpawn(MobCategory.MONSTER, frozen ? 1 : 100, new MobSpawnSettings.SpawnerData(EntityType.DROWNED, 1, 1));
        BiomeGenerationSettings.Builder generation = new BiomeGenerationSettings.Builder(placedFeatures, carvers);
        globalOverworldGeneration(generation);
        BiomeDefaultFeatures.addDefaultOres(generation);
        BiomeDefaultFeatures.addDefaultSoftDisks(generation);
        BiomeDefaultFeatures.addWaterTrees(generation);
        BiomeDefaultFeatures.addBushes(generation);
        BiomeDefaultFeatures.addDefaultFlowers(generation);
        BiomeDefaultFeatures.addDefaultGrass(generation);
        BiomeDefaultFeatures.addDefaultMushrooms(generation);
        BiomeDefaultFeatures.addDefaultExtraVegetation(generation, true);
        if (!frozen) {
            generation.addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, AquaticPlacements.SEAGRASS_RIVER);
        }
 
        return baseBiome(frozen ? 0.0F : 0.5F, 0.5F)
            .setAttribute(EnvironmentAttributes.BACKGROUND_MUSIC, BackgroundMusic.OVERWORLD.withUnderwater(Musics.UNDER_WATER))
            .specialEffects(new BiomeSpecialEffects.Builder().waterColor(frozen ? 3750089 : 4159204).build())
            .mobSpawnSettings(mobs.build())
            .generationSettings(generation.build())
            .build();
    }
 
    public static Biome beach(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers, boolean snowy, boolean stony) {
        MobSpawnSettings.Builder mobs = new MobSpawnSettings.Builder();
        boolean sandy = !stony && !snowy;
        if (sandy) {
            mobs.addSpawn(MobCategory.CREATURE, 5, new MobSpawnSettings.SpawnerData(EntityType.TURTLE, 2, 5));
        }
 
        BiomeDefaultFeatures.commonSpawns(mobs);
        BiomeGenerationSettings.Builder generation = new BiomeGenerationSettings.Builder(placedFeatures, carvers);
        globalOverworldGeneration(generation);
        BiomeDefaultFeatures.addDefaultOres(generation);
        BiomeDefaultFeatures.addDefaultSoftDisks(generation);
        BiomeDefaultFeatures.addDefaultFlowers(generation);
        BiomeDefaultFeatures.addDefaultGrass(generation);
        BiomeDefaultFeatures.addDefaultMushrooms(generation);
        BiomeDefaultFeatures.addDefaultExtraVegetation(generation, true);
        float temperature;
        if (snowy) {
            temperature = 0.05F;
        } else if (stony) {
            temperature = 0.2F;
        } else {
            temperature = 0.8F;
        }
 
        int waterColor = snowy ? 4020182 : 4159204;
        return baseBiome(temperature, sandy ? 0.4F : 0.3F)
            .specialEffects(new BiomeSpecialEffects.Builder().waterColor(waterColor).build())
            .mobSpawnSettings(mobs.build())
            .generationSettings(generation.build())
            .build();
    }
 
    public static Biome theVoid(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) {
        BiomeGenerationSettings.Builder generation = new BiomeGenerationSettings.Builder(placedFeatures, carvers);
        generation.addFeature(GenerationStep.Decoration.TOP_LAYER_MODIFICATION, MiscOverworldPlacements.VOID_START_PLATFORM);
        return baseBiome(0.5F, 0.5F)
            .hasPrecipitation(false)
            .mobSpawnSettings(new MobSpawnSettings.Builder().build())
            .generationSettings(generation.build())
            .build();
    }
 
    public static Biome meadowOrCherryGrove(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers, boolean cherryGrove) {
        BiomeGenerationSettings.Builder generation = new BiomeGenerationSettings.Builder(placedFeatures, carvers);
        MobSpawnSettings.Builder mobs = new MobSpawnSettings.Builder();
        mobs.addSpawn(MobCategory.CREATURE, 1, new MobSpawnSettings.SpawnerData(cherryGrove ? EntityType.PIG : EntityType.DONKEY, 1, 2))
            .addSpawn(MobCategory.CREATURE, 2, new MobSpawnSettings.SpawnerData(EntityType.RABBIT, 2, 6))
            .addSpawn(MobCategory.CREATURE, 2, new MobSpawnSettings.SpawnerData(EntityType.SHEEP, 2, 4));
        BiomeDefaultFeatures.commonSpawns(mobs);
        globalOverworldGeneration(generation);
        BiomeDefaultFeatures.addPlainGrass(generation);
        BiomeDefaultFeatures.addDefaultOres(generation);
        BiomeDefaultFeatures.addDefaultSoftDisks(generation);
        if (cherryGrove) {
            BiomeDefaultFeatures.addCherryGroveVegetation(generation);
        } else {
            BiomeDefaultFeatures.addMeadowVegetation(generation);
        }
 
        BiomeDefaultFeatures.addExtraEmeralds(generation);
        BiomeDefaultFeatures.addInfestedStone(generation);
        if (cherryGrove) {
            BiomeSpecialEffects.Builder effects = new BiomeSpecialEffects.Builder()
                .waterColor(6141935)
                .grassColorOverride(11983713)
                .foliageColorOverride(11983713);
            return baseBiome(0.5F, 0.8F)
                .setAttribute(EnvironmentAttributes.WATER_FOG_COLOR, -10635281)
                .setAttribute(EnvironmentAttributes.BACKGROUND_MUSIC, new BackgroundMusic(SoundEvents.MUSIC_BIOME_CHERRY_GROVE))
                .specialEffects(effects.build())
                .mobSpawnSettings(mobs.build())
                .generationSettings(generation.build())
                .build();
        } else {
            return baseBiome(0.5F, 0.8F)
                .setAttribute(EnvironmentAttributes.BACKGROUND_MUSIC, new BackgroundMusic(SoundEvents.MUSIC_BIOME_MEADOW))
                .specialEffects(new BiomeSpecialEffects.Builder().waterColor(937679).build())
                .mobSpawnSettings(mobs.build())
                .generationSettings(generation.build())
                .build();
        }
    }
 
    private static Biome.BiomeBuilder basePeaks(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) {
        BiomeGenerationSettings.Builder generation = new BiomeGenerationSettings.Builder(placedFeatures, carvers);
        MobSpawnSettings.Builder mobs = new MobSpawnSettings.Builder();
        mobs.addSpawn(MobCategory.CREATURE, 5, new MobSpawnSettings.SpawnerData(EntityType.GOAT, 1, 3));
        BiomeDefaultFeatures.commonSpawns(mobs);
        globalOverworldGeneration(generation);
        BiomeDefaultFeatures.addFrozenSprings(generation);
        BiomeDefaultFeatures.addDefaultOres(generation);
        BiomeDefaultFeatures.addDefaultSoftDisks(generation);
        BiomeDefaultFeatures.addExtraEmeralds(generation);
        BiomeDefaultFeatures.addInfestedStone(generation);
        return baseBiome(-0.7F, 0.9F)
            .setAttribute(EnvironmentAttributes.INCREASED_FIRE_BURNOUT, true)
            .mobSpawnSettings(mobs.build())
            .generationSettings(generation.build());
    }
 
    public static Biome frozenPeaks(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) {
        return basePeaks(placedFeatures, carvers)
            .setAttribute(EnvironmentAttributes.BACKGROUND_MUSIC, new BackgroundMusic(SoundEvents.MUSIC_BIOME_FROZEN_PEAKS))
            .build();
    }
 
    public static Biome jaggedPeaks(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) {
        return basePeaks(placedFeatures, carvers)
            .setAttribute(EnvironmentAttributes.BACKGROUND_MUSIC, new BackgroundMusic(SoundEvents.MUSIC_BIOME_JAGGED_PEAKS))
            .build();
    }
 
    public static Biome stonyPeaks(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) {
        BiomeGenerationSettings.Builder generation = new BiomeGenerationSettings.Builder(placedFeatures, carvers);
        MobSpawnSettings.Builder mobs = new MobSpawnSettings.Builder();
        BiomeDefaultFeatures.commonSpawns(mobs);
        globalOverworldGeneration(generation);
        BiomeDefaultFeatures.addDefaultOres(generation);
        BiomeDefaultFeatures.addDefaultSoftDisks(generation);
        BiomeDefaultFeatures.addExtraEmeralds(generation);
        BiomeDefaultFeatures.addInfestedStone(generation);
        return baseBiome(1.0F, 0.3F)
            .setAttribute(EnvironmentAttributes.BACKGROUND_MUSIC, new BackgroundMusic(SoundEvents.MUSIC_BIOME_STONY_PEAKS))
            .mobSpawnSettings(mobs.build())
            .generationSettings(generation.build())
            .build();
    }
 
    public static Biome snowySlopes(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) {
        BiomeGenerationSettings.Builder generation = new BiomeGenerationSettings.Builder(placedFeatures, carvers);
        MobSpawnSettings.Builder mobs = new MobSpawnSettings.Builder();
        mobs.addSpawn(MobCategory.CREATURE, 4, new MobSpawnSettings.SpawnerData(EntityType.RABBIT, 2, 3))
            .addSpawn(MobCategory.CREATURE, 5, new MobSpawnSettings.SpawnerData(EntityType.GOAT, 1, 3));
        BiomeDefaultFeatures.commonSpawns(mobs);
        globalOverworldGeneration(generation);
        BiomeDefaultFeatures.addFrozenSprings(generation);
        BiomeDefaultFeatures.addDefaultOres(generation);
        BiomeDefaultFeatures.addDefaultSoftDisks(generation);
        BiomeDefaultFeatures.addDefaultExtraVegetation(generation, false);
        BiomeDefaultFeatures.addExtraEmeralds(generation);
        BiomeDefaultFeatures.addInfestedStone(generation);
        return baseBiome(-0.3F, 0.9F)
            .setAttribute(EnvironmentAttributes.BACKGROUND_MUSIC, new BackgroundMusic(SoundEvents.MUSIC_BIOME_SNOWY_SLOPES))
            .setAttribute(EnvironmentAttributes.INCREASED_FIRE_BURNOUT, true)
            .mobSpawnSettings(mobs.build())
            .generationSettings(generation.build())
            .build();
    }
 
    public static Biome grove(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) {
        BiomeGenerationSettings.Builder generation = new BiomeGenerationSettings.Builder(placedFeatures, carvers);
        MobSpawnSettings.Builder mobs = new MobSpawnSettings.Builder();
        mobs.addSpawn(MobCategory.CREATURE, 1, new MobSpawnSettings.SpawnerData(EntityType.WOLF, 1, 1))
            .addSpawn(MobCategory.CREATURE, 8, new MobSpawnSettings.SpawnerData(EntityType.RABBIT, 2, 3))
            .addSpawn(MobCategory.CREATURE, 4, new MobSpawnSettings.SpawnerData(EntityType.FOX, 2, 4));
        BiomeDefaultFeatures.commonSpawns(mobs);
        globalOverworldGeneration(generation);
        BiomeDefaultFeatures.addFrozenSprings(generation);
        BiomeDefaultFeatures.addDefaultOres(generation);
        BiomeDefaultFeatures.addDefaultSoftDisks(generation);
        BiomeDefaultFeatures.addGroveTrees(generation);
        BiomeDefaultFeatures.addDefaultExtraVegetation(generation, false);
        BiomeDefaultFeatures.addExtraEmeralds(generation);
        BiomeDefaultFeatures.addInfestedStone(generation);
        return baseBiome(-0.2F, 0.8F)
            .setAttribute(EnvironmentAttributes.BACKGROUND_MUSIC, new BackgroundMusic(SoundEvents.MUSIC_BIOME_GROVE))
            .mobSpawnSettings(mobs.build())
            .generationSettings(generation.build())
            .build();
    }
 
    public static Biome lushCaves(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) {
        MobSpawnSettings.Builder mobs = new MobSpawnSettings.Builder();
        mobs.addSpawn(MobCategory.AXOLOTLS, 10, new MobSpawnSettings.SpawnerData(EntityType.AXOLOTL, 4, 6));
        mobs.addSpawn(MobCategory.WATER_AMBIENT, 25, new MobSpawnSettings.SpawnerData(EntityType.TROPICAL_FISH, 8, 8));
        BiomeDefaultFeatures.commonSpawns(mobs);
        BiomeGenerationSettings.Builder generation = new BiomeGenerationSettings.Builder(placedFeatures, carvers);
        globalOverworldGeneration(generation);
        BiomeDefaultFeatures.addPlainGrass(generation);
        BiomeDefaultFeatures.addDefaultOres(generation);
        BiomeDefaultFeatures.addLushCavesSpecialOres(generation);
        BiomeDefaultFeatures.addDefaultSoftDisks(generation);
        BiomeDefaultFeatures.addLushCavesVegetationFeatures(generation);
        return baseBiome(0.5F, 0.5F)
            .setAttribute(EnvironmentAttributes.BACKGROUND_MUSIC, new BackgroundMusic(SoundEvents.MUSIC_BIOME_LUSH_CAVES))
            .mobSpawnSettings(mobs.build())
            .generationSettings(generation.build())
            .build();
    }
 
    public static Biome dripstoneCaves(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) {
        MobSpawnSettings.Builder mobs = new MobSpawnSettings.Builder();
        BiomeDefaultFeatures.dripstoneCavesSpawns(mobs);
        BiomeGenerationSettings.Builder generation = new BiomeGenerationSettings.Builder(placedFeatures, carvers);
        globalOverworldGeneration(generation);
        BiomeDefaultFeatures.addPlainGrass(generation);
        BiomeDefaultFeatures.addDefaultOres(generation, true);
        BiomeDefaultFeatures.addDefaultSoftDisks(generation);
        BiomeDefaultFeatures.addPlainVegetation(generation);
        BiomeDefaultFeatures.addDefaultMushrooms(generation);
        BiomeDefaultFeatures.addDefaultExtraVegetation(generation, false);
        BiomeDefaultFeatures.addDripstone(generation);
        return baseBiome(0.8F, 0.4F)
            .setAttribute(EnvironmentAttributes.BACKGROUND_MUSIC, new BackgroundMusic(SoundEvents.MUSIC_BIOME_DRIPSTONE_CAVES))
            .mobSpawnSettings(mobs.build())
            .generationSettings(generation.build())
            .build();
    }
 
    public static Biome deepDark(HolderGetter<PlacedFeature> placedFeatures, HolderGetter<ConfiguredWorldCarver<?>> carvers) {
        MobSpawnSettings.Builder noMobs = new MobSpawnSettings.Builder();
        BiomeGenerationSettings.Builder generation = new BiomeGenerationSettings.Builder(placedFeatures, carvers);
        generation.addCarver(Carvers.CAVE);
        generation.addCarver(Carvers.CAVE_EXTRA_UNDERGROUND);
        generation.addCarver(Carvers.CANYON);
        BiomeDefaultFeatures.addDefaultCrystalFormations(generation);
        BiomeDefaultFeatures.addDefaultMonsterRoom(generation);
        BiomeDefaultFeatures.addDefaultUndergroundVariety(generation);
        BiomeDefaultFeatures.addSurfaceFreezing(generation);
        BiomeDefaultFeatures.addPlainGrass(generation);
        BiomeDefaultFeatures.addDefaultOres(generation);
        BiomeDefaultFeatures.addDefaultSoftDisks(generation);
        BiomeDefaultFeatures.addPlainVegetation(generation);
        BiomeDefaultFeatures.addDefaultMushrooms(generation);
        BiomeDefaultFeatures.addDefaultExtraVegetation(generation, false);
        BiomeDefaultFeatures.addSculk(generation);
        return baseBiome(0.8F, 0.4F)
            .setAttribute(EnvironmentAttributes.BACKGROUND_MUSIC, new BackgroundMusic(SoundEvents.MUSIC_BIOME_DEEP_DARK))
            .mobSpawnSettings(noMobs.build())
            .generationSettings(generation.build())
            .build();
    }
}

引用的其他类

  • HolderGetter

    • 引用位置: 参数
  • BiomeDefaultFeatures

    • 引用位置: 方法调用
    • 关联成员: BiomeDefaultFeatures.addBadlandExtraVegetation(), BiomeDefaultFeatures.addBadlandGrass(), BiomeDefaultFeatures.addBadlandsTrees(), BiomeDefaultFeatures.addBambooVegetation(), BiomeDefaultFeatures.addBirchForestFlowers(), BiomeDefaultFeatures.addBirchTrees(), BiomeDefaultFeatures.addBlueIce(), BiomeDefaultFeatures.addBushes(), BiomeDefaultFeatures.addCherryGroveVegetation(), BiomeDefaultFeatures.addColdOceanExtraVegetation(), BiomeDefaultFeatures.addCommonBerryBushes(), BiomeDefaultFeatures.addDefaultCarversAndLakes(), BiomeDefaultFeatures.addDefaultCrystalFormations(), BiomeDefaultFeatures.addDefaultExtraVegetation(), BiomeDefaultFeatures.addDefaultFlowers(), BiomeDefaultFeatures.addDefaultGrass(), BiomeDefaultFeatures.addDefaultMonsterRoom(), BiomeDefaultFeatures.addDefaultMushrooms(), BiomeDefaultFeatures.addDefaultOres(), BiomeDefaultFeatures.addDefaultSoftDisks(), BiomeDefaultFeatures.addDefaultSprings(), BiomeDefaultFeatures.addDefaultUndergroundVariety(), BiomeDefaultFeatures.addDesertExtraDecoration(), BiomeDefaultFeatures.addDesertExtraVegetation(), BiomeDefaultFeatures.addDesertVegetation(), BiomeDefaultFeatures.addDripstone(), BiomeDefaultFeatures.addExtraEmeralds(), BiomeDefaultFeatures.addExtraGold(), BiomeDefaultFeatures.addFerns(), BiomeDefaultFeatures.addForestFlowers(), BiomeDefaultFeatures.addForestGrass(), BiomeDefaultFeatures.addFossilDecoration(), BiomeDefaultFeatures.addFrozenSprings(), BiomeDefaultFeatures.addGiantTaigaVegetation(), BiomeDefaultFeatures.addGroveTrees(), BiomeDefaultFeatures.addIcebergs(), BiomeDefaultFeatures.addInfestedStone(), BiomeDefaultFeatures.addJungleGrass(), BiomeDefaultFeatures.addJungleMelons(), BiomeDefaultFeatures.addJungleTrees(), BiomeDefaultFeatures.addJungleVines(), BiomeDefaultFeatures.addLeafLitterPatch(), BiomeDefaultFeatures.addLightBambooVegetation(), BiomeDefaultFeatures.addLukeWarmKelp(), BiomeDefaultFeatures.addLushCavesSpecialOres(), BiomeDefaultFeatures.addLushCavesVegetationFeatures(), BiomeDefaultFeatures.addMangroveSwampDisks(), BiomeDefaultFeatures.addMangroveSwampExtraVegetation(), BiomeDefaultFeatures.addMangroveSwampVegetation(), BiomeDefaultFeatures.addMeadowVegetation(), BiomeDefaultFeatures.addMossyStoneBlock(), BiomeDefaultFeatures.addMountainForestTrees(), BiomeDefaultFeatures.addMountainTrees(), BiomeDefaultFeatures.addMushroomFieldVegetation(), BiomeDefaultFeatures.addNearWaterVegetation(), BiomeDefaultFeatures.addOtherBirchTrees(), BiomeDefaultFeatures.addPlainGrass(), BiomeDefaultFeatures.addPlainVegetation(), BiomeDefaultFeatures.addRareBerryBushes(), BiomeDefaultFeatures.addSavannaExtraGrass(), BiomeDefaultFeatures.addSavannaGrass(), BiomeDefaultFeatures.addSavannaTrees(), BiomeDefaultFeatures.addSculk(), BiomeDefaultFeatures.addShatteredSavannaGrass(), BiomeDefaultFeatures.addShatteredSavannaTrees(), BiomeDefaultFeatures.addSnowyTrees(), BiomeDefaultFeatures.addSparseJungleMelons(), BiomeDefaultFeatures.addSparseJungleTrees(), BiomeDefaultFeatures.addSurfaceFreezing(), BiomeDefaultFeatures.addSwampClayDisk(), BiomeDefaultFeatures.addSwampExtraVegetation(), BiomeDefaultFeatures.addSwampVegetation(), BiomeDefaultFeatures.addTaigaGrass(), BiomeDefaultFeatures.addTaigaTrees(), BiomeDefaultFeatures.addTallBirchTrees(), BiomeDefaultFeatures.addWarmFlowers(), BiomeDefaultFeatures.addWaterTrees(), BiomeDefaultFeatures.baseJungleSpawns(), BiomeDefaultFeatures.caveSpawns(), BiomeDefaultFeatures.commonSpawnWithZombieHorse(), BiomeDefaultFeatures.commonSpawns(), BiomeDefaultFeatures.desertSpawns(), BiomeDefaultFeatures.dripstoneCavesSpawns(), BiomeDefaultFeatures.farmAnimals(), BiomeDefaultFeatures.monsters(), BiomeDefaultFeatures.mooshroomSpawns(), BiomeDefaultFeatures.oceanSpawns(), BiomeDefaultFeatures.plainsSpawns(), BiomeDefaultFeatures.snowySpawns(), BiomeDefaultFeatures.swampSpawns(), BiomeDefaultFeatures.warmOceanSpawns()
  • ARGB

    • 引用位置: 方法调用
    • 关联成员: ARGB.opaque()
  • Mth

    • 引用位置: 方法调用
    • 关联成员: Mth.clamp(), Mth.hsvToRgb()
  • BackgroundMusic

    • 引用位置: 构造调用
    • 关联成员: BackgroundMusic()
  • EnvironmentAttributeMap

    • 引用位置: 方法调用
    • 关联成员: EnvironmentAttributeMap.builder()
  • Biome

    • 引用位置: 方法调用/构造调用/返回值
    • 关联成员: Biome.BiomeBuilder(), BiomeBuilder()
  • BiomeGenerationSettings

    • 引用位置: 参数/方法调用/构造调用/返回值
    • 关联成员: BiomeGenerationSettings.Builder(), Builder()
  • BiomeSpecialEffects

    • 引用位置: 方法调用/构造调用
    • 关联成员: BiomeSpecialEffects.Builder(), Builder()
  • MobSpawnSettings

    • 引用位置: 方法调用/构造调用
    • 关联成员: Builder(), MobSpawnSettings.Builder(), MobSpawnSettings.SpawnerData(), SpawnerData()
  • ConfiguredWorldCarver

    • 引用位置: 参数
  • PlacedFeature

    • 引用位置: 参数