From d4c87082292f044d6398295a6a8ffa63e51ca1d9 Mon Sep 17 00:00:00 2001 From: Flemmli97 <34157027+Flemmli97@users.noreply.github.com> Date: Sun, 5 Jun 2022 16:35:06 +0200 Subject: [PATCH] 1.18.x Port BiomeDictionary over to biome tags (#8564) --- .../forge/tags/worldgen/biome/is_beach.json | 8 ++ .../forge/tags/worldgen/biome/is_cold.json | 25 ++++ .../tags/worldgen/biome/is_cold/end.json | 10 ++ .../worldgen/biome/is_cold/overworld.json | 20 ++++ .../tags/worldgen/biome/is_coniferous.json | 9 ++ .../forge/tags/worldgen/biome/is_dense.json | 9 ++ .../worldgen/biome/is_dense/overworld.json | 9 ++ .../forge/tags/worldgen/biome/is_dry.json | 20 ++++ .../forge/tags/worldgen/biome/is_dry/end.json | 10 ++ .../tags/worldgen/biome/is_dry/nether.json | 10 ++ .../tags/worldgen/biome/is_dry/overworld.json | 10 ++ .../forge/tags/worldgen/biome/is_end.json | 10 ++ .../forge/tags/worldgen/biome/is_hot.json | 20 ++++ .../tags/worldgen/biome/is_hot/nether.json | 10 ++ .../tags/worldgen/biome/is_hot/overworld.json | 15 +++ .../forge/tags/worldgen/biome/is_lush.json | 6 + .../tags/worldgen/biome/is_mushroom.json | 6 + .../tags/worldgen/biome/is_overworld.json | 55 +++++++++ .../forge/tags/worldgen/biome/is_peak.json | 8 ++ .../forge/tags/worldgen/biome/is_plains.json | 9 ++ .../forge/tags/worldgen/biome/is_plateau.json | 8 ++ .../forge/tags/worldgen/biome/is_rare.json | 17 +++ .../forge/tags/worldgen/biome/is_sandy.json | 8 ++ .../forge/tags/worldgen/biome/is_savanna.json | 8 ++ .../forge/tags/worldgen/biome/is_slope.json | 10 ++ .../forge/tags/worldgen/biome/is_snowy.json | 15 +++ .../forge/tags/worldgen/biome/is_sparse.json | 16 +++ .../worldgen/biome/is_sparse/overworld.json | 16 +++ .../forge/tags/worldgen/biome/is_spooky.json | 6 + .../forge/tags/worldgen/biome/is_swamp.json | 6 + .../tags/worldgen/biome/is_underground.json | 7 ++ .../forge/tags/worldgen/biome/is_void.json | 6 + .../tags/worldgen/biome/is_wasteland.json | 6 + .../forge/tags/worldgen/biome/is_water.json | 7 ++ .../forge/tags/worldgen/biome/is_wet.json | 11 ++ .../tags/worldgen/biome/is_wet/overworld.json | 9 ++ .../tags/worldgen/biome/is_mountain.json | 7 ++ .../common/BiomeDictionary.java | 6 + .../net/minecraftforge/common/ForgeMod.java | 2 + .../java/net/minecraftforge/common/Tags.java | 72 ++++++++++++ .../common/data/ForgeBiomeTagsProvider.java | 107 ++++++++++++++++++ 41 files changed, 629 insertions(+) create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_beach.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_cold.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_cold/end.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_cold/overworld.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_coniferous.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_dense.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_dense/overworld.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_dry.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_dry/end.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_dry/nether.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_dry/overworld.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_end.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_hot.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_hot/nether.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_hot/overworld.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_lush.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_mushroom.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_overworld.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_peak.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_plains.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_plateau.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_rare.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_sandy.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_savanna.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_slope.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_snowy.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_sparse.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_sparse/overworld.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_spooky.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_swamp.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_underground.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_void.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_wasteland.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_water.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_wet.json create mode 100644 src/generated/resources/data/forge/tags/worldgen/biome/is_wet/overworld.json create mode 100644 src/generated/resources/data/minecraft/tags/worldgen/biome/is_mountain.json create mode 100644 src/main/java/net/minecraftforge/common/data/ForgeBiomeTagsProvider.java diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_beach.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_beach.json new file mode 100644 index 0000000000..6f849204fb --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_beach.json @@ -0,0 +1,8 @@ +{ + "replace": false, + "values": [ + "minecraft:beach", + "minecraft:stony_shore", + "minecraft:snowy_beach" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_cold.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_cold.json new file mode 100644 index 0000000000..4ad2ab0f87 --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_cold.json @@ -0,0 +1,25 @@ +{ + "replace": false, + "values": [ + "minecraft:taiga", + "minecraft:the_end", + "minecraft:frozen_ocean", + "minecraft:frozen_river", + "minecraft:snowy_plains", + "minecraft:snowy_beach", + "minecraft:snowy_taiga", + "minecraft:old_growth_pine_taiga", + "minecraft:grove", + "minecraft:snowy_slopes", + "minecraft:jagged_peaks", + "minecraft:frozen_peaks", + "minecraft:small_end_islands", + "minecraft:end_midlands", + "minecraft:end_highlands", + "minecraft:end_barrens", + "minecraft:cold_ocean", + "minecraft:deep_cold_ocean", + "minecraft:deep_frozen_ocean", + "minecraft:ice_spikes" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_cold/end.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_cold/end.json new file mode 100644 index 0000000000..3c1edbb82b --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_cold/end.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "minecraft:the_end", + "minecraft:small_end_islands", + "minecraft:end_midlands", + "minecraft:end_highlands", + "minecraft:end_barrens" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_cold/overworld.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_cold/overworld.json new file mode 100644 index 0000000000..5a7e50d40a --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_cold/overworld.json @@ -0,0 +1,20 @@ +{ + "replace": false, + "values": [ + "minecraft:taiga", + "minecraft:frozen_ocean", + "minecraft:frozen_river", + "minecraft:snowy_plains", + "minecraft:snowy_beach", + "minecraft:snowy_taiga", + "minecraft:old_growth_pine_taiga", + "minecraft:grove", + "minecraft:snowy_slopes", + "minecraft:jagged_peaks", + "minecraft:frozen_peaks", + "minecraft:cold_ocean", + "minecraft:deep_cold_ocean", + "minecraft:deep_frozen_ocean", + "minecraft:ice_spikes" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_coniferous.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_coniferous.json new file mode 100644 index 0000000000..5e148dfb75 --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_coniferous.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "minecraft:taiga", + "minecraft:snowy_taiga", + "minecraft:old_growth_pine_taiga", + "minecraft:grove" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_dense.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_dense.json new file mode 100644 index 0000000000..3cf393899f --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_dense.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "minecraft:jungle", + "minecraft:dark_forest", + "minecraft:old_growth_birch_forest", + "minecraft:old_growth_spruce_taiga" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_dense/overworld.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_dense/overworld.json new file mode 100644 index 0000000000..3cf393899f --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_dense/overworld.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "minecraft:jungle", + "minecraft:dark_forest", + "minecraft:old_growth_birch_forest", + "minecraft:old_growth_spruce_taiga" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_dry.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_dry.json new file mode 100644 index 0000000000..26285b8ffb --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_dry.json @@ -0,0 +1,20 @@ +{ + "replace": false, + "values": [ + "minecraft:desert", + "minecraft:nether_wastes", + "minecraft:the_end", + "minecraft:badlands", + "minecraft:wooded_badlands", + "minecraft:small_end_islands", + "minecraft:end_midlands", + "minecraft:end_highlands", + "minecraft:end_barrens", + "minecraft:windswept_savanna", + "minecraft:eroded_badlands", + "minecraft:soul_sand_valley", + "minecraft:crimson_forest", + "minecraft:warped_forest", + "minecraft:basalt_deltas" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_dry/end.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_dry/end.json new file mode 100644 index 0000000000..3c1edbb82b --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_dry/end.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "minecraft:the_end", + "minecraft:small_end_islands", + "minecraft:end_midlands", + "minecraft:end_highlands", + "minecraft:end_barrens" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_dry/nether.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_dry/nether.json new file mode 100644 index 0000000000..077b7bd87d --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_dry/nether.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "minecraft:nether_wastes", + "minecraft:soul_sand_valley", + "minecraft:crimson_forest", + "minecraft:warped_forest", + "minecraft:basalt_deltas" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_dry/overworld.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_dry/overworld.json new file mode 100644 index 0000000000..c8c758008d --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_dry/overworld.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "minecraft:desert", + "minecraft:badlands", + "minecraft:wooded_badlands", + "minecraft:windswept_savanna", + "minecraft:eroded_badlands" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_end.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_end.json new file mode 100644 index 0000000000..3c1edbb82b --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_end.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "minecraft:the_end", + "minecraft:small_end_islands", + "minecraft:end_midlands", + "minecraft:end_highlands", + "minecraft:end_barrens" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_hot.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_hot.json new file mode 100644 index 0000000000..533acf4b27 --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_hot.json @@ -0,0 +1,20 @@ +{ + "replace": false, + "values": [ + "minecraft:desert", + "minecraft:nether_wastes", + "minecraft:jungle", + "minecraft:sparse_jungle", + "minecraft:savanna", + "minecraft:savanna_plateau", + "minecraft:stony_peaks", + "minecraft:warm_ocean", + "minecraft:windswept_savanna", + "minecraft:eroded_badlands", + "minecraft:bamboo_jungle", + "minecraft:soul_sand_valley", + "minecraft:crimson_forest", + "minecraft:warped_forest", + "minecraft:basalt_deltas" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_hot/nether.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_hot/nether.json new file mode 100644 index 0000000000..077b7bd87d --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_hot/nether.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "minecraft:nether_wastes", + "minecraft:soul_sand_valley", + "minecraft:crimson_forest", + "minecraft:warped_forest", + "minecraft:basalt_deltas" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_hot/overworld.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_hot/overworld.json new file mode 100644 index 0000000000..392d9ab700 --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_hot/overworld.json @@ -0,0 +1,15 @@ +{ + "replace": false, + "values": [ + "minecraft:desert", + "minecraft:jungle", + "minecraft:sparse_jungle", + "minecraft:savanna", + "minecraft:savanna_plateau", + "minecraft:stony_peaks", + "minecraft:warm_ocean", + "minecraft:windswept_savanna", + "minecraft:eroded_badlands", + "minecraft:bamboo_jungle" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_lush.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_lush.json new file mode 100644 index 0000000000..282a13ea8c --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_lush.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:lush_caves" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_mushroom.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_mushroom.json new file mode 100644 index 0000000000..f97ef26445 --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_mushroom.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:mushroom_fields" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_overworld.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_overworld.json new file mode 100644 index 0000000000..636e21e92a --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_overworld.json @@ -0,0 +1,55 @@ +{ + "replace": false, + "values": [ + "minecraft:ocean", + "minecraft:plains", + "minecraft:desert", + "minecraft:windswept_hills", + "minecraft:forest", + "minecraft:taiga", + "minecraft:swamp", + "minecraft:river", + "minecraft:frozen_ocean", + "minecraft:frozen_river", + "minecraft:snowy_plains", + "minecraft:mushroom_fields", + "minecraft:beach", + "minecraft:jungle", + "minecraft:sparse_jungle", + "minecraft:deep_ocean", + "minecraft:stony_shore", + "minecraft:snowy_beach", + "minecraft:birch_forest", + "minecraft:dark_forest", + "minecraft:snowy_taiga", + "minecraft:old_growth_pine_taiga", + "minecraft:windswept_forest", + "minecraft:savanna", + "minecraft:savanna_plateau", + "minecraft:badlands", + "minecraft:wooded_badlands", + "minecraft:meadow", + "minecraft:grove", + "minecraft:snowy_slopes", + "minecraft:jagged_peaks", + "minecraft:frozen_peaks", + "minecraft:stony_peaks", + "minecraft:warm_ocean", + "minecraft:lukewarm_ocean", + "minecraft:cold_ocean", + "minecraft:deep_lukewarm_ocean", + "minecraft:deep_cold_ocean", + "minecraft:deep_frozen_ocean", + "minecraft:sunflower_plains", + "minecraft:windswept_gravelly_hills", + "minecraft:flower_forest", + "minecraft:ice_spikes", + "minecraft:old_growth_birch_forest", + "minecraft:old_growth_spruce_taiga", + "minecraft:windswept_savanna", + "minecraft:eroded_badlands", + "minecraft:bamboo_jungle", + "minecraft:lush_caves", + "minecraft:dripstone_caves" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_peak.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_peak.json new file mode 100644 index 0000000000..34f5c0ed94 --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_peak.json @@ -0,0 +1,8 @@ +{ + "replace": false, + "values": [ + "minecraft:jagged_peaks", + "minecraft:frozen_peaks", + "minecraft:stony_peaks" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_plains.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_plains.json new file mode 100644 index 0000000000..c5b9f88cb3 --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_plains.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "minecraft:plains", + "minecraft:snowy_plains", + "minecraft:meadow", + "minecraft:sunflower_plains" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_plateau.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_plateau.json new file mode 100644 index 0000000000..47c59bdba2 --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_plateau.json @@ -0,0 +1,8 @@ +{ + "replace": false, + "values": [ + "minecraft:savanna_plateau", + "minecraft:wooded_badlands", + "minecraft:meadow" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_rare.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_rare.json new file mode 100644 index 0000000000..4f61719283 --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_rare.json @@ -0,0 +1,17 @@ +{ + "replace": false, + "values": [ + "minecraft:mushroom_fields", + "minecraft:sparse_jungle", + "minecraft:savanna_plateau", + "minecraft:sunflower_plains", + "minecraft:windswept_gravelly_hills", + "minecraft:flower_forest", + "minecraft:ice_spikes", + "minecraft:old_growth_birch_forest", + "minecraft:old_growth_spruce_taiga", + "minecraft:windswept_savanna", + "minecraft:eroded_badlands", + "minecraft:bamboo_jungle" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_sandy.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_sandy.json new file mode 100644 index 0000000000..62d24fad3f --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_sandy.json @@ -0,0 +1,8 @@ +{ + "replace": false, + "values": [ + "minecraft:desert", + "minecraft:badlands", + "minecraft:wooded_badlands" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_savanna.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_savanna.json new file mode 100644 index 0000000000..b39cd12ae6 --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_savanna.json @@ -0,0 +1,8 @@ +{ + "replace": false, + "values": [ + "minecraft:savanna", + "minecraft:savanna_plateau", + "minecraft:windswept_savanna" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_slope.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_slope.json new file mode 100644 index 0000000000..3944e3db15 --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_slope.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "minecraft:savanna_plateau", + "minecraft:wooded_badlands", + "minecraft:meadow", + "minecraft:grove", + "minecraft:snowy_slopes" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_snowy.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_snowy.json new file mode 100644 index 0000000000..c8ca428356 --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_snowy.json @@ -0,0 +1,15 @@ +{ + "replace": false, + "values": [ + "minecraft:frozen_ocean", + "minecraft:frozen_river", + "minecraft:snowy_plains", + "minecraft:snowy_beach", + "minecraft:snowy_taiga", + "minecraft:grove", + "minecraft:snowy_slopes", + "minecraft:jagged_peaks", + "minecraft:frozen_peaks", + "minecraft:ice_spikes" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_sparse.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_sparse.json new file mode 100644 index 0000000000..6ff5a34937 --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_sparse.json @@ -0,0 +1,16 @@ +{ + "replace": false, + "values": [ + "minecraft:windswept_forest", + "minecraft:savanna", + "minecraft:savanna_plateau", + "minecraft:wooded_badlands", + "minecraft:snowy_slopes", + "minecraft:jagged_peaks", + "minecraft:frozen_peaks", + "minecraft:windswept_gravelly_hills", + "minecraft:windswept_savanna", + "minecraft:eroded_badlands", + "minecraft:dripstone_caves" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_sparse/overworld.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_sparse/overworld.json new file mode 100644 index 0000000000..6ff5a34937 --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_sparse/overworld.json @@ -0,0 +1,16 @@ +{ + "replace": false, + "values": [ + "minecraft:windswept_forest", + "minecraft:savanna", + "minecraft:savanna_plateau", + "minecraft:wooded_badlands", + "minecraft:snowy_slopes", + "minecraft:jagged_peaks", + "minecraft:frozen_peaks", + "minecraft:windswept_gravelly_hills", + "minecraft:windswept_savanna", + "minecraft:eroded_badlands", + "minecraft:dripstone_caves" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_spooky.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_spooky.json new file mode 100644 index 0000000000..4219c7532a --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_spooky.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:dark_forest" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_swamp.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_swamp.json new file mode 100644 index 0000000000..cbcd00774d --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_swamp.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:swamp" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_underground.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_underground.json new file mode 100644 index 0000000000..030d43974d --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_underground.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "minecraft:lush_caves", + "minecraft:dripstone_caves" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_void.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_void.json new file mode 100644 index 0000000000..76ee211256 --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_void.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:the_void" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_wasteland.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_wasteland.json new file mode 100644 index 0000000000..54db173ca7 --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_wasteland.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:snowy_plains" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_water.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_water.json new file mode 100644 index 0000000000..50334d5c0d --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_water.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "#minecraft:is_ocean", + "#minecraft:is_river" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_wet.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_wet.json new file mode 100644 index 0000000000..3d94483dde --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_wet.json @@ -0,0 +1,11 @@ +{ + "replace": false, + "values": [ + "minecraft:swamp", + "minecraft:jungle", + "minecraft:sparse_jungle", + "minecraft:sparse_jungle", + "minecraft:bamboo_jungle", + "minecraft:lush_caves" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/worldgen/biome/is_wet/overworld.json b/src/generated/resources/data/forge/tags/worldgen/biome/is_wet/overworld.json new file mode 100644 index 0000000000..d1231e6f9a --- /dev/null +++ b/src/generated/resources/data/forge/tags/worldgen/biome/is_wet/overworld.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "minecraft:swamp", + "minecraft:jungle", + "minecraft:bamboo_jungle", + "minecraft:lush_caves" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/worldgen/biome/is_mountain.json b/src/generated/resources/data/minecraft/tags/worldgen/biome/is_mountain.json new file mode 100644 index 0000000000..a3fcce5d77 --- /dev/null +++ b/src/generated/resources/data/minecraft/tags/worldgen/biome/is_mountain.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "#forge:is_peak", + "#forge:is_slope" + ] +} \ No newline at end of file diff --git a/src/main/java/net/minecraftforge/common/BiomeDictionary.java b/src/main/java/net/minecraftforge/common/BiomeDictionary.java index f33a0ead09..df547aa706 100644 --- a/src/main/java/net/minecraftforge/common/BiomeDictionary.java +++ b/src/main/java/net/minecraftforge/common/BiomeDictionary.java @@ -13,6 +13,7 @@ import java.util.stream.StreamSupport; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import net.minecraftforge.event.world.BiomeLoadingEvent; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -26,6 +27,11 @@ import com.google.common.collect.ImmutableList; import net.minecraft.world.level.biome.Biome; +/** + * Use {@link Tags.Biomes} when possible. + * Note that tags are not usable yet during {@link BiomeLoadingEvent} so BiomeDictionary are still necessary there + */ +@Deprecated public class BiomeDictionary { private static final boolean DEBUG = false; diff --git a/src/main/java/net/minecraftforge/common/ForgeMod.java b/src/main/java/net/minecraftforge/common/ForgeMod.java index 8e3c9a62c7..4908845f06 100644 --- a/src/main/java/net/minecraftforge/common/ForgeMod.java +++ b/src/main/java/net/minecraftforge/common/ForgeMod.java @@ -23,6 +23,7 @@ import net.minecraftforge.common.crafting.PartialNBTIngredient; import net.minecraftforge.common.crafting.DifferenceIngredient; import net.minecraftforge.common.crafting.IntersectionIngredient; import net.minecraftforge.common.data.ExistingFileHelper; +import net.minecraftforge.common.data.ForgeBiomeTagsProvider; import net.minecraftforge.common.data.ForgeFluidTagsProvider; import net.minecraftforge.common.extensions.IForgeEntity; import net.minecraftforge.common.extensions.IForgePlayer; @@ -233,6 +234,7 @@ public class ForgeMod gen.addProvider(new ForgeFluidTagsProvider(gen, existingFileHelper)); gen.addProvider(new ForgeRecipeProvider(gen)); gen.addProvider(new ForgeLootTableProvider(gen)); + gen.addProvider(new ForgeBiomeTagsProvider(gen, existingFileHelper)); } } diff --git a/src/main/java/net/minecraftforge/common/Tags.java b/src/main/java/net/minecraftforge/common/Tags.java index c80f7275a8..722f82a13e 100644 --- a/src/main/java/net/minecraftforge/common/Tags.java +++ b/src/main/java/net/minecraftforge/common/Tags.java @@ -5,15 +5,19 @@ package net.minecraftforge.common; +import net.minecraft.core.Registry; import net.minecraft.resources.ResourceLocation; +import net.minecraft.tags.BiomeTags; import net.minecraft.tags.BlockTags; import net.minecraft.tags.FluidTags; import net.minecraft.tags.ItemTags; import net.minecraft.tags.TagKey; import net.minecraft.world.item.DyeColor; import net.minecraft.world.item.Item; +import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.material.Fluid; +import net.minecraftforge.registries.ForgeRegistries; import javax.annotation.Nullable; import java.util.Set; @@ -26,6 +30,7 @@ public class Tags Blocks.init(); Items.init(); Fluids.init(); + Biomes.init(); } public static class Blocks @@ -411,4 +416,71 @@ public class Tags return FluidTags.create(new ResourceLocation("forge", name)); } } + + public static class Biomes + { + private static void init() {} + + public static final TagKey IS_HOT = tag("is_hot"); + public static final TagKey IS_HOT_OVERWORLD = tag("is_hot/overworld"); + public static final TagKey IS_HOT_NETHER = tag("is_hot/nether"); + public static final TagKey IS_HOT_END = tag("is_hot/end"); + + public static final TagKey IS_COLD = tag("is_cold"); + public static final TagKey IS_COLD_OVERWORLD = tag("is_cold/overworld"); + public static final TagKey IS_COLD_NETHER = tag("is_cold/nether"); + public static final TagKey IS_COLD_END = tag("is_cold/end"); + + public static final TagKey IS_SPARSE = tag("is_sparse"); + public static final TagKey IS_SPARSE_OVERWORLD = tag("is_sparse/overworld"); + public static final TagKey IS_SPARSE_NETHER = tag("is_sparse/nether"); + public static final TagKey IS_SPARSE_END = tag("is_sparse/end"); + public static final TagKey IS_DENSE = tag("is_dense"); + public static final TagKey IS_DENSE_OVERWORLD = tag("is_dense/overworld"); + public static final TagKey IS_DENSE_NETHER = tag("is_dense/nether"); + public static final TagKey IS_DENSE_END = tag("is_dense/end"); + + public static final TagKey IS_WET = tag("is_wet"); + public static final TagKey IS_WET_OVERWORLD = tag("is_wet/overworld"); + public static final TagKey IS_WET_NETHER = tag("is_wet/nether"); + public static final TagKey IS_WET_END = tag("is_wet/end"); + public static final TagKey IS_DRY = tag("is_dry"); + public static final TagKey IS_DRY_OVERWORLD = tag("is_dry/overworld"); + public static final TagKey IS_DRY_NETHER = tag("is_dry/nether"); + public static final TagKey IS_DRY_END = tag("is_dry/end"); + + public static final TagKey IS_SAVANNA = tag("is_savanna"); + public static final TagKey IS_CONIFEROUS = tag("is_coniferous"); + + public static final TagKey IS_SPOOKY = tag("is_spooky"); + public static final TagKey IS_DEAD = tag("is_dead"); + public static final TagKey IS_LUSH = tag("is_lush"); + public static final TagKey IS_MUSHROOM = tag("is_mushroom"); + public static final TagKey IS_MAGICAL = tag("is_magical"); + public static final TagKey IS_RARE = tag("is_rare"); + public static final TagKey IS_PLATEAU = tag("is_plateau"); + public static final TagKey IS_MODIFIED = tag("is_modified"); + + public static final TagKey IS_WATER = tag("is_water"); + + public static final TagKey IS_PLAINS = tag("is_plains"); + public static final TagKey IS_SWAMP = tag("is_swamp"); + public static final TagKey IS_SANDY = tag("is_sandy"); + public static final TagKey IS_SNOWY = tag("is_snowy"); + public static final TagKey IS_WASTELAND = tag("is_wasteland"); + public static final TagKey IS_BEACH = tag("is_beach"); + public static final TagKey IS_VOID = tag("is_void"); + public static final TagKey IS_UNDERGROUND = tag("is_underground"); + + public static final TagKey IS_PEAK = tag("is_peak"); + public static final TagKey IS_SLOPE = tag("is_slope"); + + public static final TagKey IS_OVERWORLD = tag("is_overworld"); + public static final TagKey IS_END = tag("is_end"); + + private static TagKey tag(String name) + { + return TagKey.create(Registry.BIOME_REGISTRY, new ResourceLocation("forge", name)); + } + } } diff --git a/src/main/java/net/minecraftforge/common/data/ForgeBiomeTagsProvider.java b/src/main/java/net/minecraftforge/common/data/ForgeBiomeTagsProvider.java new file mode 100644 index 0000000000..9df4f8814b --- /dev/null +++ b/src/main/java/net/minecraftforge/common/data/ForgeBiomeTagsProvider.java @@ -0,0 +1,107 @@ +/* + * Minecraft Forge - Forge Development LLC + * SPDX-License-Identifier: LGPL-2.1-only + */ + +package net.minecraftforge.common.data; + +import net.minecraft.data.DataGenerator; +import net.minecraft.data.tags.BiomeTagsProvider; +import net.minecraft.resources.ResourceKey; +import net.minecraft.tags.BiomeTags; +import net.minecraft.tags.TagKey; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.biome.Biomes; +import net.minecraftforge.common.Tags; + +public final class ForgeBiomeTagsProvider extends BiomeTagsProvider +{ + + public ForgeBiomeTagsProvider(DataGenerator arg, ExistingFileHelper existingFileHelper) + { + super(arg, "forge", existingFileHelper); + } + + @Override + protected void addTags() + { + tag(Biomes.OCEAN, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.PLAINS, Tags.Biomes.IS_PLAINS, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.DESERT, Tags.Biomes.IS_HOT, Tags.Biomes.IS_HOT_OVERWORLD, Tags.Biomes.IS_DRY, Tags.Biomes.IS_DRY_OVERWORLD, Tags.Biomes.IS_SANDY, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.WINDSWEPT_HILLS, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.FOREST, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.TAIGA, Tags.Biomes.IS_COLD, Tags.Biomes.IS_COLD_OVERWORLD, Tags.Biomes.IS_CONIFEROUS, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.SWAMP, Tags.Biomes.IS_WET, Tags.Biomes.IS_WET_OVERWORLD, Tags.Biomes.IS_SWAMP, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.RIVER, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.NETHER_WASTES, Tags.Biomes.IS_HOT, Tags.Biomes.IS_HOT_NETHER, Tags.Biomes.IS_DRY, Tags.Biomes.IS_DRY_NETHER); + tag(Biomes.THE_END, Tags.Biomes.IS_COLD, Tags.Biomes.IS_COLD_END, Tags.Biomes.IS_DRY, Tags.Biomes.IS_DRY_END, Tags.Biomes.IS_END); + tag(Biomes.FROZEN_OCEAN, Tags.Biomes.IS_COLD, Tags.Biomes.IS_COLD_OVERWORLD, Tags.Biomes.IS_SNOWY, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.FROZEN_RIVER, Tags.Biomes.IS_COLD, Tags.Biomes.IS_COLD_OVERWORLD, Tags.Biomes.IS_SNOWY, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.SNOWY_PLAINS, Tags.Biomes.IS_COLD, Tags.Biomes.IS_COLD_OVERWORLD, Tags.Biomes.IS_SNOWY, Tags.Biomes.IS_WASTELAND, Tags.Biomes.IS_PLAINS, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.MUSHROOM_FIELDS, Tags.Biomes.IS_MUSHROOM, Tags.Biomes.IS_RARE, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.BEACH, Tags.Biomes.IS_BEACH, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.JUNGLE, Tags.Biomes.IS_HOT, Tags.Biomes.IS_HOT_OVERWORLD, Tags.Biomes.IS_WET, Tags.Biomes.IS_WET_OVERWORLD, Tags.Biomes.IS_DENSE, Tags.Biomes.IS_DENSE_OVERWORLD, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.SPARSE_JUNGLE, Tags.Biomes.IS_HOT, Tags.Biomes.IS_HOT_OVERWORLD, Tags.Biomes.IS_WET, Tags.Biomes.IS_WET, Tags.Biomes.IS_RARE, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.DEEP_OCEAN, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.STONY_SHORE, Tags.Biomes.IS_BEACH, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.SNOWY_BEACH, Tags.Biomes.IS_COLD, Tags.Biomes.IS_COLD_OVERWORLD, Tags.Biomes.IS_BEACH, Tags.Biomes.IS_SNOWY, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.BIRCH_FOREST, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.DARK_FOREST, Tags.Biomes.IS_SPOOKY, Tags.Biomes.IS_DENSE, Tags.Biomes.IS_DENSE_OVERWORLD, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.SNOWY_TAIGA, Tags.Biomes.IS_COLD, Tags.Biomes.IS_COLD_OVERWORLD, Tags.Biomes.IS_CONIFEROUS, Tags.Biomes.IS_SNOWY, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.OLD_GROWTH_PINE_TAIGA, Tags.Biomes.IS_COLD, Tags.Biomes.IS_COLD_OVERWORLD, Tags.Biomes.IS_CONIFEROUS, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.WINDSWEPT_FOREST, Tags.Biomes.IS_SPARSE, Tags.Biomes.IS_SPARSE_OVERWORLD, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.SAVANNA, Tags.Biomes.IS_HOT, Tags.Biomes.IS_HOT_OVERWORLD, Tags.Biomes.IS_SAVANNA, Tags.Biomes.IS_SPARSE, Tags.Biomes.IS_SPARSE_OVERWORLD, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.SAVANNA_PLATEAU, Tags.Biomes.IS_HOT, Tags.Biomes.IS_HOT_OVERWORLD, Tags.Biomes.IS_SAVANNA, Tags.Biomes.IS_SPARSE, Tags.Biomes.IS_SPARSE_OVERWORLD, Tags.Biomes.IS_RARE, Tags.Biomes.IS_OVERWORLD, Tags.Biomes.IS_SLOPE, Tags.Biomes.IS_PLATEAU); + tag(Biomes.BADLANDS, Tags.Biomes.IS_SANDY, Tags.Biomes.IS_DRY, Tags.Biomes.IS_DRY_OVERWORLD, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.WOODED_BADLANDS, Tags.Biomes.IS_SANDY, Tags.Biomes.IS_DRY, Tags.Biomes.IS_DRY_OVERWORLD, Tags.Biomes.IS_SPARSE, Tags.Biomes.IS_SPARSE_OVERWORLD, Tags.Biomes.IS_OVERWORLD, Tags.Biomes.IS_SLOPE, Tags.Biomes.IS_PLATEAU); + tag(Biomes.MEADOW, Tags.Biomes.IS_PLAINS, Tags.Biomes.IS_PLATEAU, Tags.Biomes.IS_SLOPE, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.GROVE, Tags.Biomes.IS_COLD, Tags.Biomes.IS_COLD_OVERWORLD, Tags.Biomes.IS_CONIFEROUS, Tags.Biomes.IS_SNOWY, Tags.Biomes.IS_SLOPE, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.SNOWY_SLOPES, Tags.Biomes.IS_COLD, Tags.Biomes.IS_COLD_OVERWORLD, Tags.Biomes.IS_SPARSE, Tags.Biomes.IS_SPARSE_OVERWORLD, Tags.Biomes.IS_SNOWY, Tags.Biomes.IS_SLOPE, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.JAGGED_PEAKS, Tags.Biomes.IS_COLD, Tags.Biomes.IS_COLD_OVERWORLD, Tags.Biomes.IS_SPARSE, Tags.Biomes.IS_SPARSE_OVERWORLD, Tags.Biomes.IS_SNOWY, Tags.Biomes.IS_PEAK, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.FROZEN_PEAKS, Tags.Biomes.IS_COLD, Tags.Biomes.IS_COLD_OVERWORLD, Tags.Biomes.IS_SPARSE, Tags.Biomes.IS_SPARSE_OVERWORLD, Tags.Biomes.IS_SNOWY, Tags.Biomes.IS_PEAK, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.STONY_PEAKS, Tags.Biomes.IS_HOT, Tags.Biomes.IS_HOT_OVERWORLD, Tags.Biomes.IS_PEAK, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.SMALL_END_ISLANDS, Tags.Biomes.IS_COLD, Tags.Biomes.IS_COLD_END, Tags.Biomes.IS_DRY, Tags.Biomes.IS_DRY_END, Tags.Biomes.IS_END); + tag(Biomes.END_MIDLANDS, Tags.Biomes.IS_COLD, Tags.Biomes.IS_COLD_END, Tags.Biomes.IS_DRY, Tags.Biomes.IS_DRY_END, Tags.Biomes.IS_END); + tag(Biomes.END_HIGHLANDS, Tags.Biomes.IS_COLD, Tags.Biomes.IS_COLD_END, Tags.Biomes.IS_DRY, Tags.Biomes.IS_DRY_END, Tags.Biomes.IS_END); + tag(Biomes.END_BARRENS, Tags.Biomes.IS_COLD, Tags.Biomes.IS_COLD_END, Tags.Biomes.IS_DRY, Tags.Biomes.IS_DRY_END, Tags.Biomes.IS_END); + tag(Biomes.WARM_OCEAN, Tags.Biomes.IS_HOT, Tags.Biomes.IS_HOT_OVERWORLD, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.LUKEWARM_OCEAN, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.COLD_OCEAN, Tags.Biomes.IS_COLD, Tags.Biomes.IS_COLD_OVERWORLD, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.DEEP_LUKEWARM_OCEAN, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.DEEP_COLD_OCEAN, Tags.Biomes.IS_COLD, Tags.Biomes.IS_COLD_OVERWORLD, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.DEEP_FROZEN_OCEAN, Tags.Biomes.IS_COLD, Tags.Biomes.IS_COLD_OVERWORLD, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.THE_VOID, Tags.Biomes.IS_VOID); + tag(Biomes.SUNFLOWER_PLAINS, Tags.Biomes.IS_PLAINS, Tags.Biomes.IS_RARE, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.WINDSWEPT_GRAVELLY_HILLS, Tags.Biomes.IS_SPARSE, Tags.Biomes.IS_SPARSE_OVERWORLD, Tags.Biomes.IS_RARE, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.FLOWER_FOREST, Tags.Biomes.IS_RARE, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.ICE_SPIKES, Tags.Biomes.IS_COLD, Tags.Biomes.IS_COLD_OVERWORLD, Tags.Biomes.IS_SNOWY, Tags.Biomes.IS_RARE, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.OLD_GROWTH_BIRCH_FOREST, Tags.Biomes.IS_DENSE, Tags.Biomes.IS_DENSE_OVERWORLD, Tags.Biomes.IS_RARE, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.OLD_GROWTH_SPRUCE_TAIGA, Tags.Biomes.IS_DENSE, Tags.Biomes.IS_DENSE_OVERWORLD, Tags.Biomes.IS_RARE, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.WINDSWEPT_SAVANNA, Tags.Biomes.IS_HOT, Tags.Biomes.IS_HOT_OVERWORLD, Tags.Biomes.IS_DRY, Tags.Biomes.IS_DRY_OVERWORLD, Tags.Biomes.IS_SPARSE, Tags.Biomes.IS_SPARSE_OVERWORLD, Tags.Biomes.IS_SAVANNA, Tags.Biomes.IS_RARE, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.ERODED_BADLANDS, Tags.Biomes.IS_HOT, Tags.Biomes.IS_HOT_OVERWORLD, Tags.Biomes.IS_DRY, Tags.Biomes.IS_DRY_OVERWORLD, Tags.Biomes.IS_SPARSE, Tags.Biomes.IS_SPARSE_OVERWORLD, Tags.Biomes.IS_RARE, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.BAMBOO_JUNGLE, Tags.Biomes.IS_HOT, Tags.Biomes.IS_HOT_OVERWORLD, Tags.Biomes.IS_WET, Tags.Biomes.IS_WET_OVERWORLD, Tags.Biomes.IS_RARE, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.LUSH_CAVES, Tags.Biomes.IS_UNDERGROUND, Tags.Biomes.IS_LUSH, Tags.Biomes.IS_WET, Tags.Biomes.IS_WET_OVERWORLD, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.DRIPSTONE_CAVES, Tags.Biomes.IS_UNDERGROUND, Tags.Biomes.IS_SPARSE, Tags.Biomes.IS_SPARSE_OVERWORLD, Tags.Biomes.IS_OVERWORLD); + tag(Biomes.SOUL_SAND_VALLEY, Tags.Biomes.IS_HOT, Tags.Biomes.IS_HOT_NETHER, Tags.Biomes.IS_DRY, Tags.Biomes.IS_DRY_NETHER); + tag(Biomes.CRIMSON_FOREST, Tags.Biomes.IS_HOT, Tags.Biomes.IS_HOT_NETHER, Tags.Biomes.IS_DRY, Tags.Biomes.IS_DRY_NETHER); + tag(Biomes.WARPED_FOREST, Tags.Biomes.IS_HOT, Tags.Biomes.IS_HOT_NETHER, Tags.Biomes.IS_DRY, Tags.Biomes.IS_DRY_NETHER); + tag(Biomes.BASALT_DELTAS, Tags.Biomes.IS_HOT, Tags.Biomes.IS_HOT_NETHER, Tags.Biomes.IS_DRY, Tags.Biomes.IS_DRY_NETHER); + + tag(Tags.Biomes.IS_WATER).addTag(BiomeTags.IS_OCEAN).addTag(BiomeTags.IS_RIVER); + tag(BiomeTags.IS_MOUNTAIN).addTag(Tags.Biomes.IS_PEAK).addTag(Tags.Biomes.IS_SLOPE); + } + + @SafeVarargs + private void tag(ResourceKey biome, TagKey... tags) + { + for(TagKey key : tags) + { + tag(key).add(biome); + } + } + + @Override + public String getName() { + return "Forge Biome Tags"; + } +}