package net.minecraft.data.worldgen.biome;

import net.minecraft.core.HolderGetter;
import net.minecraft.core.registries.Registries;
import net.minecraft.data.worldgen.BootstrapContext;
import net.minecraft.world.level.biome.Biome;
import net.minecraft.world.level.biome.Biomes;
import net.minecraft.world.level.levelgen.carver.ConfiguredWorldCarver;
import net.minecraft.world.level.levelgen.placement.PlacedFeature;

public abstract class BiomeData {
    public static void bootstrap(BootstrapContext<Biome> context) {
        HolderGetter<PlacedFeature> holderGetter = context.lookup(Registries.PLACED_FEATURE);
        HolderGetter<ConfiguredWorldCarver<?>> holderGetter1 = context.lookup(Registries.CONFIGURED_CARVER);
        context.register(Biomes.THE_VOID, OverworldBiomes.theVoid(holderGetter, holderGetter1));
        context.register(Biomes.PLAINS, OverworldBiomes.plains(holderGetter, holderGetter1, false, false, false));
        context.register(Biomes.SUNFLOWER_PLAINS, OverworldBiomes.plains(holderGetter, holderGetter1, true, false, false));
        context.register(Biomes.SNOWY_PLAINS, OverworldBiomes.plains(holderGetter, holderGetter1, false, true, false));
        context.register(Biomes.ICE_SPIKES, OverworldBiomes.plains(holderGetter, holderGetter1, false, true, true));
        context.register(Biomes.DESERT, OverworldBiomes.desert(holderGetter, holderGetter1));
        context.register(Biomes.SWAMP, OverworldBiomes.swamp(holderGetter, holderGetter1));
        context.register(Biomes.MANGROVE_SWAMP, OverworldBiomes.mangroveSwamp(holderGetter, holderGetter1));
        context.register(Biomes.FOREST, OverworldBiomes.forest(holderGetter, holderGetter1, false, false, false));
        context.register(Biomes.FLOWER_FOREST, OverworldBiomes.forest(holderGetter, holderGetter1, false, false, true));
        context.register(Biomes.BIRCH_FOREST, OverworldBiomes.forest(holderGetter, holderGetter1, true, false, false));
        context.register(Biomes.DARK_FOREST, OverworldBiomes.darkForest(holderGetter, holderGetter1, false));
        context.register(Biomes.PALE_GARDEN, OverworldBiomes.darkForest(holderGetter, holderGetter1, true));
        context.register(Biomes.OLD_GROWTH_BIRCH_FOREST, OverworldBiomes.forest(holderGetter, holderGetter1, true, true, false));
        context.register(Biomes.OLD_GROWTH_PINE_TAIGA, OverworldBiomes.oldGrowthTaiga(holderGetter, holderGetter1, false));
        context.register(Biomes.OLD_GROWTH_SPRUCE_TAIGA, OverworldBiomes.oldGrowthTaiga(holderGetter, holderGetter1, true));
        context.register(Biomes.TAIGA, OverworldBiomes.taiga(holderGetter, holderGetter1, false));
        context.register(Biomes.SNOWY_TAIGA, OverworldBiomes.taiga(holderGetter, holderGetter1, true));
        context.register(Biomes.SAVANNA, OverworldBiomes.savanna(holderGetter, holderGetter1, false, false));
        context.register(Biomes.SAVANNA_PLATEAU, OverworldBiomes.savanna(holderGetter, holderGetter1, false, true));
        context.register(Biomes.WINDSWEPT_HILLS, OverworldBiomes.windsweptHills(holderGetter, holderGetter1, false));
        context.register(Biomes.WINDSWEPT_GRAVELLY_HILLS, OverworldBiomes.windsweptHills(holderGetter, holderGetter1, false));
        context.register(Biomes.WINDSWEPT_FOREST, OverworldBiomes.windsweptHills(holderGetter, holderGetter1, true));
        context.register(Biomes.WINDSWEPT_SAVANNA, OverworldBiomes.savanna(holderGetter, holderGetter1, true, false));
        context.register(Biomes.JUNGLE, OverworldBiomes.jungle(holderGetter, holderGetter1));
        context.register(Biomes.SPARSE_JUNGLE, OverworldBiomes.sparseJungle(holderGetter, holderGetter1));
        context.register(Biomes.BAMBOO_JUNGLE, OverworldBiomes.bambooJungle(holderGetter, holderGetter1));
        context.register(Biomes.BADLANDS, OverworldBiomes.badlands(holderGetter, holderGetter1, false));
        context.register(Biomes.ERODED_BADLANDS, OverworldBiomes.badlands(holderGetter, holderGetter1, false));
        context.register(Biomes.WOODED_BADLANDS, OverworldBiomes.badlands(holderGetter, holderGetter1, true));
        context.register(Biomes.MEADOW, OverworldBiomes.meadowOrCherryGrove(holderGetter, holderGetter1, false));
        context.register(Biomes.CHERRY_GROVE, OverworldBiomes.meadowOrCherryGrove(holderGetter, holderGetter1, true));
        context.register(Biomes.GROVE, OverworldBiomes.grove(holderGetter, holderGetter1));
        context.register(Biomes.SNOWY_SLOPES, OverworldBiomes.snowySlopes(holderGetter, holderGetter1));
        context.register(Biomes.FROZEN_PEAKS, OverworldBiomes.frozenPeaks(holderGetter, holderGetter1));
        context.register(Biomes.JAGGED_PEAKS, OverworldBiomes.jaggedPeaks(holderGetter, holderGetter1));
        context.register(Biomes.STONY_PEAKS, OverworldBiomes.stonyPeaks(holderGetter, holderGetter1));
        context.register(Biomes.RIVER, OverworldBiomes.river(holderGetter, holderGetter1, false));
        context.register(Biomes.FROZEN_RIVER, OverworldBiomes.river(holderGetter, holderGetter1, true));
        context.register(Biomes.BEACH, OverworldBiomes.beach(holderGetter, holderGetter1, false, false));
        context.register(Biomes.SNOWY_BEACH, OverworldBiomes.beach(holderGetter, holderGetter1, true, false));
        context.register(Biomes.STONY_SHORE, OverworldBiomes.beach(holderGetter, holderGetter1, false, true));
        context.register(Biomes.WARM_OCEAN, OverworldBiomes.warmOcean(holderGetter, holderGetter1));
        context.register(Biomes.LUKEWARM_OCEAN, OverworldBiomes.lukeWarmOcean(holderGetter, holderGetter1, false));
        context.register(Biomes.DEEP_LUKEWARM_OCEAN, OverworldBiomes.lukeWarmOcean(holderGetter, holderGetter1, true));
        context.register(Biomes.OCEAN, OverworldBiomes.ocean(holderGetter, holderGetter1, false));
        context.register(Biomes.DEEP_OCEAN, OverworldBiomes.ocean(holderGetter, holderGetter1, true));
        context.register(Biomes.COLD_OCEAN, OverworldBiomes.coldOcean(holderGetter, holderGetter1, false));
        context.register(Biomes.DEEP_COLD_OCEAN, OverworldBiomes.coldOcean(holderGetter, holderGetter1, true));
        context.register(Biomes.FROZEN_OCEAN, OverworldBiomes.frozenOcean(holderGetter, holderGetter1, false));
        context.register(Biomes.DEEP_FROZEN_OCEAN, OverworldBiomes.frozenOcean(holderGetter, holderGetter1, true));
        context.register(Biomes.MUSHROOM_FIELDS, OverworldBiomes.mushroomFields(holderGetter, holderGetter1));
        context.register(Biomes.DRIPSTONE_CAVES, OverworldBiomes.dripstoneCaves(holderGetter, holderGetter1));
        context.register(Biomes.LUSH_CAVES, OverworldBiomes.lushCaves(holderGetter, holderGetter1));
        context.register(Biomes.DEEP_DARK, OverworldBiomes.deepDark(holderGetter, holderGetter1));
        context.register(Biomes.NETHER_WASTES, NetherBiomes.netherWastes(holderGetter, holderGetter1));
        context.register(Biomes.WARPED_FOREST, NetherBiomes.warpedForest(holderGetter, holderGetter1));
        context.register(Biomes.CRIMSON_FOREST, NetherBiomes.crimsonForest(holderGetter, holderGetter1));
        context.register(Biomes.SOUL_SAND_VALLEY, NetherBiomes.soulSandValley(holderGetter, holderGetter1));
        context.register(Biomes.BASALT_DELTAS, NetherBiomes.basaltDeltas(holderGetter, holderGetter1));
        context.register(Biomes.THE_END, EndBiomes.theEnd(holderGetter, holderGetter1));
        context.register(Biomes.END_HIGHLANDS, EndBiomes.endHighlands(holderGetter, holderGetter1));
        context.register(Biomes.END_MIDLANDS, EndBiomes.endMidlands(holderGetter, holderGetter1));
        context.register(Biomes.SMALL_END_ISLANDS, EndBiomes.smallEndIslands(holderGetter, holderGetter1));
        context.register(Biomes.END_BARRENS, EndBiomes.endBarrens(holderGetter, holderGetter1));
    }
}
