diff --git a/src/main/java/org/betterx/bclib/api/tag/CommonBlockTags.java b/src/main/java/org/betterx/bclib/api/tag/CommonBlockTags.java index 74a10aa2..436a3197 100644 --- a/src/main/java/org/betterx/bclib/api/tag/CommonBlockTags.java +++ b/src/main/java/org/betterx/bclib/api/tag/CommonBlockTags.java @@ -3,6 +3,7 @@ package org.betterx.bclib.api.tag; import net.minecraft.tags.BlockTags; import net.minecraft.tags.TagKey; import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; public class CommonBlockTags { public static final TagKey BARREL = TagAPI.makeCommonBlockTag("barrel"); @@ -16,6 +17,7 @@ public class CommonBlockTags { public static final TagKey NETHER_MYCELIUM = TagAPI.makeCommonBlockTag("nether_mycelium"); public static final TagKey NETHER_PORTAL_FRAME = TagAPI.makeCommonBlockTag("nether_pframe"); public static final TagKey NETHER_STONES = TagAPI.makeCommonBlockTag("nether_stones"); + public static final TagKey NETHER_ORES = TagAPI.makeCommonBlockTag("nether_ores"); public static final TagKey SAPLINGS = TagAPI.makeCommonBlockTag("saplings"); public static final TagKey SOUL_GROUND = TagAPI.makeCommonBlockTag("soul_ground"); public static final TagKey WOODEN_BARREL = TagAPI.makeCommonBlockTag("wooden_barrels"); @@ -27,14 +29,30 @@ public class CommonBlockTags { public static final TagKey MINABLE_WITH_HAMMER = TagAPI.makeCommonBlockTag("mineable/hammer"); public static final TagKey IS_OBSIDIAN = TagAPI.makeCommonBlockTag("is_obsidian"); - public static final TagKey STALAGMITE_REPLACEABLE = TagAPI.makeCommonBlockTag("stalagmite_replaceable_blocks"); + public static final TagKey STALAGMITE_BASE = TagAPI.makeCommonBlockTag("stalagmite_base_blocks"); static { - TagAPI.BLOCKS.addOtherTags(STALAGMITE_REPLACEABLE, + TagAPI.BLOCKS.add(END_STONES, Blocks.END_STONE); + TagAPI.BLOCKS.addOtherTags(NETHER_STONES, BlockTags.BASE_STONE_NETHER); + + TagAPI.BLOCKS.add(NETHERRACK, + Blocks.NETHERRACK, + Blocks.NETHER_QUARTZ_ORE, + Blocks.NETHER_GOLD_ORE, + Blocks.CRIMSON_NYLIUM, + Blocks.WARPED_NYLIUM); + + TagAPI.BLOCKS.add(NETHER_ORES, Blocks.NETHER_QUARTZ_ORE, Blocks.NETHER_GOLD_ORE); + TagAPI.BLOCKS.add(SOUL_GROUND, Blocks.SOUL_SAND, Blocks.SOUL_SOIL); + + TagAPI.BLOCKS.add(IS_OBSIDIAN, Blocks.OBSIDIAN, Blocks.CRYING_OBSIDIAN); + + TagAPI.BLOCKS.add(STALAGMITE_BASE, Blocks.DIAMOND_BLOCK); + TagAPI.BLOCKS.addOtherTags(STALAGMITE_BASE, BlockTags.DRIPSTONE_REPLACEABLE, - BlockTags.BASE_STONE_NETHER, BlockTags.BASE_STONE_OVERWORLD, NETHER_STONES, + NETHER_ORES, SOUL_GROUND, NETHER_MYCELIUM, END_STONES); diff --git a/src/main/java/org/betterx/bclib/api/tag/CommonItemTags.java b/src/main/java/org/betterx/bclib/api/tag/CommonItemTags.java index 669cf6a0..6dfdaf75 100644 --- a/src/main/java/org/betterx/bclib/api/tag/CommonItemTags.java +++ b/src/main/java/org/betterx/bclib/api/tag/CommonItemTags.java @@ -2,6 +2,7 @@ package org.betterx.bclib.api.tag; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Blocks; public class CommonItemTags { public final static TagKey HAMMERS = TagAPI.makeCommonItemTag("hammers"); @@ -16,4 +17,8 @@ public class CommonItemTags { public static final TagKey WOODEN_BARREL = TagAPI.makeCommonItemTag("wooden_barrels"); public static final TagKey WOODEN_CHEST = TagAPI.makeCommonItemTag("wooden_chests"); public static final TagKey WORKBENCHES = TagAPI.makeCommonItemTag("workbench"); + + static { + TagAPI.ITEMS.add(SOUL_GROUND, Blocks.SOUL_SAND.asItem(), Blocks.SOUL_SOIL.asItem()); + } } diff --git a/src/main/java/org/betterx/bclib/api/tag/TagType.java b/src/main/java/org/betterx/bclib/api/tag/TagType.java index 16c17f07..7e287101 100644 --- a/src/main/java/org/betterx/bclib/api/tag/TagType.java +++ b/src/main/java/org/betterx/bclib/api/tag/TagType.java @@ -89,7 +89,7 @@ public class TagType { } public final String directory; - private final Map> tags = Maps.newConcurrentMap(); + private final Map> tags = Maps.newConcurrentMap(); public final ResourceKey> registryKey; private final Function locationProvider; @@ -101,11 +101,11 @@ public class TagType { this.locationProvider = locationProvider; } - public Set getSetForTag(ResourceLocation tagID) { + public Set getSetForTag(ResourceLocation tagID) { return tags.computeIfAbsent(tagID, k -> Sets.newHashSet()); } - public Set getSetForTag(TagKey tag) { + public Set getSetForTag(TagKey tag) { return getSetForTag(tag.location()); } @@ -133,10 +133,10 @@ public class TagType { public void addUntyped(TagKey tagID, ResourceLocation... elements) { if (isFrozen) BCLib.LOGGER.warning("Adding Tag " + tagID + " after the API was frozen."); - Set set = getSetForTag(tagID); + Set set = getSetForTag(tagID); for (ResourceLocation id : elements) { if (id != null) { - set.add(id); + set.add(TagEntry.element(id)); } } } @@ -149,27 +149,11 @@ public class TagType { public void addOtherTags(TagKey tagID, TagKey... tags) { if (isFrozen) BCLib.LOGGER.warning("Adding Tag " + tagID + " after the API was frozen."); - Set set = getSetForTag(tagID); + Set set = getSetForTag(tagID); for (TagKey tag : tags) { ResourceLocation id = tag.location(); if (id != null) { - set.add(id); - } - } - } - - /** - * Adds one Tag to multiple Elements. - * - * @param tagID {@link TagKey< Biome >} tag ID. - * @param locations array of Elements to add into tag. - */ - protected void addUnchecked(TagKey tagID, ResourceLocation... locations) { - if (isFrozen) BCLib.LOGGER.warning("Adding Tag " + tagID + " after the API was frozen."); - Set set = getSetForTag(tagID); - for (ResourceLocation id : locations) { - if (id != null) { - set.add(id); + set.add(TagEntry.tag(id)); } } } @@ -182,11 +166,11 @@ public class TagType { */ protected void add(TagKey tagID, T... elements) { if (isFrozen) BCLib.LOGGER.warning("Adding Tag " + tagID + " after the API was frozen."); - Set set = getSetForTag(tagID); + Set set = getSetForTag(tagID); for (T element : elements) { ResourceLocation id = locationProvider.apply(element); if (id != null) { - set.add(id); + set.add(TagEntry.element(id)); } } } @@ -200,11 +184,11 @@ public class TagType { @Deprecated(forRemoval = true) protected void add(ResourceLocation tagID, T... elements) { if (isFrozen) BCLib.LOGGER.warning("Adding Tag " + tagID + " after the API was frozen."); - Set set = getSetForTag(tagID); + Set set = getSetForTag(tagID); for (T element : elements) { ResourceLocation id = locationProvider.apply(element); if (id != null) { - set.add(id); + set.add(TagEntry.element(id)); } } } @@ -216,20 +200,20 @@ public class TagType { } } - public void forEach(BiConsumer> consumer) { + public void forEach(BiConsumer> consumer) { tags.forEach(consumer); } public void apply(Map> tagsMap) { - if (Registry.BIOME_REGISTRY.equals(registryKey)) BiomeAPI._runTagAdders(); + if (Registry.BIOME_REGISTRY.equals(registryKey)) BiomeAPI._runBiomeTagAdders(); //this.isFrozen = true; this.forEach((id, ids) -> apply(tagsMap.computeIfAbsent(id, key -> Lists.newArrayList()), ids)); } private static List apply(List builder, - Set ids) { - ids.forEach(value -> builder.add(new TagLoader.EntryWithSource(TagEntry.element(value), BCLib.MOD_ID))); + Set ids) { + ids.forEach(value -> builder.add(new TagLoader.EntryWithSource(value, BCLib.MOD_ID))); return builder; } }