package net.minecraft.world.level.biome;

import java.util.Collection;
import java.util.Collections;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.core.Registry;

public abstract class Biomes {
    public static final Biome OCEAN;
    public static final Biome DEFAULT;
    public static final Biome PLAINS;
    public static final Biome DESERT;
    public static final Biome MOUNTAINS;
    public static final Biome FOREST;
    public static final Biome TAIGA;
    public static final Biome SWAMP;
    public static final Biome RIVER;
    public static final Biome NETHER;
    public static final Biome THE_END;
    public static final Biome FROZEN_OCEAN;
    public static final Biome FROZEN_RIVER;
    public static final Biome SNOWY_TUNDRA;
    public static final Biome SNOWY_MOUNTAINS;
    public static final Biome MUSHROOM_FIELDS;
    public static final Biome MUSHROOM_FIELD_SHORE;
    public static final Biome BEACH;
    public static final Biome DESERT_HILLS;
    public static final Biome WOODED_HILLS;
    public static final Biome TAIGA_HILLS;
    public static final Biome MOUNTAIN_EDGE;
    public static final Biome JUNGLE;
    public static final Biome JUNGLE_HILLS;
    public static final Biome JUNGLE_EDGE;
    public static final Biome DEEP_OCEAN;
    public static final Biome STONE_SHORE;
    public static final Biome SNOWY_BEACH;
    public static final Biome BIRCH_FOREST;
    public static final Biome BIRCH_FOREST_HILLS;
    public static final Biome DARK_FOREST;
    public static final Biome SNOWY_TAIGA;
    public static final Biome SNOWY_TAIGA_HILLS;
    public static final Biome GIANT_TREE_TAIGA;
    public static final Biome GIANT_TREE_TAIGA_HILLS;
    public static final Biome WOODED_MOUNTAINS;
    public static final Biome SAVANNA;
    public static final Biome SAVANNA_PLATEAU;
    public static final Biome BADLANDS;
    public static final Biome WOODED_BADLANDS_PLATEAU;
    public static final Biome BADLANDS_PLATEAU;
    public static final Biome SMALL_END_ISLANDS;
    public static final Biome END_MIDLANDS;
    public static final Biome END_HIGHLANDS;
    public static final Biome END_BARRENS;
    public static final Biome WARM_OCEAN;
    public static final Biome LUKEWARM_OCEAN;
    public static final Biome COLD_OCEAN;
    public static final Biome DEEP_WARM_OCEAN;
    public static final Biome DEEP_LUKEWARM_OCEAN;
    public static final Biome DEEP_COLD_OCEAN;
    public static final Biome DEEP_FROZEN_OCEAN;
    public static final Biome THE_VOID;
    public static final Biome SUNFLOWER_PLAINS;
    public static final Biome DESERT_LAKES;
    public static final Biome GRAVELLY_MOUNTAINS;
    public static final Biome FLOWER_FOREST;
    public static final Biome TAIGA_MOUNTAINS;
    public static final Biome SWAMP_HILLS;
    public static final Biome ICE_SPIKES;
    public static final Biome MODIFIED_JUNGLE;
    public static final Biome MODIFIED_JUNGLE_EDGE;
    public static final Biome TALL_BIRCH_FOREST;
    public static final Biome TALL_BIRCH_HILLS;
    public static final Biome DARK_FOREST_HILLS;
    public static final Biome SNOWY_TAIGA_MOUNTAINS;
    public static final Biome GIANT_SPRUCE_TAIGA;
    public static final Biome GIANT_SPRUCE_TAIGA_HILLS;
    public static final Biome MODIFIED_GRAVELLY_MOUNTAINS;
    public static final Biome SHATTERED_SAVANNA;
    public static final Biome SHATTERED_SAVANNA_PLATEAU;
    public static final Biome ERODED_BADLANDS;
    public static final Biome MODIFIED_WOODED_BADLANDS_PLATEAU;
    public static final Biome MODIFIED_BADLANDS_PLATEAU;
    public static final Biome BAMBOO_JUNGLE;
    public static final Biome BAMBOO_JUNGLE_HILLS;
    
    private static Biome register(final int integer, final String string, final Biome bkt) {
        Registry.<Biome>registerMapping(Registry.BIOME, integer, string, bkt);
        if (bkt.isMutated()) {
            Biome.MUTATED_BIOMES.addMapping(bkt, Registry.BIOME.getId(Registry.BIOME.get(new ResourceLocation(bkt.parent))));
        }
        return bkt;
    }
    
    static {
        OCEAN = register(0, "ocean", new OceanBiome());
        DEFAULT = Biomes.OCEAN;
        PLAINS = register(1, "plains", new PlainsBiome());
        DESERT = register(2, "desert", new DesertBiome());
        MOUNTAINS = register(3, "mountains", new MountainBiome());
        FOREST = register(4, "forest", new ForestBiome());
        TAIGA = register(5, "taiga", new TaigaBiome());
        SWAMP = register(6, "swamp", new SwampBiome());
        RIVER = register(7, "river", new RiverBiome());
        NETHER = register(8, "nether", new NetherBiome());
        THE_END = register(9, "the_end", new TheEndBiome());
        FROZEN_OCEAN = register(10, "frozen_ocean", new FrozenOceanBiome());
        FROZEN_RIVER = register(11, "frozen_river", new FrozenRiverBiome());
        SNOWY_TUNDRA = register(12, "snowy_tundra", new SnowyTundraBiome());
        SNOWY_MOUNTAINS = register(13, "snowy_mountains", new SnowyMountainsBiome());
        MUSHROOM_FIELDS = register(14, "mushroom_fields", new MushroomFieldsBiome());
        MUSHROOM_FIELD_SHORE = register(15, "mushroom_field_shore", new MushroomFieldsShoreBiome());
        BEACH = register(16, "beach", new BeachBiome());
        DESERT_HILLS = register(17, "desert_hills", new DesertHillsBiome());
        WOODED_HILLS = register(18, "wooded_hills", new WoodedHillsBiome());
        TAIGA_HILLS = register(19, "taiga_hills", new TaigaHillsBiome());
        MOUNTAIN_EDGE = register(20, "mountain_edge", new MountainEdgeBiome());
        JUNGLE = register(21, "jungle", new JungleBiome());
        JUNGLE_HILLS = register(22, "jungle_hills", new JungleHillsBiome());
        JUNGLE_EDGE = register(23, "jungle_edge", new JungleEdgeBiome());
        DEEP_OCEAN = register(24, "deep_ocean", new DeepOceanBiome());
        STONE_SHORE = register(25, "stone_shore", new StoneShoreBiome());
        SNOWY_BEACH = register(26, "snowy_beach", new SnowyBeachBiome());
        BIRCH_FOREST = register(27, "birch_forest", new BirchForestBiome());
        BIRCH_FOREST_HILLS = register(28, "birch_forest_hills", new BirchForestHillsBiome());
        DARK_FOREST = register(29, "dark_forest", new DarkForestBiome());
        SNOWY_TAIGA = register(30, "snowy_taiga", new SnowyTaigaBiome());
        SNOWY_TAIGA_HILLS = register(31, "snowy_taiga_hills", new SnowyTaigaHillsBiome());
        GIANT_TREE_TAIGA = register(32, "giant_tree_taiga", new GiantTreeTaigaBiome());
        GIANT_TREE_TAIGA_HILLS = register(33, "giant_tree_taiga_hills", new GiantTreeTaigaHillsBiome());
        WOODED_MOUNTAINS = register(34, "wooded_mountains", new WoodedMountainBiome());
        SAVANNA = register(35, "savanna", new SavannaBiome());
        SAVANNA_PLATEAU = register(36, "savanna_plateau", new SavannaPlateauBiome());
        BADLANDS = register(37, "badlands", new BadlandsBiome());
        WOODED_BADLANDS_PLATEAU = register(38, "wooded_badlands_plateau", new WoodedBadlandsBiome());
        BADLANDS_PLATEAU = register(39, "badlands_plateau", new BadlandsPlateauBiome());
        SMALL_END_ISLANDS = register(40, "small_end_islands", new SmallEndIslandsBiome());
        END_MIDLANDS = register(41, "end_midlands", new EndMidlandsBiome());
        END_HIGHLANDS = register(42, "end_highlands", new EndHighlandsBiome());
        END_BARRENS = register(43, "end_barrens", new EndBarrensBiome());
        WARM_OCEAN = register(44, "warm_ocean", new WarmOceanBiome());
        LUKEWARM_OCEAN = register(45, "lukewarm_ocean", new LukeWarmOceanBiome());
        COLD_OCEAN = register(46, "cold_ocean", new ColdOceanBiome());
        DEEP_WARM_OCEAN = register(47, "deep_warm_ocean", new DeepWarmOceanBiome());
        DEEP_LUKEWARM_OCEAN = register(48, "deep_lukewarm_ocean", new DeepLukeWarmOceanBiome());
        DEEP_COLD_OCEAN = register(49, "deep_cold_ocean", new DeepColdOceanBiome());
        DEEP_FROZEN_OCEAN = register(50, "deep_frozen_ocean", new DeepFrozenOceanBiome());
        THE_VOID = register(127, "the_void", new TheVoidBiome());
        SUNFLOWER_PLAINS = register(129, "sunflower_plains", new SunflowerPlainsBiome());
        DESERT_LAKES = register(130, "desert_lakes", new DesertLakesBiome());
        GRAVELLY_MOUNTAINS = register(131, "gravelly_mountains", new GravellyMountainsBiome());
        FLOWER_FOREST = register(132, "flower_forest", new ForestFlowerBiome());
        TAIGA_MOUNTAINS = register(133, "taiga_mountains", new TaigaMountainsBiome());
        SWAMP_HILLS = register(134, "swamp_hills", new SwampHillsBiome());
        ICE_SPIKES = register(140, "ice_spikes", new IceSpikesBiome());
        MODIFIED_JUNGLE = register(149, "modified_jungle", new ModifiedJungleBiome());
        MODIFIED_JUNGLE_EDGE = register(151, "modified_jungle_edge", new ModifiedJungleEdgeBiome());
        TALL_BIRCH_FOREST = register(155, "tall_birch_forest", new TallBirchForestBiome());
        TALL_BIRCH_HILLS = register(156, "tall_birch_hills", new TallBirchHillsBiome());
        DARK_FOREST_HILLS = register(157, "dark_forest_hills", new DarkForestHillsBiome());
        SNOWY_TAIGA_MOUNTAINS = register(158, "snowy_taiga_mountains", new SnowyTaigaMountainsBiome());
        GIANT_SPRUCE_TAIGA = register(160, "giant_spruce_taiga", new GiantSpruceTaigaBiome());
        GIANT_SPRUCE_TAIGA_HILLS = register(161, "giant_spruce_taiga_hills", new GiantSpruceTaigaHillsMutatedBiome());
        MODIFIED_GRAVELLY_MOUNTAINS = register(162, "modified_gravelly_mountains", new ModifiedGravellyMountainsBiome());
        SHATTERED_SAVANNA = register(163, "shattered_savanna", new ShatteredSavannaBiome());
        SHATTERED_SAVANNA_PLATEAU = register(164, "shattered_savanna_plateau", new ShatteredSavannaPlateauBiome());
        ERODED_BADLANDS = register(165, "eroded_badlands", new ErodedBadlandsBiome());
        MODIFIED_WOODED_BADLANDS_PLATEAU = register(166, "modified_wooded_badlands_plateau", new ModifiedWoodedBadlandsPlateauBiome());
        MODIFIED_BADLANDS_PLATEAU = register(167, "modified_badlands_plateau", new ModifiedBadlandsPlateauBiome());
        BAMBOO_JUNGLE = register(168, "bamboo_jungle", new BambooJungleBiome());
        BAMBOO_JUNGLE_HILLS = register(169, "bamboo_jungle_hills", new BambooJungleHillsBiome());
        Collections.<Biome>addAll(Biome.EXPLORABLE_BIOMES, new Biome[] { Biomes.OCEAN, Biomes.PLAINS, Biomes.DESERT, Biomes.MOUNTAINS, Biomes.FOREST, Biomes.TAIGA, Biomes.SWAMP, Biomes.RIVER, Biomes.FROZEN_RIVER, Biomes.SNOWY_TUNDRA, Biomes.SNOWY_MOUNTAINS, Biomes.MUSHROOM_FIELDS, Biomes.MUSHROOM_FIELD_SHORE, Biomes.BEACH, Biomes.DESERT_HILLS, Biomes.WOODED_HILLS, Biomes.TAIGA_HILLS, Biomes.JUNGLE, Biomes.JUNGLE_HILLS, Biomes.JUNGLE_EDGE, Biomes.DEEP_OCEAN, Biomes.STONE_SHORE, Biomes.SNOWY_BEACH, Biomes.BIRCH_FOREST, Biomes.BIRCH_FOREST_HILLS, Biomes.DARK_FOREST, Biomes.SNOWY_TAIGA, Biomes.SNOWY_TAIGA_HILLS, Biomes.GIANT_TREE_TAIGA, Biomes.GIANT_TREE_TAIGA_HILLS, Biomes.WOODED_MOUNTAINS, Biomes.SAVANNA, Biomes.SAVANNA_PLATEAU, Biomes.BADLANDS, Biomes.WOODED_BADLANDS_PLATEAU, Biomes.BADLANDS_PLATEAU });
    }
}
