mirror of
https://github.com/MinecraftForge/MinecraftForge.git
synced 2026-11-13 00:37:52 +00:00
Fix back-compat with legacy forge: tags (#10126)
This commit is contained in:
1 parent
7cfed38194
commit
e0fbab3c49
528 files changed
+2684
-1193
No files matched your search
@@ -14,6 +14,7 @@ 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;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
@@ -33,9 +34,9 @@ public final class ForgeBiomeTagsProvider extends BiomeTagsProvider {
|
||||
|
||||
tag(IS_VOID).add(Biomes.THE_VOID);
|
||||
|
||||
tag(IS_END).addTags(BiomeTags.IS_END);
|
||||
tag(IS_NETHER).addTags(BiomeTags.IS_NETHER);
|
||||
tag(IS_OVERWORLD).addTags(BiomeTags.IS_OVERWORLD);
|
||||
tag(IS_END).addTag(BiomeTags.IS_END);
|
||||
tag(IS_NETHER).addTag(BiomeTags.IS_NETHER);
|
||||
tag(IS_OVERWORLD).addTag(BiomeTags.IS_OVERWORLD);
|
||||
|
||||
tag(IS_HOT_OVERWORLD)
|
||||
.add(Biomes.SWAMP)
|
||||
@@ -51,14 +52,16 @@ public final class ForgeBiomeTagsProvider extends BiomeTagsProvider {
|
||||
.add(Biomes.SAVANNA_PLATEAU)
|
||||
.add(Biomes.WINDSWEPT_SAVANNA)
|
||||
.add(Biomes.STONY_PEAKS)
|
||||
.add(Biomes.WARM_OCEAN);
|
||||
.add(Biomes.WARM_OCEAN)
|
||||
.addOptionalTag(forgeTagKey("is_hot/overworld"));
|
||||
tag(IS_HOT_NETHER)
|
||||
.add(Biomes.NETHER_WASTES)
|
||||
.add(Biomes.CRIMSON_FOREST)
|
||||
.add(Biomes.WARPED_FOREST)
|
||||
.add(Biomes.SOUL_SAND_VALLEY)
|
||||
.add(Biomes.BASALT_DELTAS);
|
||||
tag(IS_HOT_END);
|
||||
.add(Biomes.BASALT_DELTAS)
|
||||
.addOptionalTag(forgeTagKey("is_hot/nether"));
|
||||
tag(IS_HOT_END); // forge:is_hot/end
|
||||
tag(IS_HOT).addTag(IS_HOT_OVERWORLD).addTag(IS_HOT_NETHER).addOptionalTag(IS_HOT_END.location());
|
||||
|
||||
tag(IS_COLD_OVERWORLD)
|
||||
@@ -81,16 +84,21 @@ public final class ForgeBiomeTagsProvider extends BiomeTagsProvider {
|
||||
.add(Biomes.COLD_OCEAN)
|
||||
.add(Biomes.FROZEN_OCEAN)
|
||||
.add(Biomes.DEEP_COLD_OCEAN)
|
||||
.add(Biomes.DEEP_FROZEN_OCEAN);
|
||||
tag(IS_COLD_NETHER);
|
||||
.add(Biomes.DEEP_FROZEN_OCEAN)
|
||||
.addOptionalTag(forgeTagKey("is_cold/overworld"));
|
||||
tag(IS_COLD_NETHER); // forge:is_cold/nether
|
||||
tag(IS_COLD_END)
|
||||
.add(Biomes.THE_END)
|
||||
.add(Biomes.SMALL_END_ISLANDS)
|
||||
.add(Biomes.END_MIDLANDS)
|
||||
.add(Biomes.END_HIGHLANDS)
|
||||
.add(Biomes.END_BARRENS);
|
||||
.add(Biomes.END_BARRENS)
|
||||
.addOptionalTag(forgeTagKey("is_cold/end"));
|
||||
tag(IS_COLD).addTag(IS_COLD_OVERWORLD).addOptionalTag(IS_COLD_NETHER.location()).addTag(IS_COLD_END);
|
||||
|
||||
tag(IS_DEAD)
|
||||
.addOptionalTag(forgeTagKey("is_dead"));
|
||||
|
||||
tag(IS_SPARSE_VEGETATION_OVERWORLD)
|
||||
.add(Biomes.WOODED_BADLANDS)
|
||||
.add(Biomes.SAVANNA)
|
||||
@@ -103,8 +111,9 @@ public final class ForgeBiomeTagsProvider extends BiomeTagsProvider {
|
||||
.add(Biomes.SNOWY_SLOPES)
|
||||
.add(Biomes.JAGGED_PEAKS)
|
||||
.add(Biomes.FROZEN_PEAKS);
|
||||
tag(IS_SPARSE_NETHER);
|
||||
tag(IS_SPARSE_END);
|
||||
//.addOptionalTag(forgeTagKey("is_sparse/overworld")); // can't because forge:is_sparse/overworld contains dripstone caves and eroded badlands, while c:is_sparse_vegetation/overworld does not
|
||||
tag(IS_SPARSE_NETHER); // forge:is_sparse/nether
|
||||
tag(IS_SPARSE_END); // forge:is_sparse/end
|
||||
tag(IS_SPARSE_VEGETATION).addTag(IS_SPARSE_VEGETATION_OVERWORLD).addOptionalTag(IS_SPARSE_NETHER.location()).addOptionalTag(IS_SPARSE_END.location());
|
||||
|
||||
tag(IS_DENSE_VEGETATION_OVERWORLD)
|
||||
@@ -113,7 +122,8 @@ public final class ForgeBiomeTagsProvider extends BiomeTagsProvider {
|
||||
.add(Biomes.OLD_GROWTH_SPRUCE_TAIGA)
|
||||
.add(Biomes.JUNGLE)
|
||||
.add(Biomes.BAMBOO_JUNGLE)
|
||||
.add(Biomes.MANGROVE_SWAMP);
|
||||
.add(Biomes.MANGROVE_SWAMP)
|
||||
.addOptionalTag(forgeTagKey("is_dense/overworld"));
|
||||
tag(IS_DENSE_NETHER);
|
||||
tag(IS_DENSE_END);
|
||||
tag(IS_DENSE_VEGETATION).addTag(IS_DENSE_VEGETATION_OVERWORLD).addOptionalTag(IS_DENSE_NETHER.location()).addOptionalTag(IS_DENSE_END.location());
|
||||
@@ -126,7 +136,8 @@ public final class ForgeBiomeTagsProvider extends BiomeTagsProvider {
|
||||
.add(Biomes.SPARSE_JUNGLE)
|
||||
.add(Biomes.BEACH)
|
||||
.add(Biomes.LUSH_CAVES)
|
||||
.add(Biomes.DRIPSTONE_CAVES);
|
||||
.add(Biomes.DRIPSTONE_CAVES)
|
||||
.addOptionalTag(forgeTagKey("is_wet/overworld"));
|
||||
tag(IS_WET_NETHER);
|
||||
tag(IS_WET_END);
|
||||
tag(IS_WET).addTag(IS_WET_OVERWORLD).addOptionalTag(IS_WET_NETHER.location()).addOptionalTag(IS_WET_END.location());
|
||||
@@ -138,46 +149,60 @@ public final class ForgeBiomeTagsProvider extends BiomeTagsProvider {
|
||||
.add(Biomes.ERODED_BADLANDS)
|
||||
.add(Biomes.SAVANNA)
|
||||
.add(Biomes.SAVANNA_PLATEAU)
|
||||
.add(Biomes.WINDSWEPT_SAVANNA);
|
||||
.add(Biomes.WINDSWEPT_SAVANNA)
|
||||
.addOptionalTag(forgeTagKey("is_dry/overworld"));
|
||||
tag(IS_DRY_NETHER)
|
||||
.add(Biomes.NETHER_WASTES)
|
||||
.add(Biomes.CRIMSON_FOREST)
|
||||
.add(Biomes.WARPED_FOREST)
|
||||
.add(Biomes.SOUL_SAND_VALLEY)
|
||||
.add(Biomes.BASALT_DELTAS);
|
||||
.add(Biomes.BASALT_DELTAS)
|
||||
.addOptionalTag(forgeTagKey("is_dry/nether"));
|
||||
tag(IS_DRY_END)
|
||||
.add(Biomes.THE_END)
|
||||
.add(Biomes.SMALL_END_ISLANDS)
|
||||
.add(Biomes.END_MIDLANDS)
|
||||
.add(Biomes.END_HIGHLANDS)
|
||||
.add(Biomes.END_BARRENS);
|
||||
tag(IS_DRY).addTag(IS_DRY_OVERWORLD).addTag(IS_DRY_NETHER).addTag(IS_DRY_END);
|
||||
.add(Biomes.END_BARRENS)
|
||||
.addOptionalTag(forgeTagKey("is_dry/end"));
|
||||
tag(IS_DRY)
|
||||
.addTag(IS_DRY_OVERWORLD).addTag(IS_DRY_NETHER).addTag(IS_DRY_END)
|
||||
.addOptionalTag(forgeTagKey("is_dry"));
|
||||
|
||||
tag(IS_CONIFEROUS_TREE).addTags(IS_TAIGA).add(Biomes.GROVE);
|
||||
tag(IS_SAVANNA_TREE).addTags(IS_SAVANNA);
|
||||
tag(IS_JUNGLE_TREE).addTags(IS_JUNGLE);
|
||||
tag(IS_CONIFEROUS_TREE)
|
||||
.addTag(IS_TAIGA)
|
||||
.add(Biomes.GROVE)
|
||||
.addOptionalTag(forgeTagKey("is_coniferous"));
|
||||
tag(IS_SAVANNA_TREE).addTag(IS_SAVANNA);
|
||||
tag(IS_JUNGLE_TREE).addTag(IS_JUNGLE);
|
||||
tag(IS_DECIDUOUS_TREE).add(Biomes.FOREST).add(Biomes.FLOWER_FOREST).add(Biomes.BIRCH_FOREST).add(Biomes.DARK_FOREST).add(Biomes.OLD_GROWTH_BIRCH_FOREST).add(Biomes.WINDSWEPT_FOREST);
|
||||
|
||||
tag(IS_MOUNTAIN_SLOPE).add(Biomes.SNOWY_SLOPES).add(Biomes.MEADOW).add(Biomes.GROVE).add(Biomes.CHERRY_GROVE);
|
||||
tag(IS_MOUNTAIN_PEAK).add(Biomes.JAGGED_PEAKS).add(Biomes.FROZEN_PEAKS).add(Biomes.STONY_PEAKS);
|
||||
tag(IS_MOUNTAIN).addTag(BiomeTags.IS_MOUNTAIN).addTag(IS_MOUNTAIN_PEAK).addTag(IS_MOUNTAIN_SLOPE);
|
||||
tag(IS_MOUNTAIN_PEAK)
|
||||
.add(Biomes.JAGGED_PEAKS).add(Biomes.FROZEN_PEAKS).add(Biomes.STONY_PEAKS)
|
||||
.addOptionalTag(forgeTagKey("is_peak"));
|
||||
tag(IS_MOUNTAIN)
|
||||
.addTag(BiomeTags.IS_MOUNTAIN).addTag(IS_MOUNTAIN_PEAK).addTag(IS_MOUNTAIN_SLOPE);
|
||||
//.addOptionalTag(forgeTagKey("is_mountain")); // can't because forge:is_mountain contains savanna plateau, while c:is_mountain does not
|
||||
|
||||
tag(IS_FOREST).addTags(BiomeTags.IS_FOREST);
|
||||
tag(IS_FOREST).addTag(BiomeTags.IS_FOREST);
|
||||
tag(IS_BIRCH_FOREST).add(Biomes.BIRCH_FOREST).add(Biomes.OLD_GROWTH_BIRCH_FOREST);
|
||||
tag(IS_FLOWER_FOREST).add(Biomes.FLOWER_FOREST);
|
||||
tag(IS_FLORAL).addTags(IS_FLOWER_FOREST).add(Biomes.SUNFLOWER_PLAINS).add(Biomes.CHERRY_GROVE).add(Biomes.MEADOW);
|
||||
tag(IS_BEACH).addTags(BiomeTags.IS_BEACH);
|
||||
tag(IS_FLORAL).addTag(IS_FLOWER_FOREST).add(Biomes.SUNFLOWER_PLAINS).add(Biomes.CHERRY_GROVE).add(Biomes.MEADOW);
|
||||
tag(IS_BEACH).addTag(BiomeTags.IS_BEACH);
|
||||
tag(IS_STONY_SHORES).add(Biomes.STONY_SHORE);
|
||||
tag(IS_DESERT).add(Biomes.DESERT);
|
||||
tag(IS_BADLANDS).addTags(BiomeTags.IS_BADLANDS);
|
||||
tag(IS_BADLANDS).addTag(BiomeTags.IS_BADLANDS);
|
||||
tag(IS_PLAINS).add(Biomes.PLAINS).add(Biomes.SUNFLOWER_PLAINS);
|
||||
tag(IS_SNOWY_PLAINS).add(Biomes.SNOWY_PLAINS);
|
||||
tag(IS_TAIGA).addTags(BiomeTags.IS_TAIGA);
|
||||
tag(IS_HILL).addTags(BiomeTags.IS_HILL);
|
||||
tag(IS_TAIGA).addTag(BiomeTags.IS_TAIGA);
|
||||
tag(IS_HILL).addTag(BiomeTags.IS_HILL);
|
||||
tag(IS_WINDSWEPT).add(Biomes.WINDSWEPT_HILLS).add(Biomes.WINDSWEPT_GRAVELLY_HILLS).add(Biomes.WINDSWEPT_FOREST).add(Biomes.WINDSWEPT_SAVANNA);
|
||||
tag(IS_SAVANNA).addTags(BiomeTags.IS_SAVANNA);
|
||||
tag(IS_JUNGLE).addTags(BiomeTags.IS_JUNGLE);
|
||||
tag(IS_SNOWY).add(Biomes.SNOWY_BEACH).add(Biomes.SNOWY_PLAINS).add(Biomes.ICE_SPIKES).add(Biomes.SNOWY_TAIGA).add(Biomes.GROVE).add(Biomes.SNOWY_SLOPES).add(Biomes.JAGGED_PEAKS).add(Biomes.FROZEN_PEAKS);
|
||||
tag(IS_SAVANNA).addTag(BiomeTags.IS_SAVANNA);
|
||||
tag(IS_JUNGLE).addTag(BiomeTags.IS_JUNGLE);
|
||||
tag(IS_SNOWY)
|
||||
.add(Biomes.SNOWY_BEACH, Biomes.SNOWY_PLAINS, Biomes.ICE_SPIKES, Biomes.SNOWY_TAIGA, Biomes.GROVE, Biomes.SNOWY_SLOPES, Biomes.JAGGED_PEAKS, Biomes.FROZEN_PEAKS);
|
||||
//.addOptionalTag(forgeTagKey("is_snowy")); // can't add forge:is_snowy because it contains frozen ocean and frozen river, while c:is_snowy does not
|
||||
tag(IS_ICY).add(Biomes.ICE_SPIKES).add(Biomes.FROZEN_PEAKS);
|
||||
tag(IS_SWAMP).add(Biomes.SWAMP).add(Biomes.MANGROVE_SWAMP);
|
||||
tag(IS_OLD_GROWTH).add(Biomes.OLD_GROWTH_BIRCH_FOREST).add(Biomes.OLD_GROWTH_PINE_TAIGA).add(Biomes.OLD_GROWTH_SPRUCE_TAIGA);
|
||||
@@ -191,58 +216,89 @@ public final class ForgeBiomeTagsProvider extends BiomeTagsProvider {
|
||||
tag(IS_WASTELAND);
|
||||
tag(IS_RARE).add(Biomes.SUNFLOWER_PLAINS).add(Biomes.FLOWER_FOREST).add(Biomes.OLD_GROWTH_BIRCH_FOREST).add(Biomes.OLD_GROWTH_SPRUCE_TAIGA).add(Biomes.BAMBOO_JUNGLE).add(Biomes.SPARSE_JUNGLE).add(Biomes.ERODED_BADLANDS).add(Biomes.SAVANNA_PLATEAU).add(Biomes.WINDSWEPT_SAVANNA).add(Biomes.ICE_SPIKES).add(Biomes.WINDSWEPT_GRAVELLY_HILLS).add(Biomes.MUSHROOM_FIELDS).add(Biomes.DEEP_DARK);
|
||||
|
||||
tag(IS_RIVER).addTags(BiomeTags.IS_RIVER);
|
||||
tag(IS_RIVER).addTag(BiomeTags.IS_RIVER);
|
||||
tag(IS_SHALLOW_OCEAN).add(Biomes.OCEAN).add(Biomes.LUKEWARM_OCEAN).add(Biomes.WARM_OCEAN).add(Biomes.COLD_OCEAN).add(Biomes.FROZEN_OCEAN);
|
||||
tag(IS_DEEP_OCEAN).addTags(BiomeTags.IS_DEEP_OCEAN);
|
||||
tag(IS_OCEAN).addTags(BiomeTags.IS_OCEAN).addTags(IS_SHALLOW_OCEAN).addTags(IS_DEEP_OCEAN);
|
||||
tag(IS_DEEP_OCEAN).addTag(BiomeTags.IS_DEEP_OCEAN);
|
||||
tag(IS_OCEAN).addTag(BiomeTags.IS_OCEAN).addTag(IS_SHALLOW_OCEAN).addTag(IS_DEEP_OCEAN);
|
||||
tag(IS_AQUATIC_ICY).add(Biomes.FROZEN_RIVER).add(Biomes.DEEP_FROZEN_OCEAN).add(Biomes.FROZEN_OCEAN);
|
||||
tag(IS_AQUATIC).addTag(IS_OCEAN).addTag(IS_RIVER);
|
||||
|
||||
tag(IS_CAVE).add(Biomes.LUSH_CAVES).add(Biomes.DRIPSTONE_CAVES).add(Biomes.DEEP_DARK);
|
||||
tag(IS_CAVE)
|
||||
.add(Biomes.LUSH_CAVES).add(Biomes.DRIPSTONE_CAVES).add(Biomes.DEEP_DARK)
|
||||
.addOptionalTag(forgeTagKey("is_cave"));
|
||||
tag(IS_UNDERGROUND).addTag(IS_CAVE);
|
||||
|
||||
tag(IS_NETHER_FOREST).add(Biomes.CRIMSON_FOREST).add(Biomes.WARPED_FOREST);
|
||||
tag(IS_OUTER_END_ISLAND).add(Biomes.END_HIGHLANDS).add(Biomes.END_MIDLANDS).add(Biomes.END_BARRENS);
|
||||
|
||||
// Backwards compat with pre-1.21 tags. Done after so optional tag is last for better readability.
|
||||
// Backwards compat definitions for pre-1.21 legacy `forge:` tags.
|
||||
// TODO: Remove backwards compat tag entries in 1.22
|
||||
tag(IS_MOUNTAIN_SLOPE).addOptionalTag(forgeRl("is_slope"));
|
||||
tag(IS_MOUNTAIN_PEAK).addOptionalTag(forgeRl("is_peak"));
|
||||
tagWithOptionalLegacy(IS_MOUNTAIN);
|
||||
tagWithOptionalLegacy(IS_HOT_OVERWORLD);
|
||||
tagWithOptionalLegacy(IS_HOT_NETHER);
|
||||
tagWithOptionalLegacy(IS_HOT);
|
||||
tagWithOptionalLegacy(IS_COLD_OVERWORLD);
|
||||
tagWithOptionalLegacy(IS_COLD_END);
|
||||
tagWithOptionalLegacy(IS_COLD);
|
||||
tagWithOptionalLegacy(IS_SPARSE_VEGETATION_OVERWORLD);
|
||||
tagWithOptionalLegacy(IS_SPARSE_VEGETATION);
|
||||
tag(IS_SPARSE_VEGETATION_OVERWORLD).addOptionalTag(forgeRl("is_sparse/overworld"));
|
||||
tag(IS_SPARSE_VEGETATION).addOptionalTag(forgeRl("is_sparse"));
|
||||
tag(IS_DENSE_VEGETATION_OVERWORLD).addOptionalTag(forgeRl("is_dense/overworld"));
|
||||
tag(IS_DENSE_END);
|
||||
tag(IS_DENSE_VEGETATION).addOptionalTag(forgeRl("is_dense"));
|
||||
tagWithOptionalLegacy(IS_WET_OVERWORLD);
|
||||
tagWithOptionalLegacy(IS_WET);
|
||||
tagWithOptionalLegacy(IS_DRY_OVERWORLD);
|
||||
tagWithOptionalLegacy(IS_DRY_NETHER);
|
||||
tagWithOptionalLegacy(IS_DRY_END);
|
||||
tagWithOptionalLegacy(IS_DRY);
|
||||
tagWithOptionalLegacy(IS_CONIFEROUS_TREE);
|
||||
tagWithOptionalLegacy(IS_DEAD);
|
||||
tagWithOptionalLegacy(IS_MUSHROOM);
|
||||
tagWithOptionalLegacy(IS_FLORAL);
|
||||
tag(IS_AQUATIC).addOptionalTag(forgeRl("is_water"));
|
||||
tagWithOptionalLegacy(IS_DESERT);
|
||||
tagWithOptionalLegacy(IS_PLAINS);
|
||||
tagWithOptionalLegacy(IS_SWAMP);
|
||||
tagWithOptionalLegacy(IS_SNOWY);
|
||||
tagWithOptionalLegacy(IS_WASTELAND);
|
||||
tagWithOptionalLegacy(IS_VOID);
|
||||
tagWithOptionalLegacy(IS_CAVE);
|
||||
tagWithOptionalLegacy(IS_END);
|
||||
tagWithOptionalLegacy(IS_NETHER);
|
||||
tagWithOptionalLegacy(IS_OVERWORLD);
|
||||
tag(Biomes.PLAINS, forgeTagKey("is_plains"));
|
||||
tag(Biomes.DESERT, forgeTagKey("is_hot/overworld"), forgeTagKey("is_dry/overworld"), forgeTagKey("is_sandy"), forgeTagKey("is_desert"));
|
||||
tag(Biomes.TAIGA, forgeTagKey("is_cold/overworld"), forgeTagKey("is_coniferous"));
|
||||
tag(Biomes.SWAMP, forgeTagKey("is_wet/overworld"), forgeTagKey("is_swamp"));
|
||||
tag(Biomes.NETHER_WASTES, forgeTagKey("is_hot/nether"), forgeTagKey("is_dry/nether"));
|
||||
tag(Biomes.THE_END, forgeTagKey("is_cold/end"), forgeTagKey("is_dry/end"));
|
||||
tag(Biomes.FROZEN_OCEAN, forgeTagKey("is_cold/overworld"), forgeTagKey("is_snowy"));
|
||||
tag(Biomes.FROZEN_RIVER, forgeTagKey("is_cold/overworld"), forgeTagKey("is_snowy"));
|
||||
tag(Biomes.SNOWY_PLAINS, forgeTagKey("is_cold/overworld"), forgeTagKey("is_snowy"), forgeTagKey("is_wasteland"), forgeTagKey("is_plains"));
|
||||
tag(Biomes.MUSHROOM_FIELDS, forgeTagKey("is_mushroom"), forgeTagKey("is_rare"));
|
||||
tag(Biomes.JUNGLE, forgeTagKey("is_hot/overworld"), forgeTagKey("is_wet/overworld"), forgeTagKey("is_dense/overworld"));
|
||||
tag(Biomes.SPARSE_JUNGLE, forgeTagKey("is_hot/overworld"), forgeTagKey("is_wet/overworld"), forgeTagKey("is_rare"));
|
||||
tag(Biomes.BEACH, forgeTagKey("is_wet/overworld"), forgeTagKey("is_sandy"));
|
||||
tag(Biomes.SNOWY_BEACH, forgeTagKey("is_cold/overworld"), forgeTagKey("is_snowy"));
|
||||
tag(Biomes.DARK_FOREST, forgeTagKey("is_spooky"), forgeTagKey("is_dense/overworld"));
|
||||
tag(Biomes.SNOWY_TAIGA, forgeTagKey("is_cold/overworld"), forgeTagKey("is_coniferous"), forgeTagKey("is_snowy"));
|
||||
tag(Biomes.OLD_GROWTH_PINE_TAIGA, forgeTagKey("is_cold/overworld"), forgeTagKey("is_coniferous"));
|
||||
tag(Biomes.WINDSWEPT_FOREST, forgeTagKey("is_sparse/overworld"));
|
||||
tag(Biomes.SAVANNA, forgeTagKey("is_hot/overworld"), forgeTagKey("is_sparse/overworld"));
|
||||
tag(Biomes.SAVANNA_PLATEAU, forgeTagKey("is_hot/overworld"), forgeTagKey("is_sparse/overworld"), forgeTagKey("is_rare"), forgeTagKey("is_slope"), Tags.Biomes.IS_PLATEAU);
|
||||
tag(Biomes.BADLANDS, forgeTagKey("is_sandy"), forgeTagKey("is_dry/overworld"));
|
||||
tag(Biomes.WOODED_BADLANDS, forgeTagKey("is_sandy"), forgeTagKey("is_dry/overworld"), forgeTagKey("is_sparse/overworld"), forgeTagKey("is_slope"), Tags.Biomes.IS_PLATEAU);
|
||||
tag(Biomes.MEADOW, forgeTagKey("is_plains"), Tags.Biomes.IS_PLATEAU, forgeTagKey("is_slope"));
|
||||
tag(Biomes.GROVE, forgeTagKey("is_cold/overworld"), forgeTagKey("is_coniferous"), forgeTagKey("is_snowy"), forgeTagKey("is_slope"));
|
||||
tag(Biomes.SNOWY_SLOPES, forgeTagKey("is_cold/overworld"), forgeTagKey("is_sparse/overworld"), forgeTagKey("is_snowy"), forgeTagKey("is_slope"));
|
||||
tag(Biomes.JAGGED_PEAKS, forgeTagKey("is_cold/overworld"), forgeTagKey("is_sparse/overworld"), forgeTagKey("is_snowy"), forgeTagKey("is_peak"));
|
||||
tag(Biomes.FROZEN_PEAKS, forgeTagKey("is_cold/overworld"), forgeTagKey("is_sparse/overworld"), forgeTagKey("is_snowy"), forgeTagKey("is_peak"));
|
||||
tag(Biomes.STONY_PEAKS, forgeTagKey("is_hot/overworld"), forgeTagKey("is_peak"));
|
||||
tag(Biomes.SMALL_END_ISLANDS, forgeTagKey("is_cold/end"), forgeTagKey("is_dry/end"));
|
||||
tag(Biomes.END_MIDLANDS, forgeTagKey("is_cold/end"), forgeTagKey("is_dry/end"));
|
||||
tag(Biomes.END_HIGHLANDS, forgeTagKey("is_cold/end"), forgeTagKey("is_dry/end"));
|
||||
tag(Biomes.END_BARRENS, forgeTagKey("is_cold/end"), forgeTagKey("is_dry/end"));
|
||||
tag(Biomes.WARM_OCEAN, forgeTagKey("is_hot/overworld"));
|
||||
tag(Biomes.COLD_OCEAN, forgeTagKey("is_cold/overworld"));
|
||||
tag(Biomes.DEEP_COLD_OCEAN, forgeTagKey("is_cold/overworld"));
|
||||
tag(Biomes.DEEP_FROZEN_OCEAN, forgeTagKey("is_cold/overworld"));
|
||||
tag(Biomes.THE_VOID, forgeTagKey("is_void"));
|
||||
tag(Biomes.SUNFLOWER_PLAINS, forgeTagKey("is_plains"), forgeTagKey("is_rare"));
|
||||
tag(Biomes.WINDSWEPT_GRAVELLY_HILLS, forgeTagKey("is_sparse/overworld"), forgeTagKey("is_rare"));
|
||||
tag(Biomes.FLOWER_FOREST, forgeTagKey("is_rare"));
|
||||
tag(Biomes.ICE_SPIKES, forgeTagKey("is_cold/overworld"), forgeTagKey("is_snowy"), forgeTagKey("is_rare"));
|
||||
tag(Biomes.OLD_GROWTH_BIRCH_FOREST, forgeTagKey("is_dense/overworld"), forgeTagKey("is_rare"));
|
||||
tag(Biomes.OLD_GROWTH_SPRUCE_TAIGA, forgeTagKey("is_dense/overworld"), forgeTagKey("is_rare"));
|
||||
tag(Biomes.WINDSWEPT_SAVANNA, forgeTagKey("is_hot/overworld"), forgeTagKey("is_dry/overworld"), forgeTagKey("is_sparse/overworld"), forgeTagKey("is_rare"));
|
||||
tag(Biomes.ERODED_BADLANDS, forgeTagKey("is_hot/overworld"), forgeTagKey("is_dry/overworld"), forgeTagKey("is_sparse/overworld"), forgeTagKey("is_rare"));
|
||||
tag(Biomes.BAMBOO_JUNGLE, forgeTagKey("is_hot/overworld"), forgeTagKey("is_wet/overworld"), forgeTagKey("is_rare"));
|
||||
tag(Biomes.LUSH_CAVES, forgeTagKey("is_cave"), forgeTagKey("is_lush"), forgeTagKey("is_wet/overworld"));
|
||||
tag(Biomes.DRIPSTONE_CAVES, forgeTagKey("is_cave"), forgeTagKey("is_sparse/overworld"));
|
||||
tag(Biomes.SOUL_SAND_VALLEY, forgeTagKey("is_hot/nether"), forgeTagKey("is_dry/nether"));
|
||||
tag(Biomes.CRIMSON_FOREST, forgeTagKey("is_hot/nether"), forgeTagKey("is_dry/nether"));
|
||||
tag(Biomes.WARPED_FOREST, forgeTagKey("is_hot/nether"), forgeTagKey("is_dry/nether"));
|
||||
tag(Biomes.BASALT_DELTAS, forgeTagKey("is_hot/nether"), forgeTagKey("is_dry/nether"));
|
||||
tag(Biomes.MANGROVE_SWAMP, forgeTagKey("is_wet/overworld"), forgeTagKey("is_hot/overworld"), forgeTagKey("is_swamp"));
|
||||
tag(Biomes.DEEP_DARK, forgeTagKey("is_cave"), forgeTagKey("is_rare"), forgeTagKey("is_spooky"));
|
||||
|
||||
tag(forgeTagKey("is_hot")).addTag(forgeTagKey("is_hot/overworld")).addTag(forgeTagKey("is_hot/nether")).addOptionalTag(Tags.Biomes.IS_HOT_END.location());
|
||||
tag(forgeTagKey("is_cold")).addTag(forgeTagKey("is_cold/overworld")).addOptionalTag(Tags.Biomes.IS_COLD_NETHER.location()).addTag(forgeTagKey("is_cold/end"));
|
||||
tag(forgeTagKey("is_sparse")).addTag(forgeTagKey("is_sparse/overworld")).addOptionalTag(Tags.Biomes.IS_SPARSE_NETHER.location()).addOptionalTag(Tags.Biomes.IS_SPARSE_END.location());
|
||||
tag(forgeTagKey("is_dense")).addTag(forgeTagKey("is_dense/overworld")).addOptionalTag(Tags.Biomes.IS_DENSE_NETHER.location()).addOptionalTag(Tags.Biomes.IS_DENSE_END.location());
|
||||
tag(forgeTagKey("is_wet")).addTag(forgeTagKey("is_wet/overworld")).addOptionalTag(Tags.Biomes.IS_WET_NETHER.location()).addOptionalTag(Tags.Biomes.IS_WET_END.location());
|
||||
tag(forgeTagKey("is_dry")).addTag(forgeTagKey("is_dry/overworld")).addTag(forgeTagKey("is_dry/nether")).addTag(forgeTagKey("is_dry/end"));
|
||||
tag(forgeTagKey("is_dead"));
|
||||
|
||||
tag(forgeTagKey("is_water")).addTag(BiomeTags.IS_OCEAN).addTag(BiomeTags.IS_RIVER);
|
||||
tag(forgeTagKey("is_mountain")).addTag(forgeTagKey("is_peak")).addTag(forgeTagKey("is_slope"));
|
||||
tag(forgeTagKey("is_underground")).addTag(forgeTagKey("is_cave"));
|
||||
}
|
||||
|
||||
@SafeVarargs
|
||||
@@ -260,6 +316,10 @@ public final class ForgeBiomeTagsProvider extends BiomeTagsProvider {
|
||||
return ResourceLocation.fromNamespaceAndPath("forge", path);
|
||||
}
|
||||
|
||||
private static TagKey<Biome> forgeTagKey(String path) {
|
||||
return BiomeTags.create(ResourceLocation.fromNamespaceAndPath("forge", path));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "Forge Biome Tags";
|
||||
|
||||
@@ -35,22 +35,34 @@ public final class ForgeBlockTagsProvider extends BlockTagsProvider {
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public void addTags(HolderLookup.Provider p_256380_) {
|
||||
tag(BARRELS).addTag(BARRELS_WOODEN);
|
||||
tag(BARRELS_WOODEN).add(Blocks.BARREL);
|
||||
tag(BOOKSHELVES).add(Blocks.BOOKSHELF);
|
||||
tag(BARRELS)
|
||||
.addTag(BARRELS_WOODEN)
|
||||
.addOptionalTag(forgeTagKey("barrels"));
|
||||
tag(BARRELS_WOODEN)
|
||||
.add(Blocks.BARREL)
|
||||
.addOptionalTag(forgeTagKey("barrels/wooden"));
|
||||
tag(BOOKSHELVES)
|
||||
.add(Blocks.BOOKSHELF)
|
||||
.addOptionalTag(forgeTagKey("bookshelves"));
|
||||
tag(BUDDING_BLOCKS).add(Blocks.BUDDING_AMETHYST);
|
||||
tag(BUDS).add(Blocks.SMALL_AMETHYST_BUD).add(Blocks.MEDIUM_AMETHYST_BUD).add(Blocks.LARGE_AMETHYST_BUD);
|
||||
tag(CHAINS).add(Blocks.CHAIN);
|
||||
tag(CHESTS).addTags(CHESTS_ENDER, CHESTS_TRAPPED, CHESTS_WOODEN);
|
||||
tag(CHESTS_ENDER).add(Blocks.ENDER_CHEST);
|
||||
tag(CHESTS_TRAPPED).add(Blocks.TRAPPED_CHEST);
|
||||
tag(CHESTS_WOODEN).add(Blocks.CHEST, Blocks.TRAPPED_CHEST);
|
||||
tag(CHESTS)
|
||||
.addTags(CHESTS_ENDER, CHESTS_TRAPPED, CHESTS_WOODEN)
|
||||
.addOptionalTag(forgeTagKey("chests"));
|
||||
tag(CHESTS_ENDER).add(Blocks.ENDER_CHEST); // forge:chests/ender
|
||||
tag(CHESTS_TRAPPED).add(Blocks.TRAPPED_CHEST); // forge:chests/trapped
|
||||
tag(CHESTS_WOODEN)
|
||||
.add(Blocks.CHEST, Blocks.TRAPPED_CHEST)
|
||||
.addOptionalTag(forgeTagKey("chests/wooden"));
|
||||
tag(CLUSTERS).add(Blocks.AMETHYST_CLUSTER);
|
||||
tag(COBBLESTONES).addTags(COBBLESTONE_NORMAL, COBBLESTONE_INFESTED, COBBLESTONE_MOSSY, COBBLESTONE_DEEPSLATE);
|
||||
tag(COBBLESTONE_NORMAL).add(Blocks.COBBLESTONE);
|
||||
tag(COBBLESTONE_INFESTED).add(Blocks.INFESTED_COBBLESTONE);
|
||||
tag(COBBLESTONE_MOSSY).add(Blocks.MOSSY_COBBLESTONE);
|
||||
tag(COBBLESTONE_DEEPSLATE).add(Blocks.COBBLED_DEEPSLATE);
|
||||
tag(COBBLESTONES)
|
||||
.addTags(COBBLESTONE_NORMAL, COBBLESTONE_INFESTED, COBBLESTONE_MOSSY, COBBLESTONE_DEEPSLATE)
|
||||
.addOptionalTag(forgeTagKey("cobblestone"));
|
||||
tag(COBBLESTONE_NORMAL).add(Blocks.COBBLESTONE); // forge:cobblestone/normal
|
||||
tag(COBBLESTONE_INFESTED).add(Blocks.INFESTED_COBBLESTONE); // forge:cobblestone/infested
|
||||
tag(COBBLESTONE_MOSSY).add(Blocks.MOSSY_COBBLESTONE); // forge:cobblestone/mossy
|
||||
tag(COBBLESTONE_DEEPSLATE).add(Blocks.COBBLED_DEEPSLATE); // forge:cobblestone/deepslate
|
||||
tag(CONCRETES).add(Blocks.WHITE_CONCRETE, Blocks.ORANGE_CONCRETE, Blocks.MAGENTA_CONCRETE, Blocks.LIGHT_BLUE_CONCRETE, Blocks.YELLOW_CONCRETE, Blocks.LIME_CONCRETE, Blocks.PINK_CONCRETE, Blocks.GRAY_CONCRETE, Blocks.LIGHT_GRAY_CONCRETE, Blocks.CYAN_CONCRETE, Blocks.PURPLE_CONCRETE, Blocks.BLUE_CONCRETE, Blocks.BROWN_CONCRETE, Blocks.GREEN_CONCRETE, Blocks.RED_CONCRETE, Blocks.BLACK_CONCRETE);
|
||||
addColored(DYED, "{color}_banner");
|
||||
addColored(DYED, "{color}_bed");
|
||||
@@ -66,58 +78,80 @@ public final class ForgeBlockTagsProvider extends BlockTagsProvider {
|
||||
addColored(DYED, "{color}_wall_banner");
|
||||
addColored(DYED, "{color}_wool");
|
||||
addColoredTags(tag(DYED)::addTag, DYED);
|
||||
tag(END_STONES).add(Blocks.END_STONE);
|
||||
tag(ENDERMAN_PLACE_ON_BLACKLIST);
|
||||
tag(FENCE_GATES).addTags(FENCE_GATES_WOODEN);
|
||||
tag(END_STONES).add(Blocks.END_STONE); // forge:end_stones
|
||||
tag(ENDERMAN_PLACE_ON_BLACKLIST); // forge:enderman_place_on_blacklist
|
||||
tag(FENCE_GATES).addTags(FENCE_GATES_WOODEN); // forge:fence_gates
|
||||
tag(FENCE_GATES_WOODEN).add(Blocks.OAK_FENCE_GATE, Blocks.SPRUCE_FENCE_GATE, Blocks.BIRCH_FENCE_GATE, Blocks.JUNGLE_FENCE_GATE, Blocks.ACACIA_FENCE_GATE, Blocks.DARK_OAK_FENCE_GATE, Blocks.CRIMSON_FENCE_GATE, Blocks.WARPED_FENCE_GATE, Blocks.MANGROVE_FENCE_GATE, Blocks.BAMBOO_FENCE_GATE, Blocks.CHERRY_FENCE_GATE);
|
||||
tag(FENCES).addTags(FENCES_NETHER_BRICK, FENCES_WOODEN);
|
||||
tag(FENCES_NETHER_BRICK).add(Blocks.NETHER_BRICK_FENCE);
|
||||
tag(FENCES_WOODEN).addTag(BlockTags.WOODEN_FENCES);
|
||||
tag(GLASS_BLOCKS).addTags(GLASS_BLOCKS_COLORLESS, GLASS_BLOCKS_CHEAP, GLASS_BLOCKS_TINTED);
|
||||
tag(GLASS_BLOCKS_COLORLESS).add(Blocks.GLASS);
|
||||
tag(GLASS_BLOCKS_CHEAP).add(Blocks.GLASS, Blocks.WHITE_STAINED_GLASS, Blocks.ORANGE_STAINED_GLASS, Blocks.MAGENTA_STAINED_GLASS, Blocks.LIGHT_BLUE_STAINED_GLASS, Blocks.YELLOW_STAINED_GLASS, Blocks.LIME_STAINED_GLASS, Blocks.PINK_STAINED_GLASS, Blocks.GRAY_STAINED_GLASS, Blocks.LIGHT_GRAY_STAINED_GLASS, Blocks.CYAN_STAINED_GLASS, Blocks.PURPLE_STAINED_GLASS, Blocks.BLUE_STAINED_GLASS, Blocks.BROWN_STAINED_GLASS, Blocks.GREEN_STAINED_GLASS, Blocks.RED_STAINED_GLASS, Blocks.BLACK_STAINED_GLASS);
|
||||
tag(GLASS_BLOCKS_TINTED).add(Blocks.TINTED_GLASS);
|
||||
tag(GLASS_PANES).addTags(GLASS_PANES_COLORLESS).add(Blocks.WHITE_STAINED_GLASS_PANE, Blocks.ORANGE_STAINED_GLASS_PANE, Blocks.MAGENTA_STAINED_GLASS_PANE, Blocks.LIGHT_BLUE_STAINED_GLASS_PANE, Blocks.YELLOW_STAINED_GLASS_PANE, Blocks.LIME_STAINED_GLASS_PANE, Blocks.PINK_STAINED_GLASS_PANE, Blocks.GRAY_STAINED_GLASS_PANE, Blocks.LIGHT_GRAY_STAINED_GLASS_PANE, Blocks.CYAN_STAINED_GLASS_PANE, Blocks.PURPLE_STAINED_GLASS_PANE, Blocks.BLUE_STAINED_GLASS_PANE, Blocks.BROWN_STAINED_GLASS_PANE, Blocks.GREEN_STAINED_GLASS_PANE, Blocks.RED_STAINED_GLASS_PANE, Blocks.BLACK_STAINED_GLASS_PANE);
|
||||
tag(GLASS_PANES_COLORLESS).add(Blocks.GLASS_PANE);
|
||||
tag(FENCES).addTags(FENCES_NETHER_BRICK, FENCES_WOODEN); // forge:fences
|
||||
tag(FENCES_NETHER_BRICK).add(Blocks.NETHER_BRICK_FENCE); // forge:fences/nether_brick
|
||||
tag(FENCES_WOODEN).addTag(BlockTags.WOODEN_FENCES); // forge:fences/wooden
|
||||
tag(GLASS_BLOCKS)
|
||||
.addTags(GLASS_BLOCKS_COLORLESS, GLASS_BLOCKS_CHEAP, GLASS_BLOCKS_TINTED)
|
||||
.addOptionalTag(forgeTagKey("glass"));
|
||||
tag(GLASS_BLOCKS_COLORLESS)
|
||||
.add(Blocks.GLASS)
|
||||
.addOptionalTag(forgeTagKey("glass/colorless"));
|
||||
tag(GLASS_BLOCKS_CHEAP)
|
||||
.add(Blocks.GLASS, Blocks.WHITE_STAINED_GLASS, Blocks.ORANGE_STAINED_GLASS, Blocks.MAGENTA_STAINED_GLASS, Blocks.LIGHT_BLUE_STAINED_GLASS, Blocks.YELLOW_STAINED_GLASS, Blocks.LIME_STAINED_GLASS, Blocks.PINK_STAINED_GLASS, Blocks.GRAY_STAINED_GLASS, Blocks.LIGHT_GRAY_STAINED_GLASS, Blocks.CYAN_STAINED_GLASS, Blocks.PURPLE_STAINED_GLASS, Blocks.BLUE_STAINED_GLASS, Blocks.BROWN_STAINED_GLASS, Blocks.GREEN_STAINED_GLASS, Blocks.RED_STAINED_GLASS, Blocks.BLACK_STAINED_GLASS)
|
||||
.addOptionalTag(forgeTagKey("glass/silica"));
|
||||
tag(GLASS_BLOCKS_TINTED)
|
||||
.add(Blocks.TINTED_GLASS)
|
||||
.addOptionalTag(forgeTagKey("glass/tinted"));
|
||||
tag(GLASS_PANES)
|
||||
.addTags(GLASS_PANES_COLORLESS).add(Blocks.WHITE_STAINED_GLASS_PANE, Blocks.ORANGE_STAINED_GLASS_PANE, Blocks.MAGENTA_STAINED_GLASS_PANE, Blocks.LIGHT_BLUE_STAINED_GLASS_PANE, Blocks.YELLOW_STAINED_GLASS_PANE, Blocks.LIME_STAINED_GLASS_PANE, Blocks.PINK_STAINED_GLASS_PANE, Blocks.GRAY_STAINED_GLASS_PANE, Blocks.LIGHT_GRAY_STAINED_GLASS_PANE, Blocks.CYAN_STAINED_GLASS_PANE, Blocks.PURPLE_STAINED_GLASS_PANE, Blocks.BLUE_STAINED_GLASS_PANE, Blocks.BROWN_STAINED_GLASS_PANE, Blocks.GREEN_STAINED_GLASS_PANE, Blocks.RED_STAINED_GLASS_PANE, Blocks.BLACK_STAINED_GLASS_PANE)
|
||||
.addOptionalTag(forgeTagKey("glass_panes"));
|
||||
tag(GLASS_PANES_COLORLESS)
|
||||
.add(Blocks.GLASS_PANE)
|
||||
.addOptionalTag(forgeTagKey("glass_panes/colorless"));
|
||||
tag(GLAZED_TERRACOTTAS).add(Blocks.WHITE_GLAZED_TERRACOTTA, Blocks.ORANGE_GLAZED_TERRACOTTA, Blocks.MAGENTA_GLAZED_TERRACOTTA, Blocks.LIGHT_BLUE_GLAZED_TERRACOTTA, Blocks.YELLOW_GLAZED_TERRACOTTA, Blocks.LIME_GLAZED_TERRACOTTA, Blocks.PINK_GLAZED_TERRACOTTA, Blocks.GRAY_GLAZED_TERRACOTTA, Blocks.LIGHT_GRAY_GLAZED_TERRACOTTA, Blocks.CYAN_GLAZED_TERRACOTTA, Blocks.PURPLE_GLAZED_TERRACOTTA, Blocks.BLUE_GLAZED_TERRACOTTA, Blocks.BROWN_GLAZED_TERRACOTTA, Blocks.GREEN_GLAZED_TERRACOTTA, Blocks.RED_GLAZED_TERRACOTTA, Blocks.BLACK_GLAZED_TERRACOTTA);
|
||||
tag(GRAVEL).add(Blocks.GRAVEL);
|
||||
tag(GRAVEL).add(Blocks.GRAVEL); // forge:gravel
|
||||
tag(SKULLS).add(Blocks.SKELETON_SKULL, Blocks.SKELETON_WALL_SKULL, Blocks.WITHER_SKELETON_SKULL, Blocks.WITHER_SKELETON_WALL_SKULL, Blocks.PLAYER_HEAD, Blocks.PLAYER_WALL_HEAD, Blocks.ZOMBIE_HEAD, Blocks.ZOMBIE_WALL_HEAD, Blocks.CREEPER_HEAD, Blocks.CREEPER_WALL_HEAD, Blocks.PIGLIN_HEAD, Blocks.PIGLIN_WALL_HEAD, Blocks.DRAGON_HEAD, Blocks.DRAGON_WALL_HEAD);
|
||||
tag(HIDDEN_FROM_RECIPE_VIEWERS);
|
||||
tag(NETHERRACK).add(Blocks.NETHERRACK);
|
||||
tag(NETHERRACK).add(Blocks.NETHERRACK); // forge:netherrack
|
||||
tag(OBSIDIANS_NORMAL).add(Blocks.OBSIDIAN);
|
||||
tag(OBSIDIANS_CRYING).add(Blocks.CRYING_OBSIDIAN);
|
||||
tag(OBSIDIANS).addTags(OBSIDIANS_NORMAL, OBSIDIANS_CRYING);
|
||||
tag(ORE_BEARING_GROUND_DEEPSLATE).add(Blocks.DEEPSLATE);
|
||||
tag(ORE_BEARING_GROUND_NETHERRACK).add(Blocks.NETHERRACK);
|
||||
tag(ORE_BEARING_GROUND_STONE).add(Blocks.STONE);
|
||||
tag(OBSIDIANS)
|
||||
.addTags(OBSIDIANS_NORMAL, OBSIDIANS_CRYING)
|
||||
.addOptionalTag(forgeTagKey("obsidian"));
|
||||
tag(ORE_BEARING_GROUND_DEEPSLATE).add(Blocks.DEEPSLATE); // forge:ore_bearing_ground/deepslate
|
||||
tag(ORE_BEARING_GROUND_NETHERRACK).add(Blocks.NETHERRACK); // forge:ore_bearing_ground/netherrack
|
||||
tag(ORE_BEARING_GROUND_STONE).add(Blocks.STONE); // forge:ore_bearing_ground/stone
|
||||
tag(ORE_RATES_DENSE).add(Blocks.COPPER_ORE, Blocks.DEEPSLATE_COPPER_ORE, Blocks.DEEPSLATE_LAPIS_ORE, Blocks.DEEPSLATE_REDSTONE_ORE, Blocks.LAPIS_ORE, Blocks.REDSTONE_ORE);
|
||||
tag(ORE_RATES_SINGULAR).add(Blocks.ANCIENT_DEBRIS, Blocks.COAL_ORE, Blocks.DEEPSLATE_COAL_ORE, Blocks.DEEPSLATE_DIAMOND_ORE, Blocks.DEEPSLATE_EMERALD_ORE, Blocks.DEEPSLATE_GOLD_ORE, Blocks.DEEPSLATE_IRON_ORE, Blocks.DIAMOND_ORE, Blocks.EMERALD_ORE, Blocks.GOLD_ORE, Blocks.IRON_ORE, Blocks.NETHER_QUARTZ_ORE);
|
||||
tag(ORE_RATES_SPARSE).add(Blocks.NETHER_GOLD_ORE);
|
||||
tag(ORES).addTags(ORES_COAL, ORES_COPPER, ORES_DIAMOND, ORES_EMERALD, ORES_GOLD, ORES_IRON, ORES_LAPIS, ORES_NETHERITE_SCRAP, ORES_REDSTONE, ORES_QUARTZ);
|
||||
tag(ORES_COAL).addTag(BlockTags.COAL_ORES);
|
||||
tag(ORES_COPPER).addTag(BlockTags.COPPER_ORES);
|
||||
tag(ORES_DIAMOND).addTag(BlockTags.DIAMOND_ORES);
|
||||
tag(ORES_EMERALD).addTag(BlockTags.EMERALD_ORES);
|
||||
tag(ORES_GOLD).addTag(BlockTags.GOLD_ORES);
|
||||
tag(ORES_IRON).addTag(BlockTags.IRON_ORES);
|
||||
tag(ORES_LAPIS).addTag(BlockTags.LAPIS_ORES);
|
||||
tag(ORES_QUARTZ).add(Blocks.NETHER_QUARTZ_ORE);
|
||||
tag(ORES_REDSTONE).addTag(BlockTags.REDSTONE_ORES);
|
||||
tag(ORES_NETHERITE_SCRAP).add(Blocks.ANCIENT_DEBRIS);
|
||||
tag(ORES)
|
||||
.addTags(ORES_COAL, ORES_COPPER, ORES_DIAMOND, ORES_EMERALD, ORES_GOLD, ORES_IRON, ORES_LAPIS, ORES_NETHERITE_SCRAP, ORES_REDSTONE, ORES_QUARTZ)
|
||||
.addOptionalTag(forgeTagKey("ores"));
|
||||
tag(ORES_COAL).addTag(BlockTags.COAL_ORES); // forge:ores/coal
|
||||
tag(ORES_COPPER).addTag(BlockTags.COPPER_ORES); // forge:ores/copper
|
||||
tag(ORES_DIAMOND).addTag(BlockTags.DIAMOND_ORES); // forge:ores/diamond
|
||||
tag(ORES_EMERALD).addTag(BlockTags.EMERALD_ORES); // forge:ores/emerald
|
||||
tag(ORES_GOLD).addTag(BlockTags.GOLD_ORES); // forge:ores/gold
|
||||
tag(ORES_IRON).addTag(BlockTags.IRON_ORES); // forge:ores/iron
|
||||
tag(ORES_LAPIS).addTag(BlockTags.LAPIS_ORES); // forge:ores/lapis
|
||||
tag(ORES_QUARTZ)
|
||||
.add(Blocks.NETHER_QUARTZ_ORE)
|
||||
.addOptionalTag(forgeTagKey("ores/quartz"));
|
||||
tag(ORES_REDSTONE).addTag(BlockTags.REDSTONE_ORES); // forge:ores/redstone
|
||||
tag(ORES_NETHERITE_SCRAP)
|
||||
.add(Blocks.ANCIENT_DEBRIS)
|
||||
.addOptionalTag(forgeTagKey("ores/netherite_scrap"));
|
||||
tag(ORES_IN_GROUND_DEEPSLATE).add(Blocks.DEEPSLATE_COAL_ORE, Blocks.DEEPSLATE_COPPER_ORE, Blocks.DEEPSLATE_DIAMOND_ORE, Blocks.DEEPSLATE_EMERALD_ORE, Blocks.DEEPSLATE_GOLD_ORE, Blocks.DEEPSLATE_IRON_ORE, Blocks.DEEPSLATE_LAPIS_ORE, Blocks.DEEPSLATE_REDSTONE_ORE);
|
||||
tag(ORES_IN_GROUND_NETHERRACK).add(Blocks.NETHER_GOLD_ORE, Blocks.NETHER_QUARTZ_ORE);
|
||||
tag(ORES_IN_GROUND_STONE).add(Blocks.COAL_ORE, Blocks.COPPER_ORE, Blocks.DIAMOND_ORE, Blocks.EMERALD_ORE, Blocks.GOLD_ORE, Blocks.IRON_ORE, Blocks.LAPIS_ORE, Blocks.REDSTONE_ORE);
|
||||
tag(PLAYER_WORKSTATIONS_CRAFTING_TABLES).add(Blocks.CRAFTING_TABLE);
|
||||
tag(PLAYER_WORKSTATIONS_FURNACES).add(Blocks.FURNACE);
|
||||
tag(SAND).addTags(SAND_COLORLESS, SAND_RED);
|
||||
tag(SAND).addTags(SAND_COLORLESS, SAND_RED); // forge:sand
|
||||
tag(RELOCATION_NOT_SUPPORTED);
|
||||
tag(ROPES);
|
||||
tag(SAND_COLORLESS).add(Blocks.SAND);
|
||||
tag(SAND_RED).add(Blocks.RED_SAND);
|
||||
tag(SAND_COLORLESS).add(Blocks.SAND); // forge:sand/colorless
|
||||
tag(SAND_RED).add(Blocks.RED_SAND); // forge:sand/red
|
||||
|
||||
tag(SANDSTONE_RED_BLOCKS).add(Blocks.RED_SANDSTONE, Blocks.CUT_RED_SANDSTONE, Blocks.CHISELED_RED_SANDSTONE, Blocks.SMOOTH_RED_SANDSTONE);
|
||||
tag(SANDSTONE_UNCOLORED_BLOCKS).add(Blocks.SANDSTONE, Blocks.CUT_SANDSTONE, Blocks.CHISELED_SANDSTONE, Blocks.SMOOTH_SANDSTONE);
|
||||
tag(SANDSTONE_BLOCKS).addTags(SANDSTONE_RED_BLOCKS, SANDSTONE_UNCOLORED_BLOCKS);
|
||||
tag(SANDSTONE_BLOCKS)
|
||||
.addTags(SANDSTONE_RED_BLOCKS, SANDSTONE_UNCOLORED_BLOCKS)
|
||||
.addOptionalTag(forgeTagKey("sandstone"));
|
||||
tag(SANDSTONE_RED_SLABS).add(Blocks.RED_SANDSTONE_SLAB, Blocks.CUT_RED_SANDSTONE_SLAB, Blocks.SMOOTH_RED_SANDSTONE_SLAB);
|
||||
tag(SANDSTONE_UNCOLORED_SLABS).add(Blocks.SANDSTONE_SLAB, Blocks.CUT_SANDSTONE_SLAB, Blocks.SMOOTH_SANDSTONE_SLAB);
|
||||
tag(SANDSTONE_SLABS).addTags(SANDSTONE_RED_SLABS, SANDSTONE_UNCOLORED_SLABS);
|
||||
@@ -125,27 +159,61 @@ public final class ForgeBlockTagsProvider extends BlockTagsProvider {
|
||||
tag(SANDSTONE_UNCOLORED_STAIRS).add(Blocks.SANDSTONE_STAIRS, Blocks.SMOOTH_SANDSTONE_STAIRS);
|
||||
tag(SANDSTONE_STAIRS).addTags(SANDSTONE_RED_STAIRS, SANDSTONE_UNCOLORED_STAIRS);
|
||||
|
||||
tag(STONES).add(Blocks.ANDESITE, Blocks.DIORITE, Blocks.GRANITE, Blocks.STONE, Blocks.DEEPSLATE, Blocks.TUFF);
|
||||
tag(STORAGE_BLOCKS).addTags(STORAGE_BLOCKS_BONE_MEAL, STORAGE_BLOCKS_COAL,
|
||||
tag(STONES)
|
||||
.add(Blocks.ANDESITE, Blocks.DIORITE, Blocks.GRANITE, Blocks.STONE, Blocks.DEEPSLATE, Blocks.TUFF);
|
||||
//.addOptionalTag(forgeTagKey("stone")); // can't add this because it would include infested/polished variants which aren't contained in Fabric's `c:stones`
|
||||
tag(STORAGE_BLOCKS)
|
||||
.addTags(STORAGE_BLOCKS_BONE_MEAL, STORAGE_BLOCKS_COAL,
|
||||
STORAGE_BLOCKS_COPPER, STORAGE_BLOCKS_DIAMOND, STORAGE_BLOCKS_DRIED_KELP,
|
||||
STORAGE_BLOCKS_EMERALD, STORAGE_BLOCKS_GOLD, STORAGE_BLOCKS_IRON,
|
||||
STORAGE_BLOCKS_LAPIS, STORAGE_BLOCKS_NETHERITE, STORAGE_BLOCKS_RAW_COPPER,
|
||||
STORAGE_BLOCKS_RAW_GOLD, STORAGE_BLOCKS_RAW_IRON, STORAGE_BLOCKS_REDSTONE,
|
||||
STORAGE_BLOCKS_SLIME, STORAGE_BLOCKS_WHEAT);
|
||||
STORAGE_BLOCKS_SLIME, STORAGE_BLOCKS_WHEAT)
|
||||
//.addOptionalTag(forgeTagKey("storage_blocks")); // can't add this because it would include contents from the non-common forge:storage_blocks/amethyst and forge:storage_blocks/quartz, which are not in the c namespace
|
||||
.addOptionalTags(forgeTagKey("storage_blocks/coal"), forgeTagKey("storage_blocks/copper"),
|
||||
forgeTagKey("storage_blocks/diamond"), forgeTagKey("storage_blocks/emerald"),
|
||||
forgeTagKey("storage_blocks/gold"), forgeTagKey("storage_blocks/iron"),
|
||||
forgeTagKey("storage_blocks/lapis"), forgeTagKey("storage_blocks/netherite"),
|
||||
forgeTagKey("storage_blocks/raw_copper"), forgeTagKey("storage_blocks/raw_gold"),
|
||||
forgeTagKey("storage_blocks/raw_iron"), forgeTagKey("storage_blocks/redstone"));
|
||||
tag(STORAGE_BLOCKS_BONE_MEAL).add(Blocks.BONE_BLOCK);
|
||||
tag(STORAGE_BLOCKS_COAL).add(Blocks.COAL_BLOCK);
|
||||
tag(STORAGE_BLOCKS_COPPER).add(Blocks.COPPER_BLOCK);
|
||||
tag(STORAGE_BLOCKS_DIAMOND).add(Blocks.DIAMOND_BLOCK);
|
||||
tag(STORAGE_BLOCKS_COAL)
|
||||
.add(Blocks.COAL_BLOCK)
|
||||
.addOptionalTag(forgeTagKey("storage_blocks/coal"));
|
||||
tag(STORAGE_BLOCKS_COPPER)
|
||||
.add(Blocks.COPPER_BLOCK)
|
||||
.addOptionalTag(forgeTagKey("storage_blocks/copper"));
|
||||
tag(STORAGE_BLOCKS_DIAMOND)
|
||||
.add(Blocks.DIAMOND_BLOCK)
|
||||
.addOptionalTag(forgeTagKey("storage_blocks/diamond"));
|
||||
tag(STORAGE_BLOCKS_DRIED_KELP).add(Blocks.DRIED_KELP_BLOCK);
|
||||
tag(STORAGE_BLOCKS_EMERALD).add(Blocks.EMERALD_BLOCK);
|
||||
tag(STORAGE_BLOCKS_GOLD).add(Blocks.GOLD_BLOCK);
|
||||
tag(STORAGE_BLOCKS_IRON).add(Blocks.IRON_BLOCK);
|
||||
tag(STORAGE_BLOCKS_LAPIS).add(Blocks.LAPIS_BLOCK);
|
||||
tag(STORAGE_BLOCKS_NETHERITE).add(Blocks.NETHERITE_BLOCK);
|
||||
tag(STORAGE_BLOCKS_RAW_COPPER).add(Blocks.RAW_COPPER_BLOCK);
|
||||
tag(STORAGE_BLOCKS_RAW_GOLD).add(Blocks.RAW_GOLD_BLOCK);
|
||||
tag(STORAGE_BLOCKS_RAW_IRON).add(Blocks.RAW_IRON_BLOCK);
|
||||
tag(STORAGE_BLOCKS_REDSTONE).add(Blocks.REDSTONE_BLOCK);
|
||||
tag(STORAGE_BLOCKS_EMERALD)
|
||||
.add(Blocks.EMERALD_BLOCK)
|
||||
.addOptionalTag(forgeTagKey("storage_blocks/emerald"));
|
||||
tag(STORAGE_BLOCKS_GOLD)
|
||||
.add(Blocks.GOLD_BLOCK)
|
||||
.addOptionalTag(forgeTagKey("storage_blocks/gold"));
|
||||
tag(STORAGE_BLOCKS_IRON)
|
||||
.add(Blocks.IRON_BLOCK)
|
||||
.addOptionalTag(forgeTagKey("storage_blocks/iron"));
|
||||
tag(STORAGE_BLOCKS_LAPIS)
|
||||
.add(Blocks.LAPIS_BLOCK)
|
||||
.addOptionalTag(forgeTagKey("storage_blocks/lapis"));
|
||||
tag(STORAGE_BLOCKS_NETHERITE)
|
||||
.add(Blocks.NETHERITE_BLOCK)
|
||||
.addOptionalTag(forgeTagKey("storage_blocks/netherite"));
|
||||
tag(STORAGE_BLOCKS_RAW_COPPER)
|
||||
.add(Blocks.RAW_COPPER_BLOCK)
|
||||
.addOptionalTag(forgeTagKey("storage_blocks/raw_copper"));
|
||||
tag(STORAGE_BLOCKS_RAW_GOLD)
|
||||
.add(Blocks.RAW_GOLD_BLOCK)
|
||||
.addOptionalTag(forgeTagKey("storage_blocks/raw_gold"));
|
||||
tag(STORAGE_BLOCKS_RAW_IRON)
|
||||
.add(Blocks.RAW_IRON_BLOCK)
|
||||
.addOptionalTag(forgeTagKey("storage_blocks/raw_iron"));
|
||||
tag(STORAGE_BLOCKS_REDSTONE)
|
||||
.add(Blocks.REDSTONE_BLOCK)
|
||||
.addOptionalTag(forgeTagKey("storage_blocks/redstone"));
|
||||
tag(STORAGE_BLOCKS_SLIME).add(Blocks.SLIME_BLOCK);
|
||||
tag(STORAGE_BLOCKS_WHEAT).add(Blocks.HAY_BLOCK);
|
||||
tag(VILLAGER_JOB_SITES).add(
|
||||
@@ -154,104 +222,44 @@ public final class ForgeBlockTagsProvider extends BlockTagsProvider {
|
||||
Blocks.COMPOSTER, Blocks.FLETCHING_TABLE, Blocks.GRINDSTONE, Blocks.LECTERN,
|
||||
Blocks.LOOM, Blocks.SMITHING_TABLE, Blocks.SMOKER, Blocks.STONECUTTER);
|
||||
|
||||
// Backwards compat with pre-1.21 tags. Done after so optional tag is last for better readability.
|
||||
// Backwards compat definitions for pre-1.21 legacy `forge:` tags.
|
||||
// TODO: Remove backwards compat tag entries in 1.22
|
||||
tagWithOptionalLegacy(BARRELS);
|
||||
tagWithOptionalLegacy(BARRELS_WOODEN);
|
||||
tagWithOptionalLegacy(BOOKSHELVES);
|
||||
tagWithOptionalLegacy(CHESTS);
|
||||
tag(CHESTS_ENDER);
|
||||
tag(CHESTS_TRAPPED);
|
||||
tagWithOptionalLegacy(CHESTS_WOODEN);
|
||||
tag(COBBLESTONES).addOptionalTag(forgeRl("cobblestone"));
|
||||
tag(DYED_BLACK)
|
||||
.addOptionalTag(forgeRl("glass/black"))
|
||||
.addOptionalTag(forgeRl("stained_glass/black"));
|
||||
tag(DYED_BLUE)
|
||||
.addOptionalTag(forgeRl("glass/blue"))
|
||||
.addOptionalTag(forgeRl("stained_glass/blue"));
|
||||
tag(DYED_BROWN)
|
||||
.addOptionalTag(forgeRl("glass/brown"))
|
||||
.addOptionalTag(forgeRl("stained_glass/brown"));
|
||||
tag(DYED_CYAN)
|
||||
.addOptionalTag(forgeRl("glass/cyan"))
|
||||
.addOptionalTag(forgeRl("stained_glass/cyan"));
|
||||
tag(DYED_GRAY)
|
||||
.addOptionalTag(forgeRl("glass/gray"))
|
||||
.addOptionalTag(forgeRl("stained_glass/gray"));
|
||||
tag(DYED_GREEN)
|
||||
.addOptionalTag(forgeRl("glass/green"))
|
||||
.addOptionalTag(forgeRl("stained_glass/green"));
|
||||
tag(DYED_LIGHT_BLUE)
|
||||
.addOptionalTag(forgeRl("glass/light_blue"))
|
||||
.addOptionalTag(forgeRl("stained_glass/light_blue"));
|
||||
tag(DYED_LIGHT_GRAY)
|
||||
.addOptionalTag(forgeRl("glass/light_gray"))
|
||||
.addOptionalTag(forgeRl("stained_glass/light_gray"));
|
||||
tag(DYED_LIME)
|
||||
.addOptionalTag(forgeRl("glass/lime"))
|
||||
.addOptionalTag(forgeRl("stained_glass/lime"));
|
||||
tag(DYED_MAGENTA)
|
||||
.addOptionalTag(forgeRl("glass/magenta"))
|
||||
.addOptionalTag(forgeRl("stained_glass/magenta"));
|
||||
tag(DYED_MAGENTA)
|
||||
.addOptionalTag(forgeRl("glass/magenta"))
|
||||
.addOptionalTag(forgeRl("stained_glass/magenta"));
|
||||
tag(DYED_ORANGE)
|
||||
.addOptionalTag(forgeRl("glass/orange"))
|
||||
.addOptionalTag(forgeRl("stained_glass/orange"));
|
||||
tag(DYED_PINK)
|
||||
.addOptionalTag(forgeRl("glass/pink"))
|
||||
.addOptionalTag(forgeRl("stained_glass/pink"));
|
||||
tag(DYED_PURPLE)
|
||||
.addOptionalTag(forgeRl("glass/purple"))
|
||||
.addOptionalTag(forgeRl("stained_glass/purple"));
|
||||
tag(DYED_RED)
|
||||
.addOptionalTag(forgeRl("glass/red"))
|
||||
.addOptionalTag(forgeRl("stained_glass/red"));
|
||||
tag(DYED_WHITE)
|
||||
.addOptionalTag(forgeRl("glass/white"))
|
||||
.addOptionalTag(forgeRl("stained_glass/white"));
|
||||
tag(DYED_YELLOW)
|
||||
.addOptionalTag(forgeRl("glass/yellow"))
|
||||
.addOptionalTag(forgeRl("stained_glass/yellow"));
|
||||
tagWithOptionalLegacy(ENDERMAN_PLACE_ON_BLACKLIST);
|
||||
tag(GLASS_BLOCKS).addOptionalTag(forgeRl("glass"));
|
||||
tag(GLASS_BLOCKS_COLORLESS).addOptionalTag(forgeRl("glass_colorless"));
|
||||
tag(GLASS_BLOCKS_CHEAP).addOptionalTag(forgeRl("glass_silica"));
|
||||
tag(GLASS_BLOCKS_TINTED).addOptionalTag(forgeRl("glass_tinted"));
|
||||
tag(GLASS_PANES_COLORLESS).addOptionalTag(forgeRl("glass_panes_colorless"));
|
||||
tag(OBSIDIANS).addOptionalTag(forgeRl("obsidian"));
|
||||
tagWithOptionalLegacy(ORES);
|
||||
tagWithOptionalLegacy(ORES_QUARTZ);
|
||||
tagWithOptionalLegacy(ORES_NETHERITE_SCRAP);
|
||||
tag(STONES).addOptionalTag(forgeRl("stone"));
|
||||
tagWithOptionalLegacy(STORAGE_BLOCKS);
|
||||
tagWithOptionalLegacy(STORAGE_BLOCKS_COAL);
|
||||
tagWithOptionalLegacy(STORAGE_BLOCKS_COPPER);
|
||||
tagWithOptionalLegacy(STORAGE_BLOCKS_DIAMOND);
|
||||
tagWithOptionalLegacy(STORAGE_BLOCKS_EMERALD);
|
||||
tagWithOptionalLegacy(STORAGE_BLOCKS_GOLD);
|
||||
tagWithOptionalLegacy(STORAGE_BLOCKS_IRON);
|
||||
tagWithOptionalLegacy(STORAGE_BLOCKS_LAPIS);
|
||||
tagWithOptionalLegacy(STORAGE_BLOCKS_RAW_COPPER);
|
||||
tagWithOptionalLegacy(STORAGE_BLOCKS_RAW_GOLD);
|
||||
tagWithOptionalLegacy(STORAGE_BLOCKS_RAW_IRON);
|
||||
tagWithOptionalLegacy(STORAGE_BLOCKS_REDSTONE);
|
||||
tagWithOptionalLegacy(STORAGE_BLOCKS_NETHERITE);
|
||||
tag(RELOCATION_NOT_SUPPORTED)
|
||||
.addOptionalTag(forgeRl("relocation_not_supported"))
|
||||
.addOptionalTag(forgeRl("immovable"));
|
||||
tag(SANDSTONE_BLOCKS).addOptionalTag(forgeRl("sandstone"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Shorthand for {@code tag(tag).addOptionalTag(forgeRl(tag.location().getPath()))}
|
||||
*/
|
||||
private IntrinsicHolderTagsProvider.IntrinsicTagAppender<Block> tagWithOptionalLegacy(TagKey<Block> tag) {
|
||||
IntrinsicHolderTagsProvider.IntrinsicTagAppender<Block> tagAppender = tag(tag);
|
||||
tagAppender.addOptionalTag(forgeRl(tag.location().getPath()));
|
||||
return tagAppender;
|
||||
tag(forgeTagKey("barrels")).addTag(forgeTagKey("barrels/wooden"));
|
||||
tag(forgeTagKey("barrels/wooden")).add(Blocks.BARREL);
|
||||
tag(forgeTagKey("bookshelves")).add(Blocks.BOOKSHELF);
|
||||
tag(forgeTagKey("chests")).addTags(forgeTagKey("chests/ender"), forgeTagKey("chests/trapped"), forgeTagKey("chests/wooden"));
|
||||
tag(forgeTagKey("chests/wooden")).add(Blocks.CHEST, Blocks.TRAPPED_CHEST);
|
||||
tag(forgeTagKey("cobblestone")).addTags(forgeTagKey("cobblestone/normal"), forgeTagKey("cobblestone/infested"), forgeTagKey("cobblestone/mossy"), forgeTagKey("cobblestone/deepslate"));
|
||||
tag(forgeTagKey("glass")).addTags(forgeTagKey("glass/colorless"), forgeTagKey("stained_glass"), forgeTagKey("glass/tinted"));
|
||||
tag(forgeTagKey("glass/colorless")).add(Blocks.GLASS);
|
||||
tag(forgeTagKey("glass/silica")).add(Blocks.GLASS, Blocks.BLACK_STAINED_GLASS, Blocks.BLUE_STAINED_GLASS, Blocks.BROWN_STAINED_GLASS, Blocks.CYAN_STAINED_GLASS, Blocks.GRAY_STAINED_GLASS, Blocks.GREEN_STAINED_GLASS, Blocks.LIGHT_BLUE_STAINED_GLASS, Blocks.LIGHT_GRAY_STAINED_GLASS, Blocks.LIME_STAINED_GLASS, Blocks.MAGENTA_STAINED_GLASS, Blocks.ORANGE_STAINED_GLASS, Blocks.PINK_STAINED_GLASS, Blocks.PURPLE_STAINED_GLASS, Blocks.RED_STAINED_GLASS, Blocks.WHITE_STAINED_GLASS, Blocks.YELLOW_STAINED_GLASS);
|
||||
tag(forgeTagKey("glass/tinted")).add(Blocks.TINTED_GLASS);
|
||||
addColored(tag(forgeTagKey("stained_glass"))::add, forgeTagKey("glass"), "{color}_stained_glass");
|
||||
tag(forgeTagKey("glass_panes")).addTags(forgeTagKey("glass_panes/colorless"), forgeTagKey("stained_glass_panes"));
|
||||
tag(forgeTagKey("glass_panes/colorless")).add(Blocks.GLASS_PANE);
|
||||
addColored(tag(forgeTagKey("stained_glass_panes"))::add, forgeTagKey("glass_panes"), "{color}_stained_glass_pane");
|
||||
tag(forgeTagKey("obsidian")).add(Blocks.OBSIDIAN);
|
||||
tag(forgeTagKey("ores")).addTags(forgeTagKey("ores/coal"), forgeTagKey("ores/copper"), forgeTagKey("ores/diamond"), forgeTagKey("ores/emerald"), forgeTagKey("ores/gold"), forgeTagKey("ores/iron"), forgeTagKey("ores/lapis"), forgeTagKey("ores/redstone"), forgeTagKey("ores/quartz"), forgeTagKey("ores/netherite_scrap"));
|
||||
tag(forgeTagKey("ores/quartz")).add(Blocks.NETHER_QUARTZ_ORE);
|
||||
tag(forgeTagKey("ores/netherite_scrap")).add(Blocks.ANCIENT_DEBRIS);
|
||||
tag(forgeTagKey("sandstone")).add(Blocks.SANDSTONE, Blocks.CUT_SANDSTONE, Blocks.CHISELED_SANDSTONE, Blocks.SMOOTH_SANDSTONE, Blocks.RED_SANDSTONE, Blocks.CUT_RED_SANDSTONE, Blocks.CHISELED_RED_SANDSTONE, Blocks.SMOOTH_RED_SANDSTONE);
|
||||
tag(forgeTagKey("stone")).add(Blocks.ANDESITE, Blocks.DIORITE, Blocks.GRANITE, Blocks.INFESTED_STONE, Blocks.STONE, Blocks.POLISHED_ANDESITE, Blocks.POLISHED_DIORITE, Blocks.POLISHED_GRANITE, Blocks.DEEPSLATE, Blocks.POLISHED_DEEPSLATE, Blocks.INFESTED_DEEPSLATE, Blocks.TUFF);
|
||||
tag(forgeTagKey("storage_blocks"))
|
||||
.addTags(forgeTagKey("storage_blocks/amethyst"), forgeTagKey("storage_blocks/coal"), forgeTagKey("storage_blocks/copper"), forgeTagKey("storage_blocks/diamond"), forgeTagKey("storage_blocks/emerald"), forgeTagKey("storage_blocks/gold"), forgeTagKey("storage_blocks/iron"), forgeTagKey("storage_blocks/lapis"), forgeTagKey("storage_blocks/quartz"), forgeTagKey("storage_blocks/raw_copper"), forgeTagKey("storage_blocks/raw_gold"), forgeTagKey("storage_blocks/raw_iron"), forgeTagKey("storage_blocks/redstone"), forgeTagKey("storage_blocks/netherite"));
|
||||
tag(forgeTagKey("storage_blocks/amethyst")).add(Blocks.AMETHYST_BLOCK);
|
||||
tag(forgeTagKey("storage_blocks/coal")).add(Blocks.COAL_BLOCK);
|
||||
tag(forgeTagKey("storage_blocks/copper")).add(Blocks.COPPER_BLOCK);
|
||||
tag(forgeTagKey("storage_blocks/diamond")).add(Blocks.DIAMOND_BLOCK);
|
||||
tag(forgeTagKey("storage_blocks/emerald")).add(Blocks.EMERALD_BLOCK);
|
||||
tag(forgeTagKey("storage_blocks/gold")).add(Blocks.GOLD_BLOCK);
|
||||
tag(forgeTagKey("storage_blocks/iron")).add(Blocks.IRON_BLOCK);
|
||||
tag(forgeTagKey("storage_blocks/lapis")).add(Blocks.LAPIS_BLOCK);
|
||||
tag(forgeTagKey("storage_blocks/quartz")).add(Blocks.QUARTZ_BLOCK);
|
||||
tag(forgeTagKey("storage_blocks/raw_copper")).add(Blocks.RAW_COPPER_BLOCK);
|
||||
tag(forgeTagKey("storage_blocks/raw_gold")).add(Blocks.RAW_GOLD_BLOCK);
|
||||
tag(forgeTagKey("storage_blocks/raw_iron")).add(Blocks.RAW_IRON_BLOCK);
|
||||
tag(forgeTagKey("storage_blocks/redstone")).add(Blocks.REDSTONE_BLOCK);
|
||||
tag(forgeTagKey("storage_blocks/netherite")).add(Blocks.NETHERITE_BLOCK);
|
||||
}
|
||||
|
||||
private void addColored(TagKey<Block> group, String pattern) {
|
||||
@@ -266,6 +274,19 @@ public final class ForgeBlockTagsProvider extends BlockTagsProvider {
|
||||
}
|
||||
}
|
||||
|
||||
private void addColored(Consumer<Block> consumer, TagKey<Block> group, String pattern) {
|
||||
String prefix = group.location().getPath().toUpperCase(Locale.ENGLISH) + '_';
|
||||
for (DyeColor color : DyeColor.values()) {
|
||||
ResourceLocation key = ResourceLocation.fromNamespaceAndPath("minecraft", pattern.replace("{color}", color.getName()));
|
||||
TagKey<Block> tag = getForgeTag(prefix + color.getName());
|
||||
Block block = ForgeRegistries.BLOCKS.getValue(key);
|
||||
if (block == null || block == Blocks.AIR)
|
||||
throw new IllegalStateException("Unknown vanilla block: " + key.toString());
|
||||
tag(tag).add(block);
|
||||
consumer.accept(block);
|
||||
}
|
||||
}
|
||||
|
||||
private static void addColoredTags(Consumer<TagKey<Block>> consumer, TagKey<Block> group) {
|
||||
String prefix = group.location().getPath().toUpperCase(Locale.ENGLISH) + '_';
|
||||
for (var color : DyeColor.values()) {
|
||||
@@ -284,8 +305,8 @@ public final class ForgeBlockTagsProvider extends BlockTagsProvider {
|
||||
}
|
||||
}
|
||||
|
||||
private static ResourceLocation forgeRl(String path) {
|
||||
return ResourceLocation.fromNamespaceAndPath("forge", path);
|
||||
private static TagKey<Block> forgeTagKey(String path) {
|
||||
return BlockTags.create(ResourceLocation.fromNamespaceAndPath("forge", path));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -9,6 +9,8 @@ import net.minecraft.core.HolderLookup;
|
||||
import net.minecraft.data.PackOutput;
|
||||
import net.minecraft.data.tags.EntityTypeTagsProvider;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.tags.EntityTypeTags;
|
||||
import net.minecraft.tags.TagKey;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
|
||||
@@ -24,21 +26,21 @@ public final class ForgeEntityTypeTagsProvider extends EntityTypeTagsProvider {
|
||||
|
||||
@Override
|
||||
public void addTags(HolderLookup.Provider lookupProvider) {
|
||||
tag(BOSSES).add(EntityType.ENDER_DRAGON, EntityType.WITHER);
|
||||
tag(BOSSES)
|
||||
.add(EntityType.ENDER_DRAGON, EntityType.WITHER)
|
||||
.addOptionalTag(forgeTagKey("bosses"));
|
||||
tag(MINECARTS).add(EntityType.MINECART, EntityType.CHEST_MINECART, EntityType.FURNACE_MINECART, EntityType.HOPPER_MINECART, EntityType.SPAWNER_MINECART, EntityType.TNT_MINECART, EntityType.COMMAND_BLOCK_MINECART);
|
||||
tag(BOATS).add(EntityType.BOAT, EntityType.CHEST_BOAT);
|
||||
tag(CAPTURING_NOT_SUPPORTED);
|
||||
tag(TELEPORTING_NOT_SUPPORTED);
|
||||
|
||||
// Backwards compat with pre-1.21 tags. Done after so optional tag is last for better readability.
|
||||
// Backwards compat definitions for pre-1.21 legacy `forge:` tags.
|
||||
// TODO: Remove backwards compat tag entries in 1.22
|
||||
tag(BOSSES).addOptionalTag(forgeRl("bosses"));
|
||||
tag(MINECARTS).addOptionalTag(forgeRl("minecarts"));
|
||||
tag(BOATS).addOptionalTag(forgeRl("boats"));
|
||||
tag(forgeTagKey("bosses")).add(EntityType.ENDER_DRAGON, EntityType.WITHER);
|
||||
}
|
||||
|
||||
private static ResourceLocation forgeRl(String path) {
|
||||
return ResourceLocation.fromNamespaceAndPath("forge", path);
|
||||
private static TagKey<EntityType<?>> forgeTagKey(String path) {
|
||||
return EntityTypeTags.create(ResourceLocation.fromNamespaceAndPath("forge", path));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -10,12 +10,15 @@ import net.minecraft.data.PackOutput;
|
||||
import net.minecraft.data.tags.FluidTagsProvider;
|
||||
import net.minecraft.data.tags.IntrinsicHolderTagsProvider;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.tags.BlockTags;
|
||||
import net.minecraft.tags.FluidTags;
|
||||
import net.minecraft.tags.TagKey;
|
||||
import net.minecraft.world.level.material.Fluid;
|
||||
import net.minecraftforge.common.ForgeMod;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import static net.minecraftforge.common.Tags.Fluids.*;
|
||||
|
||||
@@ -39,16 +42,15 @@ public final class ForgeFluidTagsProvider extends FluidTagsProvider {
|
||||
tag(BEETROOT_SOUP);
|
||||
tag(HIDDEN_FROM_RECIPE_VIEWERS);
|
||||
|
||||
// Backwards compat with pre-1.21 tags. Done after so optional tag is last for better readability.
|
||||
// Backwards compat definitions for pre-1.21 legacy `forge:` tags.
|
||||
// TODO: Remove backwards compat tag entries in 1.22
|
||||
tagWithOptionalLegacy(MILK);
|
||||
tagWithOptionalLegacy(HONEY);
|
||||
tag(forgeTagKey("milk"))
|
||||
.addOptional(ForgeMod.MILK.getId())
|
||||
.addOptional(ForgeMod.FLOWING_MILK.getId());
|
||||
}
|
||||
|
||||
private IntrinsicHolderTagsProvider.IntrinsicTagAppender<Fluid> tagWithOptionalLegacy(TagKey<Fluid> tag) {
|
||||
IntrinsicHolderTagsProvider.IntrinsicTagAppender<Fluid> tagAppender = tag(tag);
|
||||
tagAppender.addOptionalTag(ResourceLocation.fromNamespaceAndPath("forge", tag.location().getPath()));
|
||||
return tagAppender;
|
||||
private static TagKey<Fluid> forgeTagKey(String path) {
|
||||
return FluidTags.create(ResourceLocation.fromNamespaceAndPath("forge", path));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -11,6 +11,7 @@ import net.minecraft.data.PackOutput;
|
||||
import net.minecraft.data.tags.IntrinsicHolderTagsProvider;
|
||||
import net.minecraft.data.tags.ItemTagsProvider;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.tags.BlockTags;
|
||||
import net.minecraft.tags.ItemTags;
|
||||
import net.minecraft.tags.TagKey;
|
||||
import net.minecraft.world.item.DyeColor;
|
||||
@@ -18,6 +19,7 @@ import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraftforge.common.Tags;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
|
||||
import java.util.Locale;
|
||||
@@ -73,17 +75,27 @@ public final class ForgeItemTagsProvider extends ItemTagsProvider {
|
||||
Tags.Items.CROPS_COCOA_BEAN, Tags.Items.CROPS_MELON, Tags.Items.CROPS_NETHER_WART,
|
||||
Tags.Items.CROPS_POTATO, Tags.Items.CROPS_PUMPKIN, Tags.Items.CROPS_SUGAR_CANE,
|
||||
Tags.Items.CROPS_WHEAT
|
||||
);
|
||||
tag(Tags.Items.CROPS_BEETROOT).add(Items.BEETROOT);
|
||||
).addOptionalTag(forgeItemTagKey("crops"));
|
||||
tag(Tags.Items.CROPS_BEETROOT)
|
||||
.add(Items.BEETROOT)
|
||||
.addOptionalTag(forgeItemTagKey("crops/beetroot"));
|
||||
tag(Tags.Items.CROPS_CACTUS).add(Items.CACTUS);
|
||||
tag(Tags.Items.CROPS_CARROT).add(Items.CARROT);
|
||||
tag(Tags.Items.CROPS_CARROT)
|
||||
.add(Items.CARROT)
|
||||
.addOptionalTag(forgeItemTagKey("crops/carrot"));
|
||||
tag(Tags.Items.CROPS_COCOA_BEAN).add(Items.COCOA_BEANS);
|
||||
tag(Tags.Items.CROPS_MELON).add(Items.MELON);
|
||||
tag(Tags.Items.CROPS_NETHER_WART).add(Items.NETHER_WART);
|
||||
tag(Tags.Items.CROPS_POTATO).add(Items.POTATO);
|
||||
tag(Tags.Items.CROPS_NETHER_WART)
|
||||
.add(Items.NETHER_WART)
|
||||
.addOptionalTag(forgeItemTagKey("crops/nether_wart"));
|
||||
tag(Tags.Items.CROPS_POTATO)
|
||||
.add(Items.POTATO)
|
||||
.addOptionalTag(forgeItemTagKey("crops/potato"));
|
||||
tag(Tags.Items.CROPS_PUMPKIN).add(Items.PUMPKIN);
|
||||
tag(Tags.Items.CROPS_SUGAR_CANE).add(Items.SUGAR_CANE);
|
||||
tag(Tags.Items.CROPS_WHEAT).add(Items.WHEAT);
|
||||
tag(Tags.Items.CROPS_WHEAT)
|
||||
.add(Items.WHEAT)
|
||||
.addOptionalTag(forgeItemTagKey("crops/wheat"));
|
||||
addColored(Tags.Items.DYED, "{color}_banner");
|
||||
addColored(Tags.Items.DYED, "{color}_bed");
|
||||
addColored(Tags.Items.DYED, "{color}_candle");
|
||||
@@ -98,15 +110,23 @@ public final class ForgeItemTagsProvider extends ItemTagsProvider {
|
||||
addColored(Tags.Items.DYED, "{color}_wool");
|
||||
addColoredTags(tag(Tags.Items.DYED)::addTags, Tags.Items.DYED);
|
||||
tag(Tags.Items.DUSTS).addTags(Tags.Items.DUSTS_GLOWSTONE, Tags.Items.DUSTS_REDSTONE);
|
||||
tag(Tags.Items.DUSTS_GLOWSTONE).add(Items.GLOWSTONE_DUST);
|
||||
tag(Tags.Items.DUSTS_REDSTONE).add(Items.REDSTONE);
|
||||
tag(Tags.Items.DUSTS_GLOWSTONE)
|
||||
.add(Items.GLOWSTONE_DUST)
|
||||
.addOptionalTag(forgeItemTagKey("dusts/glowstone"));
|
||||
tag(Tags.Items.DUSTS_REDSTONE)
|
||||
.add(Items.REDSTONE)
|
||||
.addOptionalTag(forgeItemTagKey("dusts/redstone"));
|
||||
addColored(Tags.Items.DYES, "{color}_dye");
|
||||
addColoredTags(tag(Tags.Items.DYES)::addTags, Tags.Items.DYES);
|
||||
tag(Tags.Items.EGGS).add(Items.EGG);
|
||||
tag(Tags.Items.ENCHANTING_FUELS).addTag(Tags.Items.GEMS_LAPIS);
|
||||
tag(Tags.Items.EGGS).add(Items.EGG); // forge:eggs
|
||||
tag(Tags.Items.ENCHANTING_FUELS).addTag(Tags.Items.GEMS_LAPIS); // forge:enchanting_fuels
|
||||
copy(Tags.Blocks.END_STONES, Tags.Items.END_STONES);
|
||||
tag(Tags.Items.ENDER_PEARLS).add(Items.ENDER_PEARL);
|
||||
tag(Tags.Items.FEATHERS).add(Items.FEATHER);
|
||||
tag(Tags.Items.ENDER_PEARLS)
|
||||
.add(Items.ENDER_PEARL)
|
||||
.addOptionalTag(forgeItemTagKey("ender_pearls"));
|
||||
tag(Tags.Items.FEATHERS)
|
||||
.add(Items.FEATHER)
|
||||
.addOptionalTag(forgeItemTagKey("feathers"));
|
||||
copy(Tags.Blocks.FENCE_GATES, Tags.Items.FENCE_GATES);
|
||||
copy(Tags.Blocks.FENCE_GATES_WOODEN, Tags.Items.FENCE_GATES_WOODEN);
|
||||
copy(Tags.Blocks.FENCES, Tags.Items.FENCES);
|
||||
@@ -140,13 +160,27 @@ public final class ForgeItemTagsProvider extends ItemTagsProvider {
|
||||
ItemTags.GOAT_FOOD, ItemTags.HOGLIN_FOOD, ItemTags.HORSE_FOOD, ItemTags.LLAMA_FOOD, ItemTags.OCELOT_FOOD,
|
||||
ItemTags.PANDA_FOOD, ItemTags.PARROT_FOOD, ItemTags.PIG_FOOD, ItemTags.PIGLIN_FOOD, ItemTags.RABBIT_FOOD,
|
||||
ItemTags.SHEEP_FOOD, ItemTags.SNIFFER_FOOD, ItemTags.STRIDER_FOOD, ItemTags.TURTLE_FOOD, ItemTags.WOLF_FOOD);
|
||||
tag(Tags.Items.GEMS).addTags(Tags.Items.GEMS_AMETHYST, Tags.Items.GEMS_DIAMOND, Tags.Items.GEMS_EMERALD, Tags.Items.GEMS_LAPIS, Tags.Items.GEMS_PRISMARINE, Tags.Items.GEMS_QUARTZ);
|
||||
tag(Tags.Items.GEMS_AMETHYST).add(Items.AMETHYST_SHARD);
|
||||
tag(Tags.Items.GEMS_DIAMOND).add(Items.DIAMOND);
|
||||
tag(Tags.Items.GEMS_EMERALD).add(Items.EMERALD);
|
||||
tag(Tags.Items.GEMS_LAPIS).add(Items.LAPIS_LAZULI);
|
||||
tag(Tags.Items.GEMS_PRISMARINE).add(Items.PRISMARINE_CRYSTALS);
|
||||
tag(Tags.Items.GEMS_QUARTZ).add(Items.QUARTZ);
|
||||
tag(Tags.Items.GEMS)
|
||||
.addTags(Tags.Items.GEMS_AMETHYST, Tags.Items.GEMS_DIAMOND, Tags.Items.GEMS_EMERALD, Tags.Items.GEMS_LAPIS, Tags.Items.GEMS_PRISMARINE, Tags.Items.GEMS_QUARTZ)
|
||||
.addOptionalTag(forgeItemTagKey("gems"));
|
||||
tag(Tags.Items.GEMS_AMETHYST)
|
||||
.add(Items.AMETHYST_SHARD)
|
||||
.addOptionalTag(forgeItemTagKey("gems/amethyst"));
|
||||
tag(Tags.Items.GEMS_DIAMOND)
|
||||
.add(Items.DIAMOND)
|
||||
.addOptionalTag(forgeItemTagKey("gems/diamond"));
|
||||
tag(Tags.Items.GEMS_EMERALD)
|
||||
.add(Items.EMERALD)
|
||||
.addOptionalTag(forgeItemTagKey("gems/emerald"));
|
||||
tag(Tags.Items.GEMS_LAPIS)
|
||||
.add(Items.LAPIS_LAZULI)
|
||||
.addOptionalTag(forgeItemTagKey("gems/lapis"));
|
||||
tag(Tags.Items.GEMS_PRISMARINE)
|
||||
.add(Items.PRISMARINE_CRYSTALS)
|
||||
.addOptionalTag(forgeItemTagKey("gems/prismarine"));
|
||||
tag(Tags.Items.GEMS_QUARTZ)
|
||||
.add(Items.QUARTZ)
|
||||
.addOptionalTag(forgeItemTagKey("gems/quartz"));
|
||||
copy(Tags.Blocks.GLASS_BLOCKS, Tags.Items.GLASS_BLOCKS);
|
||||
copy(Tags.Blocks.GLASS_BLOCKS_COLORLESS, Tags.Items.GLASS_BLOCKS_COLORLESS);
|
||||
copy(Tags.Blocks.GLASS_BLOCKS_TINTED, Tags.Items.GLASS_BLOCKS_TINTED);
|
||||
@@ -155,25 +189,47 @@ public final class ForgeItemTagsProvider extends ItemTagsProvider {
|
||||
copy(Tags.Blocks.GLASS_PANES_COLORLESS, Tags.Items.GLASS_PANES_COLORLESS);
|
||||
copy(Tags.Blocks.GLAZED_TERRACOTTAS, Tags.Items.GLAZED_TERRACOTTAS);
|
||||
copy(Tags.Blocks.GRAVEL, Tags.Items.GRAVEL);
|
||||
tag(Tags.Items.GUNPOWDER).add(Items.GUNPOWDER);
|
||||
tag(Tags.Items.GUNPOWDER).add(Items.GUNPOWDER); // forge:gunpowder
|
||||
tag(Tags.Items.HIDDEN_FROM_RECIPE_VIEWERS);
|
||||
tag(Tags.Items.INGOTS).addTags(Tags.Items.INGOTS_COPPER, Tags.Items.INGOTS_GOLD, Tags.Items.INGOTS_IRON, Tags.Items.INGOTS_NETHERITE);
|
||||
tag(Tags.Items.INGOTS_COPPER).add(Items.COPPER_INGOT);
|
||||
tag(Tags.Items.INGOTS_GOLD).add(Items.GOLD_INGOT);
|
||||
tag(Tags.Items.INGOTS_IRON).add(Items.IRON_INGOT);
|
||||
tag(Tags.Items.INGOTS_NETHERITE).add(Items.NETHERITE_INGOT);
|
||||
tag(Tags.Items.LEATHERS).add(Items.LEATHER);
|
||||
tag(Tags.Items.MUSHROOMS).add(Items.BROWN_MUSHROOM, Items.RED_MUSHROOM);
|
||||
tag(Tags.Items.INGOTS)
|
||||
.addTags(Tags.Items.INGOTS_COPPER, Tags.Items.INGOTS_GOLD, Tags.Items.INGOTS_IRON, Tags.Items.INGOTS_NETHERITE);
|
||||
//.addOptionalTag(forgeItemTagKey("ingots")); // can't add because it would contain the contents of forge:ingots/brick and forge:ingots/nether_brick which are not in the c namespace
|
||||
tag(Tags.Items.INGOTS_COPPER)
|
||||
.add(Items.COPPER_INGOT)
|
||||
.addOptionalTag(forgeItemTagKey("ingots/copper"));
|
||||
tag(Tags.Items.INGOTS_GOLD)
|
||||
.add(Items.GOLD_INGOT)
|
||||
.addOptionalTag(forgeItemTagKey("ingots/gold"));
|
||||
tag(Tags.Items.INGOTS_IRON)
|
||||
.add(Items.IRON_INGOT)
|
||||
.addOptionalTag(forgeItemTagKey("ingots/iron"));
|
||||
tag(Tags.Items.INGOTS_NETHERITE)
|
||||
.add(Items.NETHERITE_INGOT)
|
||||
.addOptionalTag(forgeItemTagKey("ingots/netherite"));
|
||||
tag(Tags.Items.LEATHERS)
|
||||
.add(Items.LEATHER)
|
||||
.addOptionalTag(forgeItemTagKey("leather"));
|
||||
tag(Tags.Items.MUSHROOMS)
|
||||
.add(Items.BROWN_MUSHROOM, Items.RED_MUSHROOM)
|
||||
.addOptionalTag(forgeItemTagKey("mushrooms"));
|
||||
tag(Tags.Items.MUSIC_DISCS).add(Items.MUSIC_DISC_13, Items.MUSIC_DISC_CAT, Items.MUSIC_DISC_BLOCKS, Items.MUSIC_DISC_CHIRP,
|
||||
Items.MUSIC_DISC_FAR, Items.MUSIC_DISC_MALL, Items.MUSIC_DISC_MELLOHI, Items.MUSIC_DISC_STAL, Items.MUSIC_DISC_STRAD,
|
||||
Items.MUSIC_DISC_WARD, Items.MUSIC_DISC_11, Items.MUSIC_DISC_WAIT, Items.MUSIC_DISC_OTHERSIDE, Items.MUSIC_DISC_5,
|
||||
Items.MUSIC_DISC_PIGSTEP, Items.MUSIC_DISC_RELIC, Items.MUSIC_DISC_CREATOR, Items.MUSIC_DISC_CREATOR_MUSIC_BOX,
|
||||
Items.MUSIC_DISC_PRECIPICE);
|
||||
tag(Tags.Items.NETHER_STARS).add(Items.NETHER_STAR);
|
||||
tag(Tags.Items.NETHER_STARS)
|
||||
.add(Items.NETHER_STAR)
|
||||
.addOptionalTag(forgeItemTagKey("nether_stars"));
|
||||
copy(Tags.Blocks.NETHERRACK, Tags.Items.NETHERRACK);
|
||||
tag(Tags.Items.NUGGETS).addTags(Tags.Items.NUGGETS_GOLD, Tags.Items.NUGGETS_IRON);
|
||||
tag(Tags.Items.NUGGETS_IRON).add(Items.IRON_NUGGET);
|
||||
tag(Tags.Items.NUGGETS_GOLD).add(Items.GOLD_NUGGET);
|
||||
tag(Tags.Items.NUGGETS)
|
||||
.addTags(Tags.Items.NUGGETS_GOLD, Tags.Items.NUGGETS_IRON)
|
||||
.addOptionalTag(forgeItemTagKey("nuggets"));
|
||||
tag(Tags.Items.NUGGETS_IRON)
|
||||
.add(Items.IRON_NUGGET)
|
||||
.addOptionalTag(forgeItemTagKey("nuggets/iron"));
|
||||
tag(Tags.Items.NUGGETS_GOLD)
|
||||
.add(Items.GOLD_NUGGET)
|
||||
.addOptionalTag(forgeItemTagKey("nuggets/gold"));
|
||||
copy(Tags.Blocks.OBSIDIANS, Tags.Items.OBSIDIANS);
|
||||
copy(Tags.Blocks.OBSIDIANS_NORMAL, Tags.Items.OBSIDIANS_NORMAL);
|
||||
copy(Tags.Blocks.OBSIDIANS_CRYING, Tags.Items.OBSIDIANS_CRYING);
|
||||
@@ -199,18 +255,32 @@ public final class ForgeItemTagsProvider extends ItemTagsProvider {
|
||||
copy(Tags.Blocks.ORES_IN_GROUND_STONE, Tags.Items.ORES_IN_GROUND_STONE);
|
||||
copy(Tags.Blocks.PLAYER_WORKSTATIONS_CRAFTING_TABLES, Tags.Items.PLAYER_WORKSTATIONS_CRAFTING_TABLES);
|
||||
copy(Tags.Blocks.PLAYER_WORKSTATIONS_FURNACES, Tags.Items.PLAYER_WORKSTATIONS_FURNACES);
|
||||
tag(Tags.Items.RAW_MATERIALS).addTags(Tags.Items.RAW_MATERIALS_COPPER, Tags.Items.RAW_MATERIALS_GOLD, Tags.Items.RAW_MATERIALS_IRON);
|
||||
tag(Tags.Items.RAW_MATERIALS_COPPER).add(Items.RAW_COPPER);
|
||||
tag(Tags.Items.RAW_MATERIALS_GOLD).add(Items.RAW_GOLD);
|
||||
tag(Tags.Items.RAW_MATERIALS_IRON).add(Items.RAW_IRON);
|
||||
tag(Tags.Items.RODS).addTags(Tags.Items.RODS_WOODEN, Tags.Items.RODS_BLAZE, Tags.Items.RODS_BREEZE);
|
||||
tag(Tags.Items.RODS_BLAZE).add(Items.BLAZE_ROD);
|
||||
tag(Tags.Items.RAW_MATERIALS)
|
||||
.addTags(Tags.Items.RAW_MATERIALS_COPPER, Tags.Items.RAW_MATERIALS_GOLD, Tags.Items.RAW_MATERIALS_IRON)
|
||||
.addOptionalTag(forgeItemTagKey("raw_materials"));
|
||||
tag(Tags.Items.RAW_MATERIALS_COPPER)
|
||||
.add(Items.RAW_COPPER)
|
||||
.addOptionalTag(forgeItemTagKey("raw_materials/copper"));
|
||||
tag(Tags.Items.RAW_MATERIALS_GOLD)
|
||||
.add(Items.RAW_GOLD)
|
||||
.addOptionalTag(forgeItemTagKey("raw_materials/gold"));
|
||||
tag(Tags.Items.RAW_MATERIALS_IRON)
|
||||
.add(Items.RAW_IRON)
|
||||
.addOptionalTag(forgeItemTagKey("raw_materials/iron"));
|
||||
tag(Tags.Items.RODS)
|
||||
.addTags(Tags.Items.RODS_WOODEN, Tags.Items.RODS_BLAZE, Tags.Items.RODS_BREEZE)
|
||||
.addOptionalTag(forgeItemTagKey("rods"));
|
||||
tag(Tags.Items.RODS_BLAZE)
|
||||
.add(Items.BLAZE_ROD)
|
||||
.addOptionalTag(forgeItemTagKey("rods/blaze"));
|
||||
tag(Tags.Items.RODS_BREEZE).add(Items.BREEZE_ROD);
|
||||
tag(Tags.Items.RODS_WOODEN).add(Items.STICK);
|
||||
tag(Tags.Items.RODS_WOODEN)
|
||||
.add(Items.STICK)
|
||||
.addOptionalTag(forgeItemTagKey("rods/wooden"));
|
||||
copy(Tags.Blocks.ROPES, Tags.Items.ROPES);
|
||||
copy(Tags.Blocks.SAND, Tags.Items.SAND);
|
||||
copy(Tags.Blocks.SAND_COLORLESS, Tags.Items.SAND_COLORLESS);
|
||||
copy(Tags.Blocks.SAND_RED, Tags.Items.SAND_RED);
|
||||
copy(Tags.Blocks.SAND, Tags.Items.SAND); // forge:sand
|
||||
copy(Tags.Blocks.SAND_COLORLESS, Tags.Items.SAND_COLORLESS); // forge:sand/colorless
|
||||
copy(Tags.Blocks.SAND_RED, Tags.Items.SAND_RED); // forge:sand/red
|
||||
copy(Tags.Blocks.SANDSTONE_BLOCKS, Tags.Items.SANDSTONE_BLOCKS);
|
||||
copy(Tags.Blocks.SANDSTONE_SLABS, Tags.Items.SANDSTONE_SLABS);
|
||||
copy(Tags.Blocks.SANDSTONE_STAIRS, Tags.Items.SANDSTONE_STAIRS);
|
||||
@@ -225,7 +295,9 @@ public final class ForgeItemTagsProvider extends ItemTagsProvider {
|
||||
tag(Tags.Items.SEEDS_MELON).add(Items.MELON_SEEDS);
|
||||
tag(Tags.Items.SEEDS_PUMPKIN).add(Items.PUMPKIN_SEEDS);
|
||||
tag(Tags.Items.SEEDS_WHEAT).add(Items.WHEAT_SEEDS);
|
||||
tag(Tags.Items.SLIME_BALLS).add(Items.SLIME_BALL);
|
||||
tag(Tags.Items.SLIME_BALLS)
|
||||
.add(Items.SLIME_BALL)
|
||||
.addOptionalTag(forgeItemTagKey("slimeballs"));
|
||||
tag(Tags.Items.SHULKER_BOXES)
|
||||
.add(Items.SHULKER_BOX, Items.WHITE_SHULKER_BOX, Items.ORANGE_SHULKER_BOX,
|
||||
Items.MAGENTA_SHULKER_BOX, Items.LIGHT_BLUE_SHULKER_BOX, Items.YELLOW_SHULKER_BOX,
|
||||
@@ -251,19 +323,31 @@ public final class ForgeItemTagsProvider extends ItemTagsProvider {
|
||||
copy(Tags.Blocks.STORAGE_BLOCKS_REDSTONE, Tags.Items.STORAGE_BLOCKS_REDSTONE);
|
||||
copy(Tags.Blocks.STORAGE_BLOCKS_SLIME, Tags.Items.STORAGE_BLOCKS_SLIME);
|
||||
copy(Tags.Blocks.STORAGE_BLOCKS_WHEAT, Tags.Items.STORAGE_BLOCKS_WHEAT);
|
||||
tag(Tags.Items.STRINGS).add(Items.STRING);
|
||||
tag(Tags.Items.STRINGS)
|
||||
.add(Items.STRING)
|
||||
.addOptionalTag(forgeItemTagKey("strings"));
|
||||
tag(Tags.Items.VILLAGER_JOB_SITES).add(
|
||||
Items.BARREL, Items.BLAST_FURNACE, Items.BREWING_STAND, Items.CARTOGRAPHY_TABLE,
|
||||
Items.CAULDRON, Items.COMPOSTER, Items.FLETCHING_TABLE, Items.GRINDSTONE,
|
||||
Items.LECTERN, Items.LOOM, Items.SMITHING_TABLE, Items.SMOKER, Items.STONECUTTER);
|
||||
|
||||
// Tools and Armors
|
||||
tag(Tags.Items.TOOLS_SHIELD).add(Items.SHIELD);
|
||||
tag(Tags.Items.TOOLS_BOW).add(Items.BOW);
|
||||
tag(Tags.Items.TOOLS_SHIELD)
|
||||
.add(Items.SHIELD)
|
||||
.addOptionalTag(forgeItemTagKey("tools/shields"));
|
||||
tag(Tags.Items.TOOLS_BOW)
|
||||
.add(Items.BOW)
|
||||
.addOptionalTag(forgeItemTagKey("tools/bows"));
|
||||
tag(Tags.Items.TOOLS_BRUSH).add(Items.BRUSH);
|
||||
tag(Tags.Items.TOOLS_CROSSBOW).add(Items.CROSSBOW);
|
||||
tag(Tags.Items.TOOLS_FISHING_ROD).add(Items.FISHING_ROD);
|
||||
tag(Tags.Items.TOOLS_SHEAR).add(Items.SHEARS);
|
||||
tag(Tags.Items.TOOLS_CROSSBOW)
|
||||
.add(Items.CROSSBOW)
|
||||
.addOptionalTag(forgeItemTagKey("tools/crossbows"));
|
||||
tag(Tags.Items.TOOLS_FISHING_ROD)
|
||||
.add(Items.FISHING_ROD)
|
||||
.addOptionalTag(forgeItemTagKey("tools/fishing_rods"));
|
||||
tag(Tags.Items.TOOLS_SHEAR)
|
||||
.add(Items.SHEARS)
|
||||
.addOptionalTag(forgeItemTagKey("tools/shears"));
|
||||
tag(Tags.Items.TOOLS_SPEAR).add(Items.TRIDENT);
|
||||
tag(Tags.Items.TOOLS_MACE).add(Items.MACE);
|
||||
tag(Tags.Items.TOOLS_IGNITER).add(Items.FLINT_AND_STEEL);
|
||||
@@ -277,127 +361,155 @@ public final class ForgeItemTagsProvider extends ItemTagsProvider {
|
||||
tag(Tags.Items.TOOLS)
|
||||
.addTags(ItemTags.AXES, ItemTags.HOES, ItemTags.PICKAXES, ItemTags.SHOVELS, ItemTags.SWORDS)
|
||||
.addTags(Tags.Items.TOOLS_BOW, Tags.Items.TOOLS_BRUSH, Tags.Items.TOOLS_CROSSBOW, Tags.Items.TOOLS_FISHING_ROD, Tags.Items.TOOLS_SHEAR, Tags.Items.TOOLS_IGNITER, Tags.Items.TOOLS_SHIELD, Tags.Items.TOOLS_SPEAR, Tags.Items.TOOLS_MACE, Tags.Items.MINING_TOOL_TOOLS, Tags.Items.MELEE_WEAPON_TOOLS, Tags.Items.RANGED_WEAPON_TOOLS);
|
||||
tag(Tags.Items.ARMORS).addTags(ItemTags.HEAD_ARMOR, ItemTags.CHEST_ARMOR, ItemTags.LEG_ARMOR, ItemTags.FOOT_ARMOR);
|
||||
tag(Tags.Items.ARMORS)
|
||||
.addTags(ItemTags.HEAD_ARMOR, ItemTags.CHEST_ARMOR, ItemTags.LEG_ARMOR, ItemTags.FOOT_ARMOR)
|
||||
.addOptionalTag(forgeItemTagKey("armors"));
|
||||
tag(Tags.Items.ENCHANTABLES).addTags(ItemTags.ARMOR_ENCHANTABLE, ItemTags.EQUIPPABLE_ENCHANTABLE, ItemTags.WEAPON_ENCHANTABLE, ItemTags.SWORD_ENCHANTABLE, ItemTags.MINING_ENCHANTABLE, ItemTags.MINING_LOOT_ENCHANTABLE, ItemTags.FISHING_ENCHANTABLE, ItemTags.TRIDENT_ENCHANTABLE, ItemTags.BOW_ENCHANTABLE, ItemTags.CROSSBOW_ENCHANTABLE, ItemTags.MACE_ENCHANTABLE, ItemTags.FIRE_ASPECT_ENCHANTABLE, ItemTags.DURABILITY_ENCHANTABLE, ItemTags.VANISHING_ENCHANTABLE);
|
||||
|
||||
// Backwards compat with pre-1.21 tags. Done after so optional tag is last for better readability.
|
||||
// Backwards compat definitions for pre-1.21 legacy `forge:` tags.
|
||||
// TODO: Remove backwards compat tag entries in 1.22
|
||||
tagWithOptionalLegacy(Tags.Items.BONES);
|
||||
tag(Tags.Items.BRICKS_NORMAL).addOptionalTag(forgeRl("ingots/brick"));
|
||||
tag(Tags.Items.BRICKS_NETHER).addOptionalTag(forgeRl("ingots/nether_brick"));
|
||||
tagWithOptionalLegacy(Tags.Items.CROPS);
|
||||
tagWithOptionalLegacy(Tags.Items.CROPS_BEETROOT);
|
||||
tagWithOptionalLegacy(Tags.Items.CROPS_CARROT);
|
||||
tagWithOptionalLegacy(Tags.Items.CROPS_NETHER_WART);
|
||||
tagWithOptionalLegacy(Tags.Items.CROPS_POTATO);
|
||||
tagWithOptionalLegacy(Tags.Items.CROPS_WHEAT);
|
||||
tagWithOptionalLegacy(Tags.Items.DUSTS);
|
||||
tagWithOptionalLegacy(Tags.Items.DUSTS_GLOWSTONE);
|
||||
tagWithOptionalLegacy(Tags.Items.DUSTS_REDSTONE);
|
||||
tagColoredWithOptionalLegacy(Tags.Items.DYES);
|
||||
tag(Tags.Items.DYED_BLACK)
|
||||
.addOptionalTag(forgeRl("glass/black"))
|
||||
.addOptionalTag(forgeRl("stained_glass/black"));
|
||||
tag(Tags.Items.DYED_BLUE)
|
||||
.addOptionalTag(forgeRl("glass/blue"))
|
||||
.addOptionalTag(forgeRl("stained_glass/blue"));
|
||||
tag(Tags.Items.DYED_BROWN)
|
||||
.addOptionalTag(forgeRl("glass/brown"))
|
||||
.addOptionalTag(forgeRl("stained_glass/brown"));
|
||||
tag(Tags.Items.DYED_CYAN)
|
||||
.addOptionalTag(forgeRl("glass/cyan"))
|
||||
.addOptionalTag(forgeRl("stained_glass/cyan"));
|
||||
tag(Tags.Items.DYED_GRAY)
|
||||
.addOptionalTag(forgeRl("glass/gray"))
|
||||
.addOptionalTag(forgeRl("stained_glass/gray"));
|
||||
tag(Tags.Items.DYED_GREEN)
|
||||
.addOptionalTag(forgeRl("glass/green"))
|
||||
.addOptionalTag(forgeRl("stained_glass/green"));
|
||||
tag(Tags.Items.DYED_LIGHT_BLUE)
|
||||
.addOptionalTag(forgeRl("glass/light_blue"))
|
||||
.addOptionalTag(forgeRl("stained_glass/light_blue"));
|
||||
tag(Tags.Items.DYED_LIGHT_GRAY)
|
||||
.addOptionalTag(forgeRl("glass/light_gray"))
|
||||
.addOptionalTag(forgeRl("stained_glass/light_gray"));
|
||||
tag(Tags.Items.DYED_LIME)
|
||||
.addOptionalTag(forgeRl("glass/lime"))
|
||||
.addOptionalTag(forgeRl("stained_glass/lime"));
|
||||
tag(Tags.Items.DYED_MAGENTA)
|
||||
.addOptionalTag(forgeRl("glass/magenta"))
|
||||
.addOptionalTag(forgeRl("stained_glass/magenta"));
|
||||
tag(Tags.Items.DYED_MAGENTA)
|
||||
.addOptionalTag(forgeRl("glass/magenta"))
|
||||
.addOptionalTag(forgeRl("stained_glass/magenta"));
|
||||
tag(Tags.Items.DYED_ORANGE)
|
||||
.addOptionalTag(forgeRl("glass/orange"))
|
||||
.addOptionalTag(forgeRl("stained_glass/orange"));
|
||||
tag(Tags.Items.DYED_PINK)
|
||||
.addOptionalTag(forgeRl("glass/pink"))
|
||||
.addOptionalTag(forgeRl("stained_glass/pink"));
|
||||
tag(Tags.Items.DYED_PURPLE)
|
||||
.addOptionalTag(forgeRl("glass/purple"))
|
||||
.addOptionalTag(forgeRl("stained_glass/purple"));
|
||||
tag(Tags.Items.DYED_RED)
|
||||
.addOptionalTag(forgeRl("glass/red"))
|
||||
.addOptionalTag(forgeRl("stained_glass/red"));
|
||||
tag(Tags.Items.DYED_WHITE)
|
||||
.addOptionalTag(forgeRl("glass/white"))
|
||||
.addOptionalTag(forgeRl("stained_glass/white"));
|
||||
tag(Tags.Items.DYED_YELLOW)
|
||||
.addOptionalTag(forgeRl("glass/yellow"))
|
||||
.addOptionalTag(forgeRl("stained_glass/yellow"));
|
||||
tagWithOptionalLegacy(Tags.Items.ENDER_PEARLS);
|
||||
tagWithOptionalLegacy(Tags.Items.GEMS);
|
||||
tagWithOptionalLegacy(Tags.Items.GEMS_AMETHYST);
|
||||
tagWithOptionalLegacy(Tags.Items.GEMS_DIAMOND);
|
||||
tagWithOptionalLegacy(Tags.Items.GEMS_EMERALD);
|
||||
tagWithOptionalLegacy(Tags.Items.GEMS_LAPIS);
|
||||
tagWithOptionalLegacy(Tags.Items.GEMS_PRISMARINE);
|
||||
tagWithOptionalLegacy(Tags.Items.GEMS_QUARTZ);
|
||||
tagWithOptionalLegacy(Tags.Items.INGOTS);
|
||||
tagWithOptionalLegacy(Tags.Items.INGOTS_COPPER);
|
||||
tagWithOptionalLegacy(Tags.Items.INGOTS_GOLD);
|
||||
tagWithOptionalLegacy(Tags.Items.INGOTS_IRON);
|
||||
tagWithOptionalLegacy(Tags.Items.INGOTS_NETHERITE);
|
||||
tag(Tags.Items.LEATHERS).addOptionalTag(forgeRl("leather"));
|
||||
tagWithOptionalLegacy(Tags.Items.NUGGETS);
|
||||
tagWithOptionalLegacy(Tags.Items.NUGGETS_IRON);
|
||||
tagWithOptionalLegacy(Tags.Items.NUGGETS_GOLD);
|
||||
tagWithOptionalLegacy(Tags.Items.RAW_MATERIALS);
|
||||
tagWithOptionalLegacy(Tags.Items.RAW_MATERIALS_COPPER);
|
||||
tagWithOptionalLegacy(Tags.Items.RAW_MATERIALS_GOLD);
|
||||
tagWithOptionalLegacy(Tags.Items.RAW_MATERIALS_IRON);
|
||||
tagWithOptionalLegacy(Tags.Items.RODS);
|
||||
tagWithOptionalLegacy(Tags.Items.RODS_BLAZE);
|
||||
tagWithOptionalLegacy(Tags.Items.RODS_WOODEN);
|
||||
tag(Tags.Items.SLIME_BALLS).addOptionalTag(forgeRl("slimeballs"));
|
||||
tagWithOptionalLegacy(Tags.Items.STRINGS);
|
||||
tagWithOptionalLegacy(Tags.Items.TOOLS);
|
||||
tagWithOptionalLegacy(Tags.Items.ARMORS);
|
||||
tag(Tags.Items.TOOLS_SHIELD).addOptionalTag(forgeRl("tools/shields"));
|
||||
tag(Tags.Items.TOOLS_BOW).addOptionalTag(forgeRl("tools/bows"));
|
||||
tag(Tags.Items.TOOLS_BRUSH).addOptionalTag(forgeRl("tools/brushes"));
|
||||
tag(Tags.Items.TOOLS_CROSSBOW).addOptionalTag(forgeRl("tools/crossbows"));
|
||||
tag(Tags.Items.TOOLS_FISHING_ROD).addOptionalTag(forgeRl("tools/fishing_rods"));
|
||||
tag(Tags.Items.TOOLS_SHEAR).addOptionalTag(forgeRl("shears")); // yes, it's forge:shears not forge:tools/shears
|
||||
tag(Tags.Items.TOOLS_SPEAR).addOptionalTag(forgeRl("tools/tridents"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Shorthand for {@code tag(tag).addOptionalTag(forgeRl(tag.location().getPath()))}
|
||||
*/
|
||||
private IntrinsicHolderTagsProvider.IntrinsicTagAppender<Item> tagWithOptionalLegacy(TagKey<Item> tag) {
|
||||
IntrinsicHolderTagsProvider.IntrinsicTagAppender<Item> tagAppender = tag(tag);
|
||||
tagAppender.addOptionalTag(forgeRl(tag.location().getPath()));
|
||||
return tagAppender;
|
||||
}
|
||||
|
||||
private void tagColoredWithOptionalLegacy(TagKey<Item> group) {
|
||||
String prefix = group.location().getPath().toUpperCase(Locale.ENGLISH) + '_';
|
||||
for (DyeColor color : DyeColor.values()) {
|
||||
TagKey<Item> tag = getForgeItemTag(prefix + color.getName());
|
||||
tagWithOptionalLegacy(tag);
|
||||
}
|
||||
copy(forgeBlockTagKey("barrels"), forgeItemTagKey("barrels"));
|
||||
copy(forgeBlockTagKey("barrels/wooden"), forgeItemTagKey("barrels/wooden"));
|
||||
tag(forgeItemTagKey("bones")).add(Items.BONE);
|
||||
copy(forgeBlockTagKey("bookshelves"), forgeItemTagKey("bookshelves"));
|
||||
copy(forgeBlockTagKey("chests"), forgeItemTagKey("chests"));
|
||||
copy(forgeBlockTagKey("chests/ender"), forgeItemTagKey("chests/ender"));
|
||||
copy(forgeBlockTagKey("chests/trapped"), forgeItemTagKey("chests/trapped"));
|
||||
copy(forgeBlockTagKey("chests/wooden"), forgeItemTagKey("chests/wooden"));
|
||||
copy(forgeBlockTagKey("cobblestone"), forgeItemTagKey("cobblestone"));
|
||||
copy(forgeBlockTagKey("cobblestone/normal"), forgeItemTagKey("cobblestone/normal"));
|
||||
copy(forgeBlockTagKey("cobblestone/infested"), forgeItemTagKey("cobblestone/infested"));
|
||||
copy(forgeBlockTagKey("cobblestone/mossy"), forgeItemTagKey("cobblestone/mossy"));
|
||||
copy(forgeBlockTagKey("cobblestone/deepslate"), forgeItemTagKey("cobblestone/deepslate"));
|
||||
tag(forgeItemTagKey("crops"))
|
||||
.addTags(forgeItemTagKey("crops/beetroot"), forgeItemTagKey("crops/carrot"), forgeItemTagKey("crops/nether_wart"),
|
||||
forgeItemTagKey("crops/potato"), forgeItemTagKey("crops/wheat"));
|
||||
tag(forgeItemTagKey("crops/beetroot")).add(Items.BEETROOT);
|
||||
tag(forgeItemTagKey("crops/carrot")).add(Items.CARROT);
|
||||
tag(forgeItemTagKey("crops/nether_wart")).add(Items.NETHER_WART);
|
||||
tag(forgeItemTagKey("crops/potato")).add(Items.POTATO);
|
||||
tag(forgeItemTagKey("crops/wheat")).add(Items.WHEAT);
|
||||
tag(forgeItemTagKey("dusts")).addTags(forgeItemTagKey("dusts/glowstone"), Tags.Items.DUSTS_PRISMARINE, forgeItemTagKey("dusts/redstone"));
|
||||
tag(forgeItemTagKey("dusts/glowstone")).add(Items.GLOWSTONE_DUST);
|
||||
tag(forgeItemTagKey("dusts/prismarine")).add(Items.PRISMARINE_SHARD);
|
||||
tag(forgeItemTagKey("dusts/redstone")).add(Items.REDSTONE);
|
||||
addColored(tag(forgeItemTagKey("dyes"))::addTags, forgeItemTagKey("dyes"), "{color}_dye");
|
||||
tag(forgeItemTagKey("eggs")).add(Items.EGG);
|
||||
tag(forgeItemTagKey("enchanting_fuels")).addTag(forgeItemTagKey("gems/lapis"));
|
||||
copy(forgeBlockTagKey("end_stones"), forgeItemTagKey("end_stones"));
|
||||
tag(forgeItemTagKey("ender_pearls")).add(Items.ENDER_PEARL);
|
||||
tag(forgeItemTagKey("feathers")).add(Items.FEATHER);
|
||||
copy(forgeBlockTagKey("fence_gates"), forgeItemTagKey("fence_gates"));
|
||||
copy(forgeBlockTagKey("fence_gates/wooden"), forgeItemTagKey("fence_gates/wooden"));
|
||||
copy(forgeBlockTagKey("fences"), forgeItemTagKey("fences"));
|
||||
copy(forgeBlockTagKey("fences/nether_brick"), forgeItemTagKey("fences/nether_brick"));
|
||||
copy(forgeBlockTagKey("fences/wooden"), forgeItemTagKey("fences/wooden"));
|
||||
tag(forgeItemTagKey("gems"))
|
||||
.addTags(forgeItemTagKey("gems/amethyst"), forgeItemTagKey("gems/diamond"), forgeItemTagKey("gems/emerald"),
|
||||
forgeItemTagKey("gems/lapis"), forgeItemTagKey("gems/prismarine"), forgeItemTagKey("gems/quartz"));
|
||||
tag(forgeItemTagKey("gems/amethyst")).add(Items.AMETHYST_SHARD);
|
||||
tag(forgeItemTagKey("gems/diamond")).add(Items.DIAMOND);
|
||||
tag(forgeItemTagKey("gems/emerald")).add(Items.EMERALD);
|
||||
tag(forgeItemTagKey("gems/lapis")).add(Items.LAPIS_LAZULI);
|
||||
tag(forgeItemTagKey("gems/prismarine")).add(Items.PRISMARINE_CRYSTALS);
|
||||
tag(forgeItemTagKey("gems/quartz")).add(Items.QUARTZ);
|
||||
copy(forgeBlockTagKey("glass"), forgeItemTagKey("glass"));
|
||||
copy(forgeBlockTagKey("glass/tinted"), forgeItemTagKey("glass/tinted"));
|
||||
copy(forgeBlockTagKey("glass/silica"), forgeItemTagKey("glass/silica"));
|
||||
copyColored(forgeBlockTagKey("glass"), forgeItemTagKey("glass"));
|
||||
copy(forgeBlockTagKey("glass_panes"), forgeItemTagKey("glass_panes"));
|
||||
copyColored(forgeBlockTagKey("glass_panes"), forgeItemTagKey("glass_panes"));
|
||||
copy(forgeBlockTagKey("glass_panes/colorless"), forgeItemTagKey("glass_panes/colorless"));
|
||||
copy(forgeBlockTagKey("gravel"), forgeItemTagKey("gravel"));
|
||||
tag(forgeItemTagKey("gunpowder")).add(Items.GUNPOWDER);
|
||||
tag(forgeItemTagKey("heads")).add(Items.CREEPER_HEAD, Items.DRAGON_HEAD, Items.PLAYER_HEAD, Items.SKELETON_SKULL, Items.WITHER_SKELETON_SKULL, Items.ZOMBIE_HEAD);
|
||||
tag(forgeItemTagKey("ingots"))
|
||||
.addTags(forgeItemTagKey("ingots/brick"), forgeItemTagKey("ingots/copper"), forgeItemTagKey("ingots/gold"),
|
||||
forgeItemTagKey("ingots/iron"), forgeItemTagKey("ingots/netherite"), forgeItemTagKey("ingots/nether_brick"));
|
||||
tag(forgeItemTagKey("ingots/brick")).add(Items.BRICK);
|
||||
tag(forgeItemTagKey("ingots/copper")).add(Items.COPPER_INGOT);
|
||||
tag(forgeItemTagKey("ingots/gold")).add(Items.GOLD_INGOT);
|
||||
tag(forgeItemTagKey("ingots/iron")).add(Items.IRON_INGOT);
|
||||
tag(forgeItemTagKey("ingots/netherite")).add(Items.NETHERITE_INGOT);
|
||||
tag(forgeItemTagKey("ingots/nether_brick")).add(Items.NETHER_BRICK);
|
||||
tag(forgeItemTagKey("leather")).add(Items.LEATHER);
|
||||
tag(forgeItemTagKey("mushrooms")).add(Items.BROWN_MUSHROOM, Items.RED_MUSHROOM);
|
||||
tag(forgeItemTagKey("nether_stars")).add(Items.NETHER_STAR);
|
||||
copy(forgeBlockTagKey("netherrack"), forgeItemTagKey("netherrack"));
|
||||
tag(forgeItemTagKey("nuggets")).addTags(forgeItemTagKey("nuggets/iron"), forgeItemTagKey("nuggets/gold"));
|
||||
tag(forgeItemTagKey("nuggets/iron")).add(Items.IRON_NUGGET);
|
||||
tag(forgeItemTagKey("nuggets/gold")).add(Items.GOLD_NUGGET);
|
||||
copy(forgeBlockTagKey("obsidian"), forgeItemTagKey("obsidian"));
|
||||
copy(Tags.Blocks.ORE_BEARING_GROUND_DEEPSLATE, Tags.Items.ORE_BEARING_GROUND_DEEPSLATE);
|
||||
copy(Tags.Blocks.ORE_BEARING_GROUND_NETHERRACK, Tags.Items.ORE_BEARING_GROUND_NETHERRACK);
|
||||
copy(Tags.Blocks.ORE_BEARING_GROUND_STONE, Tags.Items.ORE_BEARING_GROUND_STONE);
|
||||
copy(Tags.Blocks.ORE_RATES_DENSE, Tags.Items.ORE_RATES_DENSE);
|
||||
copy(Tags.Blocks.ORE_RATES_SINGULAR, Tags.Items.ORE_RATES_SINGULAR);
|
||||
copy(Tags.Blocks.ORE_RATES_SPARSE, Tags.Items.ORE_RATES_SPARSE);
|
||||
copy(forgeBlockTagKey("ores"), forgeItemTagKey("ores"));
|
||||
copy(Tags.Blocks.ORES_COAL, Tags.Items.ORES_COAL);
|
||||
copy(Tags.Blocks.ORES_COPPER, Tags.Items.ORES_COPPER);
|
||||
copy(Tags.Blocks.ORES_DIAMOND, Tags.Items.ORES_DIAMOND);
|
||||
copy(Tags.Blocks.ORES_EMERALD, Tags.Items.ORES_EMERALD);
|
||||
copy(Tags.Blocks.ORES_GOLD, Tags.Items.ORES_GOLD);
|
||||
copy(Tags.Blocks.ORES_IRON, Tags.Items.ORES_IRON);
|
||||
copy(Tags.Blocks.ORES_LAPIS, Tags.Items.ORES_LAPIS);
|
||||
copy(forgeBlockTagKey("ores/quartz"), forgeItemTagKey("ores/quartz"));
|
||||
copy(Tags.Blocks.ORES_REDSTONE, Tags.Items.ORES_REDSTONE);
|
||||
copy(forgeBlockTagKey("ores/netherite_scrap"), forgeItemTagKey("ores/netherite_scrap"));
|
||||
copy(Tags.Blocks.ORES_IN_GROUND_DEEPSLATE, Tags.Items.ORES_IN_GROUND_DEEPSLATE);
|
||||
copy(Tags.Blocks.ORES_IN_GROUND_NETHERRACK, Tags.Items.ORES_IN_GROUND_NETHERRACK);
|
||||
copy(Tags.Blocks.ORES_IN_GROUND_STONE, Tags.Items.ORES_IN_GROUND_STONE);
|
||||
tag(forgeItemTagKey("raw_materials")).addTags(forgeItemTagKey("raw_materials/copper"), forgeItemTagKey("raw_materials/gold"), forgeItemTagKey("raw_materials/iron"));
|
||||
tag(forgeItemTagKey("raw_materials/copper")).add(Items.RAW_COPPER);
|
||||
tag(forgeItemTagKey("raw_materials/gold")).add(Items.RAW_GOLD);
|
||||
tag(forgeItemTagKey("raw_materials/iron")).add(Items.RAW_IRON);
|
||||
tag(forgeItemTagKey("rods")).addTags(forgeItemTagKey("rods/blaze"), forgeItemTagKey("rods/wooden"));
|
||||
tag(forgeItemTagKey("rods/blaze")).add(Items.BLAZE_ROD);
|
||||
tag(forgeItemTagKey("rods/wooden")).add(Items.STICK);
|
||||
copy(Tags.Blocks.SAND, Tags.Items.SAND);
|
||||
copy(Tags.Blocks.SAND_COLORLESS, Tags.Items.SAND_COLORLESS);
|
||||
copy(Tags.Blocks.SAND_RED, Tags.Items.SAND_RED);
|
||||
copy(forgeBlockTagKey("sandstone"), forgeItemTagKey("sandstone"));
|
||||
tag(Tags.Items.SEEDS).addTags(Tags.Items.SEEDS_BEETROOT, Tags.Items.SEEDS_MELON, Tags.Items.SEEDS_PUMPKIN, Tags.Items.SEEDS_WHEAT);
|
||||
tag(Tags.Items.SEEDS_BEETROOT).add(Items.BEETROOT_SEEDS);
|
||||
tag(Tags.Items.SEEDS_MELON).add(Items.MELON_SEEDS);
|
||||
tag(Tags.Items.SEEDS_PUMPKIN).add(Items.PUMPKIN_SEEDS);
|
||||
tag(Tags.Items.SEEDS_WHEAT).add(Items.WHEAT_SEEDS);
|
||||
tag(forgeItemTagKey("shears")).add(Items.SHEARS); // yes, it's forge:shears not forge:tools/shears
|
||||
tag(forgeItemTagKey("slimeballs")).add(Items.SLIME_BALL);
|
||||
copy(Tags.Blocks.STAINED_GLASS, Tags.Items.STAINED_GLASS);
|
||||
copy(Tags.Blocks.STAINED_GLASS_PANES, Tags.Items.STAINED_GLASS_PANES);
|
||||
copy(forgeBlockTagKey("stone"), forgeItemTagKey("stone"));
|
||||
copy(forgeBlockTagKey("storage_blocks"), forgeItemTagKey("storage_blocks"));
|
||||
copy(Tags.Blocks.STORAGE_BLOCKS_AMETHYST, Tags.Items.STORAGE_BLOCKS_AMETHYST);
|
||||
copy(forgeBlockTagKey("storage_blocks/coal"), forgeItemTagKey("storage_blocks/coal"));
|
||||
copy(forgeBlockTagKey("storage_blocks/copper"), forgeItemTagKey("storage_blocks/copper"));
|
||||
copy(forgeBlockTagKey("storage_blocks/diamond"), forgeItemTagKey("storage_blocks/diamond"));
|
||||
copy(forgeBlockTagKey("storage_blocks/emerald"), forgeItemTagKey("storage_blocks/emerald"));
|
||||
copy(forgeBlockTagKey("storage_blocks/gold"), forgeItemTagKey("storage_blocks/gold"));
|
||||
copy(forgeBlockTagKey("storage_blocks/iron"), forgeItemTagKey("storage_blocks/iron"));
|
||||
copy(forgeBlockTagKey("storage_blocks/lapis"), forgeItemTagKey("storage_blocks/lapis"));
|
||||
copy(Tags.Blocks.STORAGE_BLOCKS_QUARTZ, Tags.Items.STORAGE_BLOCKS_QUARTZ);
|
||||
copy(forgeBlockTagKey("storage_blocks/redstone"), forgeItemTagKey("storage_blocks/redstone"));
|
||||
copy(forgeBlockTagKey("storage_blocks/raw_copper"), forgeItemTagKey("storage_blocks/raw_copper"));
|
||||
copy(forgeBlockTagKey("storage_blocks/raw_gold"), forgeItemTagKey("storage_blocks/raw_gold"));
|
||||
copy(forgeBlockTagKey("storage_blocks/raw_iron"), forgeItemTagKey("storage_blocks/raw_iron"));
|
||||
copy(forgeBlockTagKey("storage_blocks/netherite"), forgeItemTagKey("storage_blocks/netherite"));
|
||||
tag(forgeItemTagKey("string")).add(Items.STRING);
|
||||
tag(forgeItemTagKey("tools/shields")).add(Items.SHIELD);
|
||||
tag(forgeItemTagKey("tools/bows")).add(Items.BOW);
|
||||
tag(forgeItemTagKey("tools/crossbows")).add(Items.CROSSBOW);
|
||||
tag(forgeItemTagKey("tools/fishing_rods")).add(Items.FISHING_ROD);
|
||||
tag(forgeItemTagKey("tools/tridents")).add(Items.TRIDENT);
|
||||
tag(forgeItemTagKey("tools"))
|
||||
.addTags(ItemTags.SWORDS, ItemTags.AXES, ItemTags.PICKAXES, ItemTags.SHOVELS, ItemTags.HOES)
|
||||
.addTags(forgeItemTagKey("tools/shields"), forgeItemTagKey("tools/bows"), forgeItemTagKey("tools/crossbows"), forgeItemTagKey("tools/fishing_rods"), forgeItemTagKey("tools/tridents"));
|
||||
tag(Tags.Items.ARMORS_HELMETS).add(Items.LEATHER_HELMET, Items.TURTLE_HELMET, Items.CHAINMAIL_HELMET, Items.IRON_HELMET, Items.GOLDEN_HELMET, Items.DIAMOND_HELMET, Items.NETHERITE_HELMET);
|
||||
tag(Tags.Items.ARMORS_CHESTPLATES).add(Items.LEATHER_CHESTPLATE, Items.CHAINMAIL_CHESTPLATE, Items.IRON_CHESTPLATE, Items.GOLDEN_CHESTPLATE, Items.DIAMOND_CHESTPLATE, Items.NETHERITE_CHESTPLATE);
|
||||
tag(Tags.Items.ARMORS_LEGGINGS).add(Items.LEATHER_LEGGINGS, Items.CHAINMAIL_LEGGINGS, Items.IRON_LEGGINGS, Items.GOLDEN_LEGGINGS, Items.DIAMOND_LEGGINGS, Items.NETHERITE_LEGGINGS);
|
||||
tag(Tags.Items.ARMORS_BOOTS).add(Items.LEATHER_BOOTS, Items.CHAINMAIL_BOOTS, Items.IRON_BOOTS, Items.GOLDEN_BOOTS, Items.DIAMOND_BOOTS, Items.NETHERITE_BOOTS);
|
||||
tag(forgeItemTagKey("armors")).addTags(Tags.Items.ARMORS_HELMETS, Tags.Items.ARMORS_CHESTPLATES, Tags.Items.ARMORS_LEGGINGS, Tags.Items.ARMORS_BOOTS);
|
||||
}
|
||||
|
||||
private void addColored(TagKey<Item> group, String pattern) {
|
||||
@@ -412,6 +524,30 @@ public final class ForgeItemTagsProvider extends ItemTagsProvider {
|
||||
}
|
||||
}
|
||||
|
||||
private void addColored(Consumer<TagKey<Item>> consumer, TagKey<Item> group, String pattern) {
|
||||
String prefix = group.location().getPath() + '/';
|
||||
for (DyeColor color : DyeColor.values()) {
|
||||
ResourceLocation key = ResourceLocation.fromNamespaceAndPath("minecraft", pattern.replace("{color}", color.getName()));
|
||||
TagKey<Item> tag = forgeItemTagKey(prefix + color.getName());
|
||||
Item item = ForgeRegistries.ITEMS.getValue(key);
|
||||
if (item == null || item == Items.AIR)
|
||||
throw new IllegalStateException("Unknown vanilla item: " + key.toString());
|
||||
tag(tag).add(item);
|
||||
consumer.accept(tag);
|
||||
}
|
||||
}
|
||||
|
||||
private void copyColored(TagKey<Block> blockGroup, TagKey<Item> itemGroup) {
|
||||
String blockPre = blockGroup.location().getPath().toUpperCase(Locale.ENGLISH) + '_';
|
||||
String itemPre = itemGroup.location().getPath().toUpperCase(Locale.ENGLISH) + '_';
|
||||
for (DyeColor color : DyeColor.values()) {
|
||||
TagKey<Block> from = getForgeBlockTag(blockPre + color.getName());
|
||||
TagKey<Item> to = getForgeItemTag(itemPre + color.getName());
|
||||
copy(from, to);
|
||||
}
|
||||
copy(getForgeBlockTag(blockPre + "colorless"), getForgeItemTag(itemPre + "colorless"));
|
||||
}
|
||||
|
||||
private static void addColoredTags(Consumer<TagKey<Item>> consumer, TagKey<Item> group) {
|
||||
String prefix = group.location().getPath().toUpperCase(Locale.ENGLISH) + '_';
|
||||
for (DyeColor color : DyeColor.values()) {
|
||||
@@ -444,6 +580,14 @@ public final class ForgeItemTagsProvider extends ItemTagsProvider {
|
||||
return ResourceLocation.fromNamespaceAndPath("forge", path);
|
||||
}
|
||||
|
||||
private static TagKey<Block> forgeBlockTagKey(String path) {
|
||||
return BlockTags.create(ResourceLocation.fromNamespaceAndPath("forge", path));
|
||||
}
|
||||
|
||||
private static TagKey<Item> forgeItemTagKey(String path) {
|
||||
return ItemTags.create(ResourceLocation.fromNamespaceAndPath("forge", path));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "Forge Item Tags";
|
||||
|
||||
Reference in new issue
Block a user