diff --git a/src/main/java/ru/bclib/api/PostInitAPI.java b/src/main/java/ru/bclib/api/PostInitAPI.java index fece5779..ef7f61d3 100644 --- a/src/main/java/ru/bclib/api/PostInitAPI.java +++ b/src/main/java/ru/bclib/api/PostInitAPI.java @@ -6,9 +6,9 @@ import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap; import net.minecraft.client.renderer.RenderType; import net.minecraft.core.Registry; -import net.minecraft.tags.Tag; import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; +import ru.bclib.api.TagAPI.TagLocation; import ru.bclib.api.biomes.BiomeAPI; import ru.bclib.blocks.BaseBarrelBlock; import ru.bclib.blocks.BaseChestBlock; @@ -28,8 +28,8 @@ import java.util.function.Consumer; public class PostInitAPI { private static List> postInitFunctions = Lists.newArrayList(); - private static List> blockTags = Lists.newArrayList(); - private static List> itemTags = Lists.newArrayList(); + private static List> blockTags = Lists.newArrayList(); + private static List> itemTags = Lists.newArrayList(); /** * Register a new function which will be called after all mods are initiated. Will be called on both client and server. @@ -94,8 +94,8 @@ public class PostInitAPI { } if (block instanceof TagProvider) { TagProvider.class.cast(block).addTags(blockTags, itemTags); - blockTags.forEach(tag -> TagAPI.addTag(tag, block)); - itemTags.forEach(tag -> TagAPI.addTag(tag, block)); + blockTags.forEach(tag -> TagAPI.addBlockTag(tag, block)); + itemTags.forEach(tag -> TagAPI.addItemTag(tag, block)); blockTags.clear(); itemTags.clear(); } diff --git a/src/main/java/ru/bclib/api/TagAPI.java b/src/main/java/ru/bclib/api/TagAPI.java index 3d108372..03b0152d 100644 --- a/src/main/java/ru/bclib/api/TagAPI.java +++ b/src/main/java/ru/bclib/api/TagAPI.java @@ -3,7 +3,6 @@ package ru.bclib.api; import com.google.common.collect.Maps; import com.google.common.collect.Sets; import net.fabricmc.fabric.api.tag.TagFactory; -import net.fabricmc.fabric.api.tag.TagRegistry; import net.fabricmc.fabric.impl.tag.extension.TagDelegate; import net.minecraft.core.Registry; import net.minecraft.resources.ResourceLocation; @@ -18,7 +17,6 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.ItemLike; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; -import ru.bclib.BCLib; import java.util.List; import java.util.Map; @@ -30,61 +28,143 @@ public class TagAPI { private static final Map> TAGS_BLOCK = Maps.newConcurrentMap(); private static final Map> TAGS_ITEM = Maps.newConcurrentMap(); - // Vanilla Block Tags - public static final TagLocation NAMED_SOUL_SPEED_BLOCKS = new TagLocation<>("soul_speed_blocks"); - public static final TagLocation NAMED_SOUL_FIRE_BASE_BLOCKS = new TagLocation<>("soul_fire_base_blocks"); - public static final TagLocation NAMED_CLIMBABLE = new TagLocation<>("climbable"); - public static final TagLocation NAMED_NYLIUM = new TagLocation<>("nylium"); - public static final TagLocation NAMED_ANVIL = new TagLocation<>("anvil"); - public static final TagLocation NAMED_WALLS = new TagLocation<>("walls"); - public static final TagLocation LEAVES = new TagLocation<>("leaves"); + // LOCATIONS // + + // Mineable Block Tags public static final TagLocation NAMED_MINEABLE_AXE = new TagLocation<>("mineable/axe"); - public static final TagLocation NAMED_MINEABLE_PICKAXE = new TagLocation<>("mineable/pickaxe"); - public static final TagLocation NAMED_MINEABLE_SHOVEL = new TagLocation<>("mineable/shovel"); public static final TagLocation NAMED_MINEABLE_HOE = new TagLocation<>("mineable/hoe"); + public static final TagLocation NAMED_MINEABLE_PICKAXE = new TagLocation<>("mineable/pickaxe"); + public static final TagLocation NAMED_MINEABLE_SHEARS = new TagLocation<>("fabric", "mineable/shears"); + public static final TagLocation NAMED_MINEABLE_SHOVEL = new TagLocation<>("mineable/shovel"); + public static final TagLocation NAMED_MINEABLE_SWORD = new TagLocation<>("fabric", "mineable/sword"); - // Block Tags - public static final TagNamed BLOCK_BOOKSHELVES = makeCommonBlockTag("bookshelves"); - public static final TagNamed BLOCK_GEN_TERRAIN = makeBlockTag(BCLib.MOD_ID, "gen_terrain"); - public static final TagNamed BLOCK_NETHER_GROUND = makeBlockTag(BCLib.MOD_ID, "nether_ground"); - public static final TagNamed BLOCK_END_GROUND = makeBlockTag(BCLib.MOD_ID, "end_ground"); + // Fabric Tools + public static final TagLocation NAMED_FABRIC_AXES = new TagLocation<>("fabric", "axes"); + public static final TagLocation NAMED_FABRIC_HOES = new TagLocation<>("fabric", "hoes"); + public static final TagLocation NAMED_FABRIC_PICKAXES = new TagLocation<>("fabric", "pickaxes"); + public static final TagLocation NAMED_FABRIC_SHEARS = new TagLocation<>("fabric", "shears"); + public static final TagLocation NAMED_FABRIC_SHOVELS = new TagLocation<>("fabric", "shovels"); + public static final TagLocation NAMED_FABRIC_SWORDS = new TagLocation<>("fabric", "swords"); - public static final TagNamed BLOCK_CHEST = makeCommonBlockTag("chest"); - public static final TagNamed BLOCK_WOODEN_CHEST = makeCommonBlockTag("wooden_chests"); - public static final TagNamed BLOCK_BARREL = makeCommonBlockTag("barrel"); - public static final TagNamed BLOCK_WOODEN_BARREL = makeCommonBlockTag("wooden_barrels"); - public static final TagNamed BLOCK_END_STONES = makeCommonBlockTag("end_stones"); - public static final TagNamed BLOCK_NETHER_STONES = makeCommonBlockTag("nether_stones"); - public static final TagNamed BLOCK_NETHER_PORTAL_FRAME = makeCommonBlockTag("nether_pframe"); - public static final TagNamed BLOCK_WORKBENCHES = makeCommonBlockTag("workbench"); - public static final TagNamed BLOCK_SAPLINGS = makeCommonBlockTag("saplings"); - public static final TagNamed BLOCK_LEAVES = makeCommonBlockTag("leaves"); - public static final TagNamed BLOCK_IMMOBILE = makeCommonBlockTag("immobile"); - public static final TagNamed BLOCK_SOUL_GROUND = makeCommonBlockTag("soul_ground"); - public static final TagNamed BLOCK_NETHERRACK = makeCommonBlockTag("netherrack"); - public static final TagNamed BLOCK_NETHER_MYCELIUM = makeCommonBlockTag("nether_mycelium"); + // Vanilla Block Tags + public static final TagLocation NAMED_BLOCK_ANVIL = new TagLocation<>("anvil"); + public static final TagLocation NAMED_BLOCK_BUTTONS = new TagLocation<>("buttons"); + public static final TagLocation NAMED_BLOCK_CLIMBABLE = new TagLocation<>("climbable"); + public static final TagLocation NAMED_BLOCK_DOORS = new TagLocation<>("doors"); + public static final TagLocation NAMED_BLOCK_FENCES = new TagLocation<>("fences"); + public static final TagLocation NAMED_BLOCK_FENCE_GATES = new TagLocation<>("fence_gates"); + public static final TagLocation NAMED_BLOCK_LEAVES = new TagLocation<>("leaves"); + public static final TagLocation NAMED_BLOCK_LOGS = new TagLocation<>("logs"); + public static final TagLocation NAMED_BLOCK_LOGS_THAT_BURN = new TagLocation<>("logs_that_burn"); + public static final TagLocation NAMED_BLOCK_NYLIUM = new TagLocation<>("nylium"); + public static final TagLocation NAMED_BLOCK_PLANKS = new TagLocation<>("planks"); + public static final TagLocation NAMED_BLOCK_PRESSURE_PLATES = new TagLocation<>("pressure_plates"); + public static final TagLocation NAMED_BLOCK_SAPLINGS = new TagLocation<>("saplings"); + public static final TagLocation NAMED_BLOCK_SIGNS = new TagLocation<>("signs"); + public static final TagLocation NAMED_BLOCK_SLABS = new TagLocation<>("slabs"); + public static final TagLocation NAMED_BLOCK_STAIRS = new TagLocation<>("stairs"); + public static final TagLocation NAMED_BLOCK_STONE_PRESSURE_PLATES = new TagLocation<>("stone_pressure_plates"); + public static final TagLocation NAMED_BLOCK_TRAPDOORS = new TagLocation<>("trapdoors"); + public static final TagLocation NAMED_BLOCK_WALLS = new TagLocation<>("walls"); + public static final TagLocation NAMED_BLOCK_WOODEN_BUTTONS = new TagLocation<>("wooden_buttons"); + public static final TagLocation NAMED_BLOCK_WOODEN_DOORS = new TagLocation<>("wooden_doors"); + public static final TagLocation NAMED_BLOCK_WOODEN_FENCES = new TagLocation<>("wooden_fences"); + public static final TagLocation NAMED_BLOCK_WOODEN_PRESSURE_PLATES = new TagLocation<>("wooden_pressure_plates"); + public static final TagLocation NAMED_BLOCK_WOODEN_SLABS = new TagLocation<>("wooden_slabs"); + public static final TagLocation NAMED_BLOCK_WOODEN_STAIRS = new TagLocation<>("wooden_stairs"); + public static final TagLocation NAMED_BLOCK_WOODEN_TRAPDOORS = new TagLocation<>("wooden_trapdoors"); + public static final TagLocation NAMED_SOUL_FIRE_BASE_BLOCKS = new TagLocation<>("soul_fire_base_blocks"); + public static final TagLocation NAMED_SOUL_SPEED_BLOCKS = new TagLocation<>("soul_speed_blocks"); - public static final TagNamed BLOCK_DRAGON_IMMUNE = getMCBlockTag("dragon_immune"); + // Vanilla Item Tags + public static final TagLocation NAMED_ITEM_BUTTONS = new TagLocation<>("buttons"); + public static final TagLocation NAMED_ITEM_DOORS = new TagLocation<>("doors"); + public static final TagLocation NAMED_ITEM_FENCES = new TagLocation<>("fences"); + public static final TagLocation NAMED_ITEM_FENCE_GATES = new TagLocation<>("fence_gates"); + public static final TagLocation NAMED_ITEM_LEAVES = new TagLocation<>("leaves"); + public static final TagLocation NAMED_ITEM_LOGS = new TagLocation<>("logs"); + public static final TagLocation NAMED_ITEM_LOGS_THAT_BURN = new TagLocation<>("logs_that_burn"); + public static final TagLocation NAMED_ITEM_PLANKS = new TagLocation<>("planks"); + public static final TagLocation NAMED_ITEM_PRESSURE_PLATES = new TagLocation<>("pressure_plates"); + public static final TagLocation NAMED_ITEM_SAPLINGS = new TagLocation<>("saplings"); + public static final TagLocation NAMED_ITEM_SHEARS = new TagLocation<>("shears"); + public static final TagLocation NAMED_ITEM_SIGNS = new TagLocation<>("signs"); + public static final TagLocation NAMED_ITEM_SLABS = new TagLocation<>("slabs"); + public static final TagLocation NAMED_ITEM_STAIRS = new TagLocation<>("stairs"); + public static final TagLocation NAMED_ITEM_STONE_PRESSURE_PLATES = new TagLocation<>("stone_pressure_plates"); + public static final TagLocation NAMED_ITEM_TRAPDOORS = new TagLocation<>("trapdoors"); + public static final TagLocation NAMED_ITEM_WOODEN_BUTTONS = new TagLocation<>("wooden_buttons"); + public static final TagLocation NAMED_ITEM_WOODEN_DOORS = new TagLocation<>("wooden_doors"); + public static final TagLocation NAMED_ITEM_WOODEN_FENCES = new TagLocation<>("wooden_fences"); + public static final TagLocation NAMED_ITEM_WOODEN_PRESSURE_PLATES = new TagLocation<>("wooden_pressure_plates"); + public static final TagLocation NAMED_ITEM_WOODEN_SLABS = new TagLocation<>("wooden_slabs"); + public static final TagLocation NAMED_ITEM_WOODEN_STAIRS = new TagLocation<>("wooden_stairs"); + public static final TagLocation NAMED_ITEM_WOODEN_TRAPDOORS = new TagLocation<>("wooden_trapdoors"); - public static final TagNamed MINEABLE_AXE = getMCBlockTag("mineable/axe"); - public static final TagNamed MINEABLE_PICKAXE = getMCBlockTag("mineable/pickaxe"); - public static final TagNamed MINEABLE_SHOVEL = getMCBlockTag("mineable/shovel"); - public static final TagNamed MINEABLE_HOE = getMCBlockTag("mineable/hoe"); + // Common Block Tags + public static final TagLocation NAMED_BLOCK_DRAGON_IMMUNE = new TagLocation<>("c", "dragon_immune"); + public static final TagLocation NAMED_COMMON_BLOCK_BARREL = new TagLocation<>("c", "barrel"); + public static final TagLocation NAMED_COMMON_BLOCK_BOOKSHELVES = new TagLocation<>("c", "bookshelves"); + public static final TagLocation NAMED_COMMON_BLOCK_CHEST = new TagLocation<>("c", "chest"); + public static final TagLocation NAMED_COMMON_BLOCK_END_STONES = new TagLocation<>("c", "end_stones"); + public static final TagLocation NAMED_COMMON_BLOCK_IMMOBILE = new TagLocation<>("c", "immobile"); + public static final TagLocation NAMED_COMMON_BLOCK_LEAVES = new TagLocation<>("c", "leaves"); + public static final TagLocation NAMED_COMMON_BLOCK_NETHERRACK = new TagLocation<>("c", "netherrack"); + public static final TagLocation NAMED_COMMON_BLOCK_NETHER_MYCELIUM = new TagLocation<>("c", "nether_mycelium"); + public static final TagLocation NAMED_COMMON_BLOCK_NETHER_PORTAL_FRAME = new TagLocation<>("c", "nether_pframe"); + public static final TagLocation NAMED_COMMON_BLOCK_NETHER_STONES = new TagLocation<>("c", "nether_stones"); + public static final TagLocation NAMED_COMMON_BLOCK_SAPLINGS = new TagLocation<>("c", "saplings"); + public static final TagLocation NAMED_COMMON_BLOCK_SOUL_GROUND = new TagLocation<>("c", "soul_ground"); + public static final TagLocation NAMED_COMMON_BLOCK_WOODEN_BARREL = new TagLocation<>("c", "wooden_barrels"); + public static final TagLocation NAMED_COMMON_BLOCK_WOODEN_CHEST = new TagLocation<>("c", "wooden_chests"); + public static final TagLocation NAMED_COMMON_BLOCK_WORKBENCHES = new TagLocation<>("c", "workbench"); - // Item Tags - public static final TagNamed ITEM_CHEST = makeCommonItemTag("chest"); - public static final TagNamed ITEM_WOODEN_CHEST = makeCommonItemTag("wooden_chests"); - public static final TagNamed ITEM_BARREL = makeCommonItemTag("barrel"); - public static final TagNamed ITEM_WOODEN_BARREL = makeCommonItemTag("wooden_barrels"); - public static final TagNamed ITEM_IRON_INGOTS = makeCommonItemTag("iron_ingots"); - public static final TagNamed ITEM_FURNACES = makeCommonItemTag("furnaces"); - public static final TagNamed ITEM_WORKBENCHES = makeCommonItemTag("workbench"); - public final static TagNamed ITEM_HAMMERS = makeCommonItemTag("hammers"); - public static final TagNamed ITEM_SAPLINGS = makeCommonItemTag("saplings"); - public static final TagNamed ITEM_LEAVES = makeCommonItemTag("leaves"); - public static final TagNamed ITEM_SHEARS = getMCItemTag("shears"); - public static final TagNamed ITEM_COMMON_SHEARS = makeCommonItemTag("shears"); - public static final TagNamed ITEM_SOUL_GROUND = makeCommonItemTag("soul_ground"); + // Common Item Tags + public static final TagLocation NAMED_COMMON_ITEM_BARREL = new TagLocation<>("c", "barrel"); + public static final TagLocation NAMED_COMMON_ITEM_CHEST = new TagLocation<>("c", "chest"); + public static final TagLocation NAMED_COMMON_ITEM_FURNACES = new TagLocation<>("c", "furnaces"); + public static final TagLocation NAMED_COMMON_ITEM_HAMMERS = new TagLocation<>("c", "hammers"); + public static final TagLocation NAMED_COMMON_ITEM_IRON_INGOTS = new TagLocation<>("c", "iron_ingots"); + public static final TagLocation NAMED_COMMON_ITEM_LEAVES = new TagLocation<>("c", "leaves"); + public static final TagLocation NAMED_COMMON_ITEM_SAPLINGS = new TagLocation<>("c", "saplings"); + public static final TagLocation NAMED_COMMON_ITEM_SHEARS = new TagLocation<>("c", "shears"); + public static final TagLocation NAMED_COMMON_ITEM_SOUL_GROUND = new TagLocation<>("c", "soul_ground"); + public static final TagLocation NAMED_COMMON_ITEM_WOODEN_BARREL = new TagLocation<>("c", "wooden_barrels"); + public static final TagLocation NAMED_COMMON_ITEM_WOODEN_CHEST = new TagLocation<>("c", "wooden_chests"); + public static final TagLocation NAMED_COMMON_ITEM_WORKBENCHES = new TagLocation<>("c", "workbench"); + + // TAGS // + + // Common Block Tags + public static final TagNamed COMMON_BLOCK_BARREL = makeCommonBlockTag("barrel"); + public static final TagNamed COMMON_BLOCK_BOOKSHELVES = makeCommonBlockTag("bookshelves"); + public static final TagNamed COMMON_BLOCK_CHEST = makeCommonBlockTag("chest"); + public static final TagNamed COMMON_BLOCK_END_STONES = makeCommonBlockTag("end_stones"); + public static final TagNamed COMMON_BLOCK_IMMOBILE = makeCommonBlockTag("immobile"); + public static final TagNamed COMMON_BLOCK_LEAVES = makeCommonBlockTag("leaves"); + public static final TagNamed COMMON_BLOCK_NETHERRACK = makeCommonBlockTag("netherrack"); + public static final TagNamed COMMON_BLOCK_NETHER_MYCELIUM = makeCommonBlockTag("nether_mycelium"); + public static final TagNamed COMMON_BLOCK_NETHER_PORTAL_FRAME = makeCommonBlockTag("nether_pframe"); + public static final TagNamed COMMON_BLOCK_NETHER_STONES = makeCommonBlockTag("nether_stones"); + public static final TagNamed COMMON_BLOCK_SAPLINGS = makeCommonBlockTag("saplings"); + public static final TagNamed COMMON_BLOCK_SOUL_GROUND = makeCommonBlockTag("soul_ground"); + public static final TagNamed COMMON_BLOCK_WOODEN_BARREL = makeCommonBlockTag("wooden_barrels"); + public static final TagNamed COMMON_BLOCK_WOODEN_CHEST = makeCommonBlockTag("wooden_chests"); + public static final TagNamed COMMON_BLOCK_WORKBENCHES = makeCommonBlockTag("workbench"); + + // Common Item Tags + public final static TagNamed COMMON_ITEM_HAMMERS = makeCommonItemTag("hammers"); + public static final TagNamed COMMON_ITEM_BARREL = makeCommonItemTag("barrel"); + public static final TagNamed COMMON_ITEM_CHEST = makeCommonItemTag("chest"); + public static final TagNamed COMMON_ITEM_SHEARS = makeCommonItemTag("shears"); + public static final TagNamed COMMON_ITEM_FURNACES = makeCommonItemTag("furnaces"); + public static final TagNamed COMMON_ITEM_IRON_INGOTS = makeCommonItemTag("iron_ingots"); + public static final TagNamed COMMON_ITEM_LEAVES = makeCommonItemTag("leaves"); + public static final TagNamed COMMON_ITEM_SAPLINGS = makeCommonItemTag("saplings"); + public static final TagNamed COMMON_ITEM_SOUL_GROUND = makeCommonItemTag("soul_ground"); + public static final TagNamed COMMON_ITEM_WOODEN_BARREL = makeCommonItemTag("wooden_barrels"); + public static final TagNamed COMMON_ITEM_WOODEN_CHEST = makeCommonItemTag("wooden_chests"); + public static final TagNamed COMMON_ITEM_WORKBENCHES = makeCommonItemTag("workbench"); /** * Get or create {@link Tag.Named}. @@ -148,36 +228,22 @@ public class TagAPI { * @param name - {@link String} tag name. * @return {@link Block} {@link Tag.Named}. */ + @Deprecated(forRemoval = true) public static TagNamed getMCBlockTag(String name) { ResourceLocation id = new ResourceLocation(name); Tag tag = BlockTags.getAllTags().getTag(id); return CommonDelegate.proxy(tag == null ? (Named) TagFactory.BLOCK.create(id): (Named) tag); } - /** - * Get or create Minecraft {@link Item} {@link Tag.Named}. - * - * @param name - {@link String} tag name. - * @return {@link Item} {@link Tag.Named}. - */ - public static TagNamed getMCItemTag(String name) { - ResourceLocation id = new ResourceLocation(name); - Tag tag = ItemTags.getAllTags().getTag(id); - return CommonDelegate.proxy(tag == null ? (Named) TagRegistry.item(id) : (Named) tag); - } - /** * Initializes basic tags. Should be called only in BCLib main class. */ public static void init() { - addBlockTag(BLOCK_BOOKSHELVES.getName(), Blocks.BOOKSHELF); - addBlockTag(BLOCK_GEN_TERRAIN.getName(), Blocks.END_STONE, Blocks.NETHERRACK, Blocks.SOUL_SAND, Blocks.SOUL_SOIL); - addBlockTag(BLOCK_NETHER_GROUND.getName(), Blocks.NETHERRACK, Blocks.SOUL_SAND, Blocks.SOUL_SOIL); - addBlockTag(BLOCK_END_GROUND.getName(), Blocks.END_STONE); - addBlockTag(BLOCK_CHEST.getName(), Blocks.CHEST); - addItemTag(ITEM_CHEST.getName(), Items.CHEST); - addItemTag(ITEM_IRON_INGOTS.getName(), Items.IRON_INGOT); - addItemTag(ITEM_FURNACES.getName(), Blocks.FURNACE); + addBlockTag(COMMON_BLOCK_BOOKSHELVES.getName(), Blocks.BOOKSHELF); + addBlockTag(COMMON_BLOCK_CHEST.getName(), Blocks.CHEST); + addItemTag(COMMON_ITEM_CHEST.getName(), Items.CHEST); + addItemTag(COMMON_ITEM_IRON_INGOTS.getName(), Items.IRON_INGOT); + addItemTag(COMMON_ITEM_FURNACES.getName(), Blocks.FURNACE); } /** @@ -288,109 +354,6 @@ public class TagAPI { return builder; } - // DEPRECATED SECTION // - // WILL BE REMOVED IN 1.3.0 // - - /** - * Deprecated due to low compatibility. Use addTag({@link ResourceLocation}, {@link ItemLike}... items) instead. - * - * Adds one Tag to multiple Items. - *

- * Example: - *

{@code  Tag.Named METALS = makeBlockTag("mymod", "metals");
-	 * addTag(METALS, Items.IRON_INGOT, Items.GOLD_INGOT, Items.COPPER_INGOT);}
- *

- * The call will reserve the Tag. The Tag is added to the items once - * {@link #apply(String, Map)} was executed. - * - * @param tag The new Tag - * @param items One or more item that should receive the Tag. - */ - @Deprecated - public static void addTag(Tag.Named tag, ItemLike... items) { - addItemTagUntyped(tag.getName(), items); - } - - /** - * Deprecated, use addTag({@link ResourceLocation}, {@link ItemLike}... items) instead. - * - * Adds multiple Tags to one Item. - *

- * The call will reserve the Tags. The Tags are added to the Item once - * * {@link #apply(String, Map)} was executed. - * - * @param item The Item that will receive all Tags - * @param tags One or more Tags - */ - @Deprecated - @SafeVarargs - public static void addTags(ItemLike item, Tag.Named... tags) { - for (Tag.Named tag : tags) { - addItemTagUntyped(tag.getName(), item); - } - } - - /** - * Deprecated, use addTag({@link ResourceLocation}, {@link Block}... blocks) instead. - * - * Adds multiple Tags to one Block. - *

- * The call will reserve the Tags. The Tags are added to the Block once - * * {@link #apply(String, Map)} was executed. - * - * @param block The Block that will receive all Tags - * @param tags One or more Tags - */ - @Deprecated - @SafeVarargs - public static void addTags(Block block, Tag.Named... tags) { - for (Tag.Named tag : tags) { - addTag(tag, block); - } - } - - /** - * Deprecated due to low compatibility. Use addTag({@link ResourceLocation}, {@link Block}... blocks) instead. - * - * Adds one Tag to multiple Blocks. - *

- * Example: - *

{@code  Tag.Named DIMENSION_STONE = makeBlockTag("mymod", "dim_stone");
-	 * addTag(DIMENSION_STONE, Blocks.END_STONE, Blocks.NETHERRACK);}
- *

- * The call will reserve the Tag. The Tag is added to the blocks once - * {@link #apply(String, Map)} was executed. - * - * @param tag The new Tag - * @param blocks One or more blocks that should receive the Tag. - */ - @Deprecated - public static void addTag(Tag.Named tag, Block... blocks) { - addBlockTagUntyped(tag.getName(), blocks); - } - - /** - * Adds {@link Block} to NETHER_GROUND and GEN_TERRAIN tags to process it properly in terrain generators and block logic. - * - * @param block - {@link Block}. - */ - @Deprecated - public static void addNetherGround(Block block) { - addTag(BLOCK_NETHER_GROUND, block); - addTag(BLOCK_GEN_TERRAIN, block); - } - - /** - * Adds {@link Block} to END_GROUND and GEN_TERRAIN tags to process it properly in terrain generators and block logic. - * - * @param block - {@link Block}. - */ - @Deprecated - public static void addEndGround(Block block) { - addTag(BLOCK_GEN_TERRAIN, block); - addTag(BLOCK_END_GROUND, block); - } - /** * Extends {@link Tag.Named} to return a type safe {@link TagLocation}. This Type was introduced to * allow type-safe definition of Tags using their ResourceLocation. @@ -413,6 +376,10 @@ public class TagAPI { public TagLocation(String string, String string2) { super(string, string2); } + + public TagLocation(ResourceLocation location) { + super(location.getNamespace(), location.getPath()); + } } private abstract static class CommonDelegate implements TagNamed { diff --git a/src/main/java/ru/bclib/api/biomes/BCLBiomeBuilder.java b/src/main/java/ru/bclib/api/biomes/BCLBiomeBuilder.java index 40df4eef..a2ac6d70 100644 --- a/src/main/java/ru/bclib/api/biomes/BCLBiomeBuilder.java +++ b/src/main/java/ru/bclib/api/biomes/BCLBiomeBuilder.java @@ -37,7 +37,6 @@ import ru.bclib.util.ColorUtil; import ru.bclib.util.TriFunction; import ru.bclib.world.biomes.BCLBiome; import ru.bclib.world.biomes.BCLBiomeSettings; -import ru.bclib.world.biomes.BCLBiomeSettings.Builder; import ru.bclib.world.features.BCLFeature; import ru.bclib.world.structures.BCLStructureFeature; diff --git a/src/main/java/ru/bclib/api/biomes/BiomeAPI.java b/src/main/java/ru/bclib/api/biomes/BiomeAPI.java index c23ec8e8..dedeed1a 100644 --- a/src/main/java/ru/bclib/api/biomes/BiomeAPI.java +++ b/src/main/java/ru/bclib/api/biomes/BiomeAPI.java @@ -7,7 +7,6 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Multimap; import com.google.common.collect.Sets; -import com.mojang.serialization.Codec; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.event.registry.DynamicRegistrySetupCallback; @@ -56,7 +55,6 @@ import net.minecraft.world.level.storage.WorldData; import org.apache.commons.lang3.mutable.MutableInt; import org.jetbrains.annotations.Nullable; import ru.bclib.BCLib; -import ru.bclib.config.Configs; import ru.bclib.entity.BCLEntityWrapper; import ru.bclib.interfaces.BiomeSourceAccessor; import ru.bclib.interfaces.SurfaceMaterialProvider; @@ -69,7 +67,6 @@ import ru.bclib.mixin.common.StructureSettingsAccessor; import ru.bclib.util.CollectionsUtil; import ru.bclib.util.MHelper; import ru.bclib.world.biomes.BCLBiome; -import ru.bclib.world.biomes.BCLBiomeSettings; import ru.bclib.world.biomes.FabricBiomesData; import ru.bclib.world.biomes.VanillaBiomeSettings; import ru.bclib.world.features.BCLFeature; diff --git a/src/main/java/ru/bclib/api/surface/rules/NoiseCondition.java b/src/main/java/ru/bclib/api/surface/rules/NoiseCondition.java index 3c0766c2..e8847356 100644 --- a/src/main/java/ru/bclib/api/surface/rules/NoiseCondition.java +++ b/src/main/java/ru/bclib/api/surface/rules/NoiseCondition.java @@ -1,6 +1,5 @@ package ru.bclib.api.surface.rules; -import net.minecraft.core.Registry; import net.minecraft.world.level.levelgen.SurfaceRules; import ru.bclib.mixin.common.SurfaceRulesContextAccessor; diff --git a/src/main/java/ru/bclib/api/surface/rules/SurfaceNoiseCondition.java b/src/main/java/ru/bclib/api/surface/rules/SurfaceNoiseCondition.java index c099d425..d5fda0d5 100644 --- a/src/main/java/ru/bclib/api/surface/rules/SurfaceNoiseCondition.java +++ b/src/main/java/ru/bclib/api/surface/rules/SurfaceNoiseCondition.java @@ -1,9 +1,6 @@ package ru.bclib.api.surface.rules; -import com.mojang.serialization.Codec; -import net.minecraft.world.level.levelgen.SurfaceRules; import net.minecraft.world.level.levelgen.SurfaceRules.Condition; -import net.minecraft.world.level.levelgen.SurfaceRules.ConditionSource; import net.minecraft.world.level.levelgen.SurfaceRules.Context; import net.minecraft.world.level.levelgen.SurfaceRules.LazyXZCondition; import ru.bclib.mixin.common.SurfaceRulesContextAccessor; diff --git a/src/main/java/ru/bclib/api/surface/rules/SwitchRuleSource.java b/src/main/java/ru/bclib/api/surface/rules/SwitchRuleSource.java index 31635231..3bd0b28b 100644 --- a/src/main/java/ru/bclib/api/surface/rules/SwitchRuleSource.java +++ b/src/main/java/ru/bclib/api/surface/rules/SwitchRuleSource.java @@ -1,24 +1,17 @@ package ru.bclib.api.surface.rules; -import com.mojang.datafixers.kinds.Applicative; -import com.mojang.datafixers.kinds.K1; import com.mojang.serialization.Codec; -import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.core.Registry; -import net.minecraft.resources.ResourceKey; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.levelgen.SurfaceRules; import net.minecraft.world.level.levelgen.SurfaceRules.Context; import net.minecraft.world.level.levelgen.SurfaceRules.RuleSource; import net.minecraft.world.level.levelgen.SurfaceRules.SurfaceRule; -import net.minecraft.world.level.levelgen.VerticalAnchor; import org.jetbrains.annotations.Nullable; import ru.bclib.interfaces.NumericProvider; import ru.bclib.mixin.common.SurfaceRulesContextAccessor; import java.util.List; -import java.util.function.Function; // public record SwitchRuleSource(NumericProvider selector, List collection) implements RuleSource { diff --git a/src/main/java/ru/bclib/api/surface/rules/VolumeNoiseCondition.java b/src/main/java/ru/bclib/api/surface/rules/VolumeNoiseCondition.java index c1e5991c..b96bab18 100644 --- a/src/main/java/ru/bclib/api/surface/rules/VolumeNoiseCondition.java +++ b/src/main/java/ru/bclib/api/surface/rules/VolumeNoiseCondition.java @@ -1,7 +1,6 @@ package ru.bclib.api.surface.rules; import com.mojang.serialization.Codec; -import net.minecraft.world.level.levelgen.SurfaceRules; import net.minecraft.world.level.levelgen.SurfaceRules.Condition; import net.minecraft.world.level.levelgen.SurfaceRules.ConditionSource; import net.minecraft.world.level.levelgen.SurfaceRules.Context; diff --git a/src/main/java/ru/bclib/blocks/BaseDoorBlock.java b/src/main/java/ru/bclib/blocks/BaseDoorBlock.java index 040f9a5a..09cab9cb 100644 --- a/src/main/java/ru/bclib/blocks/BaseDoorBlock.java +++ b/src/main/java/ru/bclib/blocks/BaseDoorBlock.java @@ -8,9 +8,6 @@ import net.minecraft.client.resources.model.BlockModelRotation; import net.minecraft.client.resources.model.UnbakedModel; import net.minecraft.core.Direction; import net.minecraft.resources.ResourceLocation; -import net.minecraft.tags.BlockTags; -import net.minecraft.tags.ItemTags; -import net.minecraft.tags.Tag.Named; import net.minecraft.util.StringRepresentable; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; @@ -22,6 +19,8 @@ import net.minecraft.world.level.block.state.properties.DoorHingeSide; import net.minecraft.world.level.block.state.properties.DoubleBlockHalf; import net.minecraft.world.level.storage.loot.LootContext; import org.jetbrains.annotations.Nullable; +import ru.bclib.api.TagAPI; +import ru.bclib.api.TagAPI.TagLocation; import ru.bclib.client.models.BasePatterns; import ru.bclib.client.models.ModelsHelper; import ru.bclib.client.models.PatternsHelper; @@ -151,9 +150,9 @@ public class BaseDoorBlock extends DoorBlock implements RenderLayerProvider, Blo } @Override - public void addTags(List> blockTags, List> itemTags) { - blockTags.add(BlockTags.DOORS); - itemTags.add(ItemTags.DOORS); + public void addTags(List> blockTags, List> itemTags) { + blockTags.add(TagAPI.NAMED_BLOCK_DOORS); + itemTags.add(TagAPI.NAMED_ITEM_DOORS); } protected enum DoorType implements StringRepresentable { diff --git a/src/main/java/ru/bclib/blocks/BaseLeavesBlock.java b/src/main/java/ru/bclib/blocks/BaseLeavesBlock.java index c8127a0e..fd2a95d8 100644 --- a/src/main/java/ru/bclib/blocks/BaseLeavesBlock.java +++ b/src/main/java/ru/bclib/blocks/BaseLeavesBlock.java @@ -1,12 +1,9 @@ package ru.bclib.blocks; import com.google.common.collect.Lists; -import net.fabricmc.fabric.api.mininglevel.v1.FabricMineableTags; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.client.renderer.block.model.BlockModel; import net.minecraft.resources.ResourceLocation; -import net.minecraft.tags.BlockTags; -import net.minecraft.tags.Tag.Named; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.enchantment.EnchantmentHelper; @@ -19,6 +16,7 @@ import net.minecraft.world.level.material.MaterialColor; import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.world.level.storage.loot.parameters.LootContextParams; import ru.bclib.api.TagAPI; +import ru.bclib.api.TagAPI.TagLocation; import ru.bclib.client.render.BCLRenderLayer; import ru.bclib.interfaces.BlockModelProvider; import ru.bclib.interfaces.RenderLayerProvider; @@ -94,9 +92,10 @@ public class BaseLeavesBlock extends LeavesBlock implements BlockModelProvider, } @Override - public void addTags(List> blockTags, List> itemTags) { - blockTags.add(FabricMineableTags.SHEARS_MINEABLE); - //blockTags.add(TagAPI.MINEABLE_HOE); - blockTags.add(BlockTags.LEAVES); + public void addTags(List> blockTags, List> itemTags) { + blockTags.add(TagAPI.NAMED_MINEABLE_SHEARS); + blockTags.add(TagAPI.NAMED_MINEABLE_HOE); + blockTags.add(TagAPI.NAMED_BLOCK_LEAVES); + itemTags.add(TagAPI.NAMED_ITEM_LEAVES); } } diff --git a/src/main/java/ru/bclib/blocks/BaseOreBlock.java b/src/main/java/ru/bclib/blocks/BaseOreBlock.java index 6d6dae0e..abe61807 100644 --- a/src/main/java/ru/bclib/blocks/BaseOreBlock.java +++ b/src/main/java/ru/bclib/blocks/BaseOreBlock.java @@ -25,7 +25,6 @@ import ru.bclib.util.MHelper; import java.util.Collections; import java.util.List; -import java.util.Optional; import java.util.function.Supplier; public class BaseOreBlock extends OreBlock implements BlockModelProvider { diff --git a/src/main/java/ru/bclib/blocks/BasePlantBlock.java b/src/main/java/ru/bclib/blocks/BasePlantBlock.java index 04474e2b..85eece06 100644 --- a/src/main/java/ru/bclib/blocks/BasePlantBlock.java +++ b/src/main/java/ru/bclib/blocks/BasePlantBlock.java @@ -3,7 +3,6 @@ package ru.bclib.blocks; import com.google.common.collect.Lists; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import net.fabricmc.fabric.api.mininglevel.v1.FabricMineableTags; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags; import net.minecraft.client.renderer.block.model.BlockModel; @@ -11,7 +10,6 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerLevel; -import net.minecraft.tags.Tag.Named; import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; @@ -35,6 +33,7 @@ import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; import org.jetbrains.annotations.Nullable; import ru.bclib.api.TagAPI; +import ru.bclib.api.TagAPI.TagLocation; import ru.bclib.client.models.BasePatterns; import ru.bclib.client.models.ModelsHelper; import ru.bclib.client.models.PatternsHelper; @@ -170,8 +169,8 @@ public abstract class BasePlantBlock extends BaseBlockNotFull implements RenderL } @Override - public void addTags(List> blockTags, List> itemTags) { - blockTags.add(FabricMineableTags.SHEARS_MINEABLE); - blockTags.add(TagAPI.MINEABLE_HOE); + public void addTags(List> blockTags, List> itemTags) { + blockTags.add(TagAPI.NAMED_MINEABLE_SHEARS); + blockTags.add(TagAPI.NAMED_MINEABLE_HOE); } } diff --git a/src/main/java/ru/bclib/blocks/SimpleLeavesBlock.java b/src/main/java/ru/bclib/blocks/SimpleLeavesBlock.java index f9e5c84b..919e7cd4 100644 --- a/src/main/java/ru/bclib/blocks/SimpleLeavesBlock.java +++ b/src/main/java/ru/bclib/blocks/SimpleLeavesBlock.java @@ -1,9 +1,6 @@ package ru.bclib.blocks; -import net.fabricmc.fabric.api.mininglevel.v1.FabricMineableTags; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; -import net.minecraft.tags.BlockTags; -import net.minecraft.tags.Tag.Named; import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.SoundType; @@ -11,6 +8,7 @@ import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.material.Material; import net.minecraft.world.level.material.MaterialColor; import ru.bclib.api.TagAPI; +import ru.bclib.api.TagAPI.TagLocation; import ru.bclib.client.render.BCLRenderLayer; import ru.bclib.interfaces.RenderLayerProvider; import ru.bclib.interfaces.TagProvider; @@ -57,9 +55,10 @@ public class SimpleLeavesBlock extends BaseBlockNotFull implements RenderLayerPr } @Override - public void addTags(List> blockTags, List> itemTags) { - blockTags.add(FabricMineableTags.SHEARS_MINEABLE); - blockTags.add(TagAPI.MINEABLE_HOE); - blockTags.add(BlockTags.LEAVES); + public void addTags(List> blockTags, List> itemTags) { + blockTags.add(TagAPI.NAMED_MINEABLE_SHEARS); + blockTags.add(TagAPI.NAMED_MINEABLE_HOE); + blockTags.add(TagAPI.NAMED_BLOCK_LEAVES); + itemTags.add(TagAPI.NAMED_ITEM_LEAVES); } } \ No newline at end of file diff --git a/src/main/java/ru/bclib/blocks/UnderwaterPlantBlock.java b/src/main/java/ru/bclib/blocks/UnderwaterPlantBlock.java index 4a12e548..293627c3 100644 --- a/src/main/java/ru/bclib/blocks/UnderwaterPlantBlock.java +++ b/src/main/java/ru/bclib/blocks/UnderwaterPlantBlock.java @@ -1,13 +1,11 @@ package ru.bclib.blocks; import com.google.common.collect.Lists; -import net.fabricmc.fabric.api.mininglevel.v1.FabricMineableTags; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.server.level.ServerLevel; -import net.minecraft.tags.Tag.Named; import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; @@ -34,6 +32,7 @@ import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; import ru.bclib.api.TagAPI; +import ru.bclib.api.TagAPI.TagLocation; import ru.bclib.client.render.BCLRenderLayer; import ru.bclib.interfaces.RenderLayerProvider; import ru.bclib.interfaces.TagProvider; @@ -161,8 +160,8 @@ public abstract class UnderwaterPlantBlock extends BaseBlockNotFull implements R } @Override - public void addTags(List> blockTags, List> itemTags) { - blockTags.add(FabricMineableTags.SHEARS_MINEABLE); - blockTags.add(TagAPI.MINEABLE_HOE); + public void addTags(List> blockTags, List> itemTags) { + blockTags.add(TagAPI.NAMED_MINEABLE_SHEARS); + blockTags.add(TagAPI.NAMED_MINEABLE_HOE); } } diff --git a/src/main/java/ru/bclib/blocks/UpDownPlantBlock.java b/src/main/java/ru/bclib/blocks/UpDownPlantBlock.java index 21f3cabe..483006de 100644 --- a/src/main/java/ru/bclib/blocks/UpDownPlantBlock.java +++ b/src/main/java/ru/bclib/blocks/UpDownPlantBlock.java @@ -1,12 +1,10 @@ package ru.bclib.blocks; import com.google.common.collect.Lists; -import net.fabricmc.fabric.api.mininglevel.v1.FabricMineableTags; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.tags.Tag.Named; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; @@ -28,6 +26,7 @@ import net.minecraft.world.level.storage.loot.parameters.LootContextParams; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; import ru.bclib.api.TagAPI; +import ru.bclib.api.TagAPI.TagLocation; import ru.bclib.client.render.BCLRenderLayer; import ru.bclib.interfaces.RenderLayerProvider; import ru.bclib.interfaces.TagProvider; @@ -107,8 +106,8 @@ public abstract class UpDownPlantBlock extends BaseBlockNotFull implements Rende } @Override - public void addTags(List> blockTags, List> itemTags) { - blockTags.add(FabricMineableTags.SHEARS_MINEABLE); - blockTags.add(TagAPI.MINEABLE_HOE); + public void addTags(List> blockTags, List> itemTags) { + blockTags.add(TagAPI.NAMED_MINEABLE_SHEARS); + blockTags.add(TagAPI.NAMED_MINEABLE_HOE); } } diff --git a/src/main/java/ru/bclib/complexmaterials/WoodenComplexMaterial.java b/src/main/java/ru/bclib/complexmaterials/WoodenComplexMaterial.java index 9c1cb029..a0c405dc 100644 --- a/src/main/java/ru/bclib/complexmaterials/WoodenComplexMaterial.java +++ b/src/main/java/ru/bclib/complexmaterials/WoodenComplexMaterial.java @@ -4,9 +4,6 @@ import net.fabricmc.fabric.api.item.v1.FabricItemSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.registry.FlammableBlockRegistry; import net.minecraft.resources.ResourceLocation; -import net.minecraft.tags.BlockTags; -import net.minecraft.tags.ItemTags; -import net.minecraft.tags.Tag; import net.minecraft.world.item.Item; import net.minecraft.world.item.Items; import net.minecraft.world.level.block.Block; @@ -14,6 +11,7 @@ import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.material.MaterialColor; import ru.bclib.BCLib; import ru.bclib.api.TagAPI; +import ru.bclib.api.TagAPI.TagLocation; import ru.bclib.blocks.BaseBarkBlock; import ru.bclib.blocks.BaseBarrelBlock; import ru.bclib.blocks.BaseBlock; @@ -98,112 +96,92 @@ public class WoodenComplexMaterial extends ComplexMaterial { } final protected void initBase(FabricBlockSettings blockSettings, FabricItemSettings itemSettings) { - Tag.Named tagBlockLog = getBlockTag(TAG_LOGS); - Tag.Named tagItemLog = getItemTag(TAG_LOGS); + TagLocation tagBlockLog = new TagLocation<>(getBlockTag(TAG_LOGS).getName()); + TagLocation tagItemLog = new TagLocation<>(getItemTag(TAG_LOGS).getName()); addBlockEntry( - new BlockEntry(BLOCK_STRIPPED_LOG, (complexMaterial, settings) -> { - return new BaseRotatedPillarBlock(settings); - }) - .setBlockTags(BlockTags.LOGS, BlockTags.LOGS_THAT_BURN, tagBlockLog) - .setItemTags(ItemTags.LOGS, ItemTags.LOGS_THAT_BURN, tagItemLog) + new BlockEntry(BLOCK_STRIPPED_LOG, (complexMaterial, settings) -> new BaseRotatedPillarBlock(settings)) + .setBlockTags(TagAPI.NAMED_BLOCK_LOGS, TagAPI.NAMED_BLOCK_LOGS_THAT_BURN, tagBlockLog) + .setItemTags(TagAPI.NAMED_ITEM_LOGS, TagAPI.NAMED_ITEM_LOGS_THAT_BURN, tagItemLog) ); addBlockEntry( - new BlockEntry(BLOCK_STRIPPED_BARK, (complexMaterial, settings) -> { - return new BaseBarkBlock(settings); - }) - .setBlockTags(BlockTags.LOGS, BlockTags.LOGS_THAT_BURN, tagBlockLog) - .setItemTags(ItemTags.LOGS, ItemTags.LOGS_THAT_BURN, tagItemLog) + new BlockEntry(BLOCK_STRIPPED_BARK, (complexMaterial, settings) -> new BaseBarkBlock(settings)) + .setBlockTags(TagAPI.NAMED_BLOCK_LOGS, TagAPI.NAMED_BLOCK_LOGS_THAT_BURN, tagBlockLog) + .setItemTags(TagAPI.NAMED_ITEM_LOGS, TagAPI.NAMED_ITEM_LOGS_THAT_BURN, tagItemLog) ); addBlockEntry( - new BlockEntry(BLOCK_LOG, (complexMaterial, settings) -> { - return new BaseStripableLogBlock(woodColor, getBlock(BLOCK_STRIPPED_LOG)); - }) - .setBlockTags(BlockTags.LOGS, BlockTags.LOGS_THAT_BURN, tagBlockLog) - .setItemTags(ItemTags.LOGS, ItemTags.LOGS_THAT_BURN, tagItemLog) + new BlockEntry(BLOCK_LOG, (complexMaterial, settings) -> new BaseStripableLogBlock(woodColor, getBlock(BLOCK_STRIPPED_LOG))) + .setBlockTags(TagAPI.NAMED_BLOCK_LOGS, TagAPI.NAMED_BLOCK_LOGS_THAT_BURN, tagBlockLog) + .setItemTags(TagAPI.NAMED_ITEM_LOGS, TagAPI.NAMED_ITEM_LOGS_THAT_BURN, tagItemLog) ); addBlockEntry( - new BlockEntry(BLOCK_BARK, (complexMaterial, settings) -> { - return new StripableBarkBlock(woodColor, getBlock(BLOCK_STRIPPED_BARK)); - }) - .setBlockTags(BlockTags.LOGS, BlockTags.LOGS_THAT_BURN, tagBlockLog) - .setItemTags(ItemTags.LOGS, ItemTags.LOGS_THAT_BURN, tagItemLog) + new BlockEntry(BLOCK_BARK, (complexMaterial, settings) -> new StripableBarkBlock(woodColor, getBlock(BLOCK_STRIPPED_BARK))) + .setBlockTags(TagAPI.NAMED_BLOCK_LOGS, TagAPI.NAMED_BLOCK_LOGS_THAT_BURN, tagBlockLog) + .setItemTags(TagAPI.NAMED_ITEM_LOGS, TagAPI.NAMED_ITEM_LOGS_THAT_BURN, tagItemLog) ); - addBlockEntry(new BlockEntry(BLOCK_PLANKS, (complexMaterial, settings) -> { - return new BaseBlock(settings); - }).setBlockTags(BlockTags.PLANKS) - .setItemTags(ItemTags.PLANKS)); - - addBlockEntry(new BlockEntry(BLOCK_STAIRS, (complexMaterial, settings) -> { - return new BaseStairsBlock(getBlock(BLOCK_PLANKS)); - }).setBlockTags(BlockTags.WOODEN_STAIRS, BlockTags.STAIRS) - .setItemTags(ItemTags.WOODEN_STAIRS, ItemTags.STAIRS)); - addBlockEntry(new BlockEntry(BLOCK_SLAB, (complexMaterial, settings) -> { - return new BaseSlabBlock(getBlock(BLOCK_PLANKS)); - }).setBlockTags(BlockTags.WOODEN_SLABS, BlockTags.SLABS) - .setItemTags(ItemTags.WOODEN_SLABS, ItemTags.SLABS)); - addBlockEntry(new BlockEntry(BLOCK_FENCE, (complexMaterial, settings) -> { - return new BaseFenceBlock(getBlock(BLOCK_PLANKS)); - }).setBlockTags(BlockTags.FENCES, BlockTags.WOODEN_FENCES) - .setItemTags(ItemTags.FENCES, ItemTags.WOODEN_FENCES)); - addBlockEntry(new BlockEntry(BLOCK_GATE, (complexMaterial, settings) -> { - return new BaseGateBlock(getBlock(BLOCK_PLANKS)); - }).setBlockTags(BlockTags.FENCE_GATES)); - addBlockEntry(new BlockEntry(BLOCK_BUTTON, (complexMaterial, settings) -> { - return new BaseWoodenButtonBlock(getBlock(BLOCK_PLANKS)); - }).setBlockTags(BlockTags.BUTTONS, BlockTags.WOODEN_BUTTONS) - .setItemTags(ItemTags.BUTTONS, ItemTags.WOODEN_BUTTONS)); - addBlockEntry(new BlockEntry(BLOCK_PRESSURE_PLATE, (complexMaterial, settings) -> { - return new WoodenPressurePlateBlock(getBlock(BLOCK_PLANKS)); - }).setBlockTags(BlockTags.PRESSURE_PLATES, BlockTags.WOODEN_PRESSURE_PLATES) - .setItemTags(ItemTags.WOODEN_PRESSURE_PLATES)); - addBlockEntry(new BlockEntry(BLOCK_TRAPDOOR, (complexMaterial, settings) -> { - return new BaseTrapdoorBlock(getBlock(BLOCK_PLANKS)); - }).setBlockTags(BlockTags.TRAPDOORS, BlockTags.WOODEN_TRAPDOORS) - .setItemTags(ItemTags.TRAPDOORS, ItemTags.WOODEN_TRAPDOORS)); - addBlockEntry(new BlockEntry(BLOCK_DOOR, (complexMaterial, settings) -> { - return new BaseDoorBlock(getBlock(BLOCK_PLANKS)); - }).setBlockTags(BlockTags.DOORS, BlockTags.WOODEN_DOORS) - .setItemTags(ItemTags.DOORS, ItemTags.WOODEN_DOORS)); - - - addBlockEntry(new BlockEntry(BLOCK_LADDER, (complexMaterial, settings) -> { - return new BaseLadderBlock(getBlock(BLOCK_PLANKS)); - }).setBlockTags(BlockTags.CLIMBABLE)); - addBlockEntry(new BlockEntry(BLOCK_SIGN, (complexMaterial, settings) -> { - return new BaseSignBlock(getBlock(BLOCK_PLANKS)); - }).setBlockTags(BlockTags.SIGNS) - .setItemTags(ItemTags.SIGNS)); + addBlockEntry(new BlockEntry(BLOCK_PLANKS, (complexMaterial, settings) -> new BaseBlock(settings)) + .setBlockTags(TagAPI.NAMED_BLOCK_PLANKS) + .setItemTags(TagAPI.NAMED_ITEM_PLANKS)); + addBlockEntry(new BlockEntry(BLOCK_STAIRS, (complexMaterial, settings) -> new BaseStairsBlock(getBlock(BLOCK_PLANKS))) + .setBlockTags(TagAPI.NAMED_BLOCK_WOODEN_STAIRS, TagAPI.NAMED_BLOCK_STAIRS) + .setItemTags(TagAPI.NAMED_ITEM_WOODEN_STAIRS, TagAPI.NAMED_ITEM_STAIRS)); + + addBlockEntry(new BlockEntry(BLOCK_SLAB, (complexMaterial, settings) -> new BaseSlabBlock(getBlock(BLOCK_PLANKS))) + .setBlockTags(TagAPI.NAMED_BLOCK_WOODEN_SLABS, TagAPI.NAMED_BLOCK_SLABS) + .setItemTags(TagAPI.NAMED_ITEM_WOODEN_SLABS, TagAPI.NAMED_ITEM_SLABS)); + + addBlockEntry(new BlockEntry(BLOCK_FENCE, (complexMaterial, settings) -> new BaseFenceBlock(getBlock(BLOCK_PLANKS))) + .setBlockTags(TagAPI.NAMED_BLOCK_FENCES, TagAPI.NAMED_BLOCK_WOODEN_FENCES) + .setItemTags(TagAPI.NAMED_ITEM_FENCES, TagAPI.NAMED_ITEM_WOODEN_FENCES)); + + addBlockEntry(new BlockEntry(BLOCK_GATE, (complexMaterial, settings) -> new BaseGateBlock(getBlock(BLOCK_PLANKS))) + .setBlockTags(TagAPI.NAMED_BLOCK_FENCE_GATES)); + + addBlockEntry(new BlockEntry(BLOCK_BUTTON, (complexMaterial, settings) -> new BaseWoodenButtonBlock(getBlock(BLOCK_PLANKS))) + .setBlockTags(TagAPI.NAMED_BLOCK_BUTTONS, TagAPI.NAMED_BLOCK_WOODEN_BUTTONS) + .setItemTags(TagAPI.NAMED_ITEM_BUTTONS, TagAPI.NAMED_ITEM_WOODEN_BUTTONS)); + + addBlockEntry(new BlockEntry(BLOCK_PRESSURE_PLATE, (complexMaterial, settings) -> new WoodenPressurePlateBlock(getBlock(BLOCK_PLANKS))) + .setBlockTags(TagAPI.NAMED_BLOCK_PRESSURE_PLATES, TagAPI.NAMED_BLOCK_WOODEN_PRESSURE_PLATES) + .setItemTags(TagAPI.NAMED_ITEM_WOODEN_PRESSURE_PLATES)); + + addBlockEntry(new BlockEntry(BLOCK_TRAPDOOR, (complexMaterial, settings) -> new BaseTrapdoorBlock(getBlock(BLOCK_PLANKS))) + .setBlockTags(TagAPI.NAMED_BLOCK_TRAPDOORS, TagAPI.NAMED_BLOCK_WOODEN_TRAPDOORS) + .setItemTags(TagAPI.NAMED_ITEM_TRAPDOORS, TagAPI.NAMED_ITEM_WOODEN_TRAPDOORS)); + + addBlockEntry(new BlockEntry(BLOCK_DOOR, (complexMaterial, settings) -> new BaseDoorBlock(getBlock(BLOCK_PLANKS))) + .setBlockTags(TagAPI.NAMED_BLOCK_DOORS, TagAPI.NAMED_BLOCK_WOODEN_DOORS) + .setItemTags(TagAPI.NAMED_ITEM_DOORS, TagAPI.NAMED_ITEM_WOODEN_DOORS)); + addBlockEntry(new BlockEntry(BLOCK_LADDER, (complexMaterial, settings) -> new BaseLadderBlock(getBlock(BLOCK_PLANKS))) + .setBlockTags(TagAPI.NAMED_BLOCK_CLIMBABLE)); + + addBlockEntry(new BlockEntry(BLOCK_SIGN, (complexMaterial, settings) -> new BaseSignBlock(getBlock(BLOCK_PLANKS))) + .setBlockTags(TagAPI.NAMED_BLOCK_SIGNS) + .setItemTags(TagAPI.NAMED_ITEM_SIGNS)); } final protected void initStorage(FabricBlockSettings blockSettings, FabricItemSettings itemSettings) { - addBlockEntry(new BlockEntry(BLOCK_CHEST, (complexMaterial, settings) -> { - return new BaseChestBlock(getBlock(BLOCK_PLANKS)); - }).setBlockTags(TagAPI.BLOCK_CHEST, TagAPI.BLOCK_WOODEN_CHEST) - .setItemTags(TagAPI.ITEM_CHEST, TagAPI.ITEM_WOODEN_CHEST)); + addBlockEntry(new BlockEntry(BLOCK_CHEST, (complexMaterial, settings) -> new BaseChestBlock(getBlock(BLOCK_PLANKS))) + .setBlockTags(TagAPI.NAMED_COMMON_BLOCK_CHEST, TagAPI.NAMED_COMMON_BLOCK_WOODEN_CHEST) + .setItemTags(TagAPI.NAMED_COMMON_ITEM_CHEST, TagAPI.NAMED_COMMON_ITEM_WOODEN_CHEST)); - addBlockEntry(new BlockEntry(BLOCK_BARREL, (complexMaterial, settings) -> { - return new BaseBarrelBlock(getBlock(BLOCK_PLANKS)); - }).setBlockTags(TagAPI.BLOCK_BARREL, TagAPI.BLOCK_WOODEN_BARREL) - .setItemTags(TagAPI.ITEM_BARREL, TagAPI.ITEM_WOODEN_BARREL)); + addBlockEntry(new BlockEntry(BLOCK_BARREL, (complexMaterial, settings) -> new BaseBarrelBlock(getBlock(BLOCK_PLANKS))) + .setBlockTags(TagAPI.NAMED_COMMON_BLOCK_BARREL, TagAPI.NAMED_COMMON_BLOCK_WOODEN_BARREL) + .setItemTags(TagAPI.NAMED_COMMON_ITEM_BARREL, TagAPI.NAMED_COMMON_ITEM_WOODEN_BARREL)); } final protected void initDecorations(FabricBlockSettings blockSettings, FabricItemSettings itemSettings) { - addBlockEntry(new BlockEntry(BLOCK_CRAFTING_TABLE, (complexMaterial, settings) -> { - return new BaseCraftingTableBlock(getBlock(BLOCK_PLANKS)); - }).setBlockTags(TagAPI.BLOCK_WORKBENCHES) - .setItemTags(TagAPI.ITEM_WORKBENCHES)); + addBlockEntry(new BlockEntry(BLOCK_CRAFTING_TABLE, (complexMaterial, settings) -> new BaseCraftingTableBlock(getBlock(BLOCK_PLANKS))) + .setBlockTags(TagAPI.NAMED_COMMON_BLOCK_WORKBENCHES) + .setItemTags(TagAPI.NAMED_COMMON_ITEM_WORKBENCHES)); - addBlockEntry(new BlockEntry(BLOCK_BOOKSHELF, (complexMaterial, settings) -> { - return new BaseBookshelfBlock(getBlock(BLOCK_PLANKS)); - }).setBlockTags(TagAPI.BLOCK_BOOKSHELVES)); + addBlockEntry(new BlockEntry(BLOCK_BOOKSHELF, (complexMaterial, settings) -> new BaseBookshelfBlock(getBlock(BLOCK_PLANKS))) + .setBlockTags(TagAPI.NAMED_COMMON_BLOCK_BOOKSHELVES)); - addBlockEntry(new BlockEntry(BLOCK_COMPOSTER, (complexMaterial, settings) -> { - return new BaseComposterBlock(getBlock(BLOCK_PLANKS)); - })); + addBlockEntry(new BlockEntry(BLOCK_COMPOSTER, (complexMaterial, settings) -> new BaseComposterBlock(getBlock(BLOCK_PLANKS)))); } @Override diff --git a/src/main/java/ru/bclib/complexmaterials/entry/BlockEntry.java b/src/main/java/ru/bclib/complexmaterials/entry/BlockEntry.java index edda7b8a..7cf1e105 100644 --- a/src/main/java/ru/bclib/complexmaterials/entry/BlockEntry.java +++ b/src/main/java/ru/bclib/complexmaterials/entry/BlockEntry.java @@ -2,10 +2,10 @@ package ru.bclib.complexmaterials.entry; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.resources.ResourceLocation; -import net.minecraft.tags.Tag; import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; import ru.bclib.api.TagAPI; +import ru.bclib.api.TagAPI.TagLocation; import ru.bclib.complexmaterials.ComplexMaterial; import ru.bclib.registry.BlockRegistry; @@ -15,8 +15,8 @@ public class BlockEntry extends ComplexMaterialEntry { final BiFunction initFunction; final boolean hasItem; - Tag.Named[] blockTags; - Tag.Named[] itemTags; + TagLocation[] blockTags; + TagLocation[] itemTags; public BlockEntry(String suffix, BiFunction initFunction) { this(suffix, true, initFunction); @@ -28,12 +28,12 @@ public class BlockEntry extends ComplexMaterialEntry { this.hasItem = hasItem; } - public BlockEntry setBlockTags(Tag.Named... blockTags) { + public BlockEntry setBlockTags(TagLocation... blockTags) { this.blockTags = blockTags; return this; } - public BlockEntry setItemTags(Tag.Named... itemTags) { + public BlockEntry setItemTags(TagLocation... itemTags) { this.itemTags = itemTags; return this; } @@ -44,14 +44,14 @@ public class BlockEntry extends ComplexMaterialEntry { if (hasItem) { registry.register(location, block); if (itemTags != null) { - TagAPI.addTags(block, itemTags); + TagAPI.addItemTags(block, itemTags); } } else { registry.registerBlockOnly(location, block); } if (blockTags != null) { - TagAPI.addTags(block, blockTags); + TagAPI.addBlockTags(block, blockTags); } return block; } diff --git a/src/main/java/ru/bclib/complexmaterials/entry/ItemEntry.java b/src/main/java/ru/bclib/complexmaterials/entry/ItemEntry.java index a9be883b..83b63b5c 100644 --- a/src/main/java/ru/bclib/complexmaterials/entry/ItemEntry.java +++ b/src/main/java/ru/bclib/complexmaterials/entry/ItemEntry.java @@ -2,9 +2,9 @@ package ru.bclib.complexmaterials.entry; import net.fabricmc.fabric.api.item.v1.FabricItemSettings; import net.minecraft.resources.ResourceLocation; -import net.minecraft.tags.Tag; import net.minecraft.world.item.Item; import ru.bclib.api.TagAPI; +import ru.bclib.api.TagAPI.TagLocation; import ru.bclib.complexmaterials.ComplexMaterial; import ru.bclib.registry.ItemRegistry; @@ -13,14 +13,14 @@ import java.util.function.BiFunction; public class ItemEntry extends ComplexMaterialEntry { final BiFunction initFunction; - Tag.Named[] itemTags; + TagLocation[] itemTags; public ItemEntry(String suffix, BiFunction initFunction) { super(suffix); this.initFunction = initFunction; } - public ItemEntry setItemTags(Tag.Named[] itemTags) { + public ItemEntry setItemTags(TagLocation[] itemTags) { this.itemTags = itemTags; return this; } @@ -30,7 +30,7 @@ public class ItemEntry extends ComplexMaterialEntry { Item item = initFunction.apply(material, itemSettings); registry.register(location, item); if (itemTags != null) { - TagAPI.addTags(item, itemTags); + TagAPI.addItemTags(item, itemTags); } return item; } diff --git a/src/main/java/ru/bclib/interfaces/TagProvider.java b/src/main/java/ru/bclib/interfaces/TagProvider.java index 3f0ede66..19cb8380 100644 --- a/src/main/java/ru/bclib/interfaces/TagProvider.java +++ b/src/main/java/ru/bclib/interfaces/TagProvider.java @@ -1,12 +1,11 @@ package ru.bclib.interfaces; -import net.minecraft.tags.Tag; -import net.minecraft.tags.Tag.Named; import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; +import ru.bclib.api.TagAPI.TagLocation; import java.util.List; public interface TagProvider { - void addTags(List> blockTags, List> itemTags); + void addTags(List> blockTags, List> itemTags); } diff --git a/src/main/java/ru/bclib/items/tool/BaseShearsItem.java b/src/main/java/ru/bclib/items/tool/BaseShearsItem.java index bdc5df08..aedc9c19 100644 --- a/src/main/java/ru/bclib/items/tool/BaseShearsItem.java +++ b/src/main/java/ru/bclib/items/tool/BaseShearsItem.java @@ -1,5 +1,6 @@ package ru.bclib.items.tool; +import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; @@ -12,12 +13,12 @@ public class BaseShearsItem extends ShearsItem { } public static boolean isShear(ItemStack tool){ - return tool.is(Items.SHEARS) | tool.is(TagAPI.ITEM_COMMON_SHEARS) || tool.is(TagAPI.ITEM_SHEARS); + return tool.is(Items.SHEARS) | tool.is(TagAPI.COMMON_ITEM_SHEARS) || tool.is(FabricToolTags.SHEARS); } public static boolean isShear(ItemStack itemStack, Item item){ if (item == Items.SHEARS){ - return itemStack.is(item) | itemStack.is(TagAPI.ITEM_COMMON_SHEARS) || itemStack.is(TagAPI.ITEM_SHEARS); + return itemStack.is(item) | itemStack.is(TagAPI.COMMON_ITEM_SHEARS) || itemStack.is(FabricToolTags.SHEARS); } else { return itemStack.is(item); } diff --git a/src/main/java/ru/bclib/mixin/client/EnchantingTableBlockMixin.java b/src/main/java/ru/bclib/mixin/client/EnchantingTableBlockMixin.java index 44585eb0..ba00620e 100644 --- a/src/main/java/ru/bclib/mixin/client/EnchantingTableBlockMixin.java +++ b/src/main/java/ru/bclib/mixin/client/EnchantingTableBlockMixin.java @@ -20,6 +20,6 @@ public abstract class EnchantingTableBlockMixin extends Block { target = "Lnet/minecraft/world/level/block/state/BlockState;is(Lnet/minecraft/world/level/block/Block;)Z")//, ) private boolean bclib_isBookshelf(BlockState state, Block block) { - return block == Blocks.BOOKSHELF ? state.is(TagAPI.BLOCK_BOOKSHELVES) : state.is(block); + return block == Blocks.BOOKSHELF ? state.is(TagAPI.COMMON_BLOCK_BOOKSHELVES) : state.is(block); } } diff --git a/src/main/java/ru/bclib/mixin/common/CraftingMenuMixin.java b/src/main/java/ru/bclib/mixin/common/CraftingMenuMixin.java index 82273228..a71468f9 100644 --- a/src/main/java/ru/bclib/mixin/common/CraftingMenuMixin.java +++ b/src/main/java/ru/bclib/mixin/common/CraftingMenuMixin.java @@ -23,7 +23,7 @@ public abstract class CraftingMenuMixin { private void bclib_stillValid(Player player, CallbackInfoReturnable info) { if (access.evaluate((world, pos) -> { BlockState state = world.getBlockState(pos); - return state.getBlock() instanceof CraftingTableBlock || state.is(TagAPI.BLOCK_WORKBENCHES); + return state.getBlock() instanceof CraftingTableBlock || state.is(TagAPI.COMMON_BLOCK_WORKBENCHES); }, true)) { info.setReturnValue(true); } diff --git a/src/main/java/ru/bclib/mixin/common/EnchantmentMenuMixin.java b/src/main/java/ru/bclib/mixin/common/EnchantmentMenuMixin.java index d6c5629c..1386ca45 100644 --- a/src/main/java/ru/bclib/mixin/common/EnchantmentMenuMixin.java +++ b/src/main/java/ru/bclib/mixin/common/EnchantmentMenuMixin.java @@ -22,6 +22,6 @@ public abstract class EnchantmentMenuMixin extends AbstractContainerMenu { target = "Lnet/minecraft/world/level/block/state/BlockState;is(Lnet/minecraft/world/level/block/Block;)Z")//, ) private boolean bclib_isBookshelf(BlockState state, Block block) { - return block == Blocks.BOOKSHELF ? state.is(TagAPI.BLOCK_BOOKSHELVES) : state.is(block); + return block == Blocks.BOOKSHELF ? state.is(TagAPI.COMMON_BLOCK_BOOKSHELVES) : state.is(block); } } diff --git a/src/main/java/ru/bclib/mixin/common/MinecraftServerMixin.java b/src/main/java/ru/bclib/mixin/common/MinecraftServerMixin.java index 54ea51c1..661195c5 100644 --- a/src/main/java/ru/bclib/mixin/common/MinecraftServerMixin.java +++ b/src/main/java/ru/bclib/mixin/common/MinecraftServerMixin.java @@ -21,7 +21,6 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -import ru.bclib.BCLib; import ru.bclib.api.biomes.BiomeAPI; import ru.bclib.api.dataexchange.DataExchangeAPI; import ru.bclib.recipes.BCLRecipeManager; diff --git a/src/main/java/ru/bclib/mixin/common/PistonBaseBlockMixin.java b/src/main/java/ru/bclib/mixin/common/PistonBaseBlockMixin.java index ae2d3a02..ffe03b63 100644 --- a/src/main/java/ru/bclib/mixin/common/PistonBaseBlockMixin.java +++ b/src/main/java/ru/bclib/mixin/common/PistonBaseBlockMixin.java @@ -15,7 +15,7 @@ import ru.bclib.api.TagAPI; public class PistonBaseBlockMixin { @Inject(method="isPushable", at=@At("HEAD"), cancellable = true) private static void bclib_isPushable(BlockState blockState, Level level, BlockPos blockPos, Direction direction, boolean bl, Direction direction2, CallbackInfoReturnable cir){ - if (blockState.is(TagAPI.BLOCK_IMMOBILE)){ + if (blockState.is(TagAPI.COMMON_BLOCK_IMMOBILE)){ cir.setReturnValue(false); cir.cancel(); } diff --git a/src/main/java/ru/bclib/mixin/common/PortalShapeMixin.java b/src/main/java/ru/bclib/mixin/common/PortalShapeMixin.java index b4cd38e7..47f6bf0d 100644 --- a/src/main/java/ru/bclib/mixin/common/PortalShapeMixin.java +++ b/src/main/java/ru/bclib/mixin/common/PortalShapeMixin.java @@ -28,6 +28,6 @@ public class PortalShapeMixin { } private static boolean be_FRAME(StatePredicate FRAME, BlockState state, BlockGetter getter, BlockPos pos){ - return state.is(TagAPI.BLOCK_NETHER_PORTAL_FRAME) || FRAME.test(state, getter, pos); + return state.is(TagAPI.COMMON_BLOCK_NETHER_PORTAL_FRAME) || FRAME.test(state, getter, pos); } } diff --git a/src/main/java/ru/bclib/mixin/common/shears/ItemPredicateBuilderMixin.java b/src/main/java/ru/bclib/mixin/common/shears/ItemPredicateBuilderMixin.java index 4aad6dbd..2e10fa3a 100644 --- a/src/main/java/ru/bclib/mixin/common/shears/ItemPredicateBuilderMixin.java +++ b/src/main/java/ru/bclib/mixin/common/shears/ItemPredicateBuilderMixin.java @@ -1,12 +1,10 @@ package ru.bclib.mixin.common.shears; +import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags; import net.minecraft.advancements.critereon.ItemPredicate; -import net.minecraft.advancements.critereon.ItemPredicate.Builder; -import net.minecraft.tags.Tag; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; -import net.minecraft.world.level.ItemLike; import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; @@ -26,7 +24,7 @@ public abstract class ItemPredicateBuilderMixin { @Inject(method = "matches", at = @At("HEAD"), cancellable = true) void bclib_of(ItemStack itemStack, CallbackInfoReturnable cir) { if (this.items != null && this.items.size() == 1 && this.items.contains(Items.SHEARS)) { - if (itemStack.is(TagAPI.ITEM_COMMON_SHEARS) || itemStack.is(TagAPI.ITEM_SHEARS)){ + if (itemStack.is(TagAPI.COMMON_ITEM_SHEARS) || itemStack.is(FabricToolTags.SHEARS)){ cir.setReturnValue(true); } } diff --git a/src/main/java/ru/bclib/recipes/AnvilRecipe.java b/src/main/java/ru/bclib/recipes/AnvilRecipe.java index d761f68a..dbd18769 100644 --- a/src/main/java/ru/bclib/recipes/AnvilRecipe.java +++ b/src/main/java/ru/bclib/recipes/AnvilRecipe.java @@ -116,7 +116,7 @@ public class AnvilRecipe implements Recipe, UnknownReceipBookCategory public boolean matches(Container craftingInventory) { ItemStack hammer = craftingInventory.getItem(1); - if (hammer.isEmpty() || !TagAPI.ITEM_HAMMERS.contains(hammer.getItem())) { + if (hammer.isEmpty() || !TagAPI.COMMON_ITEM_HAMMERS.contains(hammer.getItem())) { return false; } ItemStack material = craftingInventory.getItem(0); @@ -140,7 +140,7 @@ public class AnvilRecipe implements Recipe, UnknownReceipBookCategory @Override public NonNullList getIngredients() { NonNullList defaultedList = NonNullList.create(); - defaultedList.add(Ingredient.of(TagAPI.ITEM_HAMMERS + defaultedList.add(Ingredient.of(TagAPI.COMMON_ITEM_HAMMERS .getValues() .stream() .filter(hammer -> ((TieredItem) hammer).getTier().getLevel() >= toolLevel) diff --git a/src/main/java/ru/bclib/recipes/CraftingRecipes.java b/src/main/java/ru/bclib/recipes/CraftingRecipes.java index 539305bf..73b92f23 100644 --- a/src/main/java/ru/bclib/recipes/CraftingRecipes.java +++ b/src/main/java/ru/bclib/recipes/CraftingRecipes.java @@ -12,23 +12,23 @@ public class CraftingRecipes { GridRecipe.make(BCLib.MOD_ID, "tag_smith_table", Blocks.SMITHING_TABLE) .setShape("II", "##", "##") .addMaterial('#', ItemTags.PLANKS) - .addMaterial('I', TagAPI.ITEM_IRON_INGOTS) + .addMaterial('I', TagAPI.COMMON_ITEM_IRON_INGOTS) .checkConfig(Configs.RECIPE_CONFIG) .build(); GridRecipe.make(BCLib.MOD_ID, "tag_cauldron", Blocks.CAULDRON) .setShape("I I", "I I", "III") - .addMaterial('I', TagAPI.ITEM_IRON_INGOTS) + .addMaterial('I', TagAPI.COMMON_ITEM_IRON_INGOTS) .checkConfig(Configs.RECIPE_CONFIG) .build(); GridRecipe.make(BCLib.MOD_ID, "tag_hopper", Blocks.HOPPER) .setShape("I I", "ICI", " I ") - .addMaterial('I', TagAPI.ITEM_IRON_INGOTS) - .addMaterial('C', TagAPI.ITEM_CHEST) + .addMaterial('I', TagAPI.COMMON_ITEM_IRON_INGOTS) + .addMaterial('C', TagAPI.COMMON_ITEM_CHEST) .checkConfig(Configs.RECIPE_CONFIG) .build(); GridRecipe.make(BCLib.MOD_ID, "tag_piston", Blocks.PISTON) .setShape("WWW", "CIC", "CDC") - .addMaterial('I', TagAPI.ITEM_IRON_INGOTS) + .addMaterial('I', TagAPI.COMMON_ITEM_IRON_INGOTS) .addMaterial('D', Items.REDSTONE) .addMaterial('C', Items.COBBLESTONE) .addMaterial('W', ItemTags.PLANKS) @@ -37,50 +37,50 @@ public class CraftingRecipes { GridRecipe.make(BCLib.MOD_ID, "tag_rail", Blocks.RAIL) .setOutputCount(16) .setShape("I I", "ISI", "I I") - .addMaterial('I', TagAPI.ITEM_IRON_INGOTS) + .addMaterial('I', TagAPI.COMMON_ITEM_IRON_INGOTS) .addMaterial('S', Items.STICK) .checkConfig(Configs.RECIPE_CONFIG) .build(); GridRecipe.make(BCLib.MOD_ID, "tag_stonecutter", Blocks.STONECUTTER) .setShape(" I ", "SSS") - .addMaterial('I', TagAPI.ITEM_IRON_INGOTS) + .addMaterial('I', TagAPI.COMMON_ITEM_IRON_INGOTS) .addMaterial('S', Items.STONE) .checkConfig(Configs.RECIPE_CONFIG) .build(); GridRecipe.make(BCLib.MOD_ID, "tag_bucket", Items.BUCKET) .setShape("I I", " I ") - .addMaterial('I', TagAPI.ITEM_IRON_INGOTS) + .addMaterial('I', TagAPI.COMMON_ITEM_IRON_INGOTS) .checkConfig(Configs.RECIPE_CONFIG) .build(); GridRecipe.make(BCLib.MOD_ID, "tag_compass", Items.COMPASS) .setShape(" I ", "IDI", " I ") - .addMaterial('I', TagAPI.ITEM_IRON_INGOTS) + .addMaterial('I', TagAPI.COMMON_ITEM_IRON_INGOTS) .addMaterial('D', Items.REDSTONE) .checkConfig(Configs.RECIPE_CONFIG) .build(); GridRecipe.make(BCLib.MOD_ID, "tag_minecart", Items.MINECART) .setShape("I I", "III") - .addMaterial('I', TagAPI.ITEM_IRON_INGOTS) + .addMaterial('I', TagAPI.COMMON_ITEM_IRON_INGOTS) .checkConfig(Configs.RECIPE_CONFIG) .build(); GridRecipe.make(BCLib.MOD_ID, "tag_shield", Items.SHIELD) .setShape("WIW", "WWW", " W ") - .addMaterial('I', TagAPI.ITEM_IRON_INGOTS) + .addMaterial('I', TagAPI.COMMON_ITEM_IRON_INGOTS) .addMaterial('W', ItemTags.PLANKS) .checkConfig(Configs.RECIPE_CONFIG) .build(); GridRecipe.make(BCLib.MOD_ID, "tag_hopper", Blocks.HOPPER) .setShape("I I", "ICI", " I ") - .addMaterial('I', TagAPI.ITEM_IRON_INGOTS) - .addMaterial('C', TagAPI.ITEM_CHEST) + .addMaterial('I', TagAPI.COMMON_ITEM_IRON_INGOTS) + .addMaterial('C', TagAPI.COMMON_ITEM_CHEST) .checkConfig(Configs.RECIPE_CONFIG) .build(); GridRecipe.make(BCLib.MOD_ID, "tag_shulker_box", Blocks.SHULKER_BOX) .setShape("S", "C", "S") .addMaterial('S', Items.SHULKER_SHELL) - .addMaterial('C', TagAPI.ITEM_CHEST) + .addMaterial('C', TagAPI.COMMON_ITEM_CHEST) .checkConfig(Configs.RECIPE_CONFIG) .build(); } diff --git a/src/main/java/ru/bclib/registry/BlockRegistry.java b/src/main/java/ru/bclib/registry/BlockRegistry.java index bf067f1e..6e64bdd6 100644 --- a/src/main/java/ru/bclib/registry/BlockRegistry.java +++ b/src/main/java/ru/bclib/registry/BlockRegistry.java @@ -1,6 +1,5 @@ package ru.bclib.registry; -import net.fabricmc.fabric.api.mininglevel.v1.FabricMineableTags; import net.fabricmc.fabric.api.registry.FlammableBlockRegistry; import net.minecraft.core.Registry; import net.minecraft.resources.ResourceLocation; @@ -43,16 +42,22 @@ public class BlockRegistry extends BaseRegistry { getModBlocks(id.getNamespace()).add(block); if (block instanceof BaseLeavesBlock){ - TagAPI.addTags(block, TagAPI.BLOCK_LEAVES, TagAPI.MINEABLE_HOE, FabricMineableTags.SHEARS_MINEABLE); + TagAPI.addBlockTags( + block, + TagAPI.NAMED_BLOCK_LEAVES, + TagAPI.NAMED_COMMON_BLOCK_LEAVES, + TagAPI.NAMED_MINEABLE_HOE, + TagAPI.NAMED_MINEABLE_SHEARS + ); if (item != null){ - TagAPI.addTags(item, TagAPI.ITEM_LEAVES); + TagAPI.addItemTags(item, TagAPI.NAMED_COMMON_ITEM_LEAVES, TagAPI.NAMED_ITEM_LEAVES); } } else if (block instanceof BaseOreBlock){ - TagAPI.addTags(block, TagAPI.MINEABLE_PICKAXE); + TagAPI.addBlockTags(block, TagAPI.NAMED_MINEABLE_PICKAXE); } else if (block instanceof FeatureSaplingBlock){ - TagAPI.addTags(block, TagAPI.BLOCK_SAPLINGS); + TagAPI.addBlockTags(block, TagAPI.NAMED_COMMON_BLOCK_SAPLINGS, TagAPI.NAMED_BLOCK_SAPLINGS); if (item != null){ - TagAPI.addTags(item, TagAPI.ITEM_SAPLINGS); + TagAPI.addItemTags(item, TagAPI.NAMED_COMMON_ITEM_SAPLINGS, TagAPI.NAMED_ITEM_SAPLINGS); } } diff --git a/src/main/java/ru/bclib/registry/ItemRegistry.java b/src/main/java/ru/bclib/registry/ItemRegistry.java index fddeacb4..43c9554b 100644 --- a/src/main/java/ru/bclib/registry/ItemRegistry.java +++ b/src/main/java/ru/bclib/registry/ItemRegistry.java @@ -1,6 +1,5 @@ package ru.bclib.registry; -import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags; import net.minecraft.core.BlockSource; import net.minecraft.core.Direction; import net.minecraft.core.Registry; @@ -8,7 +7,6 @@ import net.minecraft.core.dispenser.DefaultDispenseItemBehavior; import net.minecraft.core.dispenser.ShearsDispenseItemBehavior; import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvent; -import net.minecraft.tags.Tag; import net.minecraft.world.effect.MobEffectInstance; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.Mob; @@ -71,22 +69,22 @@ public class ItemRegistry extends BaseRegistry { registerItem(itemId, item); if (item instanceof ShovelItem) { - TagAPI.addTag((Tag.Named) FabricToolTags.SHOVELS, item); + TagAPI.addItemTag(TagAPI.NAMED_FABRIC_SHOVELS, item); } else if (item instanceof SwordItem) { - TagAPI.addTag((Tag.Named) FabricToolTags.SWORDS, item); + TagAPI.addItemTag(TagAPI.NAMED_FABRIC_SWORDS, item); } else if (item instanceof BasePickaxeItem) { - TagAPI.addTag((Tag.Named) FabricToolTags.PICKAXES, item); + TagAPI.addItemTag(TagAPI.NAMED_FABRIC_PICKAXES, item); } else if (item instanceof BaseAxeItem) { - TagAPI.addTag((Tag.Named) FabricToolTags.AXES, item); + TagAPI.addItemTag(TagAPI.NAMED_FABRIC_AXES, item); } else if (item instanceof BaseHoeItem) { - TagAPI.addTag((Tag.Named) FabricToolTags.HOES, item); + TagAPI.addItemTag(TagAPI.NAMED_FABRIC_HOES, item); } else if (item instanceof BaseShearsItem) { - TagAPI.addTags(item, (Tag.Named) FabricToolTags.SHEARS, TagAPI.ITEM_SHEARS, TagAPI.ITEM_COMMON_SHEARS); + TagAPI.addItemTags(item, TagAPI.NAMED_FABRIC_SHEARS, TagAPI.NAMED_COMMON_ITEM_SHEARS); DispenserBlock.registerBehavior(item.asItem(), new ShearsDispenseItemBehavior()); } diff --git a/src/main/java/ru/bclib/world/biomes/BCLBiome.java b/src/main/java/ru/bclib/world/biomes/BCLBiome.java index 0c115656..2cbe01f8 100644 --- a/src/main/java/ru/bclib/world/biomes/BCLBiome.java +++ b/src/main/java/ru/bclib/world/biomes/BCLBiome.java @@ -15,7 +15,6 @@ import net.minecraft.world.level.levelgen.placement.PlacedFeature; import org.jetbrains.annotations.Nullable; import ru.bclib.BCLib; import ru.bclib.api.biomes.BiomeAPI; -import ru.bclib.config.Configs; import ru.bclib.util.WeightedList; import java.util.HashMap; diff --git a/src/main/java/ru/bclib/world/biomes/BCLBiomeSettings.java b/src/main/java/ru/bclib/world/biomes/BCLBiomeSettings.java index f2efdecc..0b0ae7a8 100644 --- a/src/main/java/ru/bclib/world/biomes/BCLBiomeSettings.java +++ b/src/main/java/ru/bclib/world/biomes/BCLBiomeSettings.java @@ -2,7 +2,6 @@ package ru.bclib.world.biomes; import net.minecraft.world.level.biome.Biome; import ru.bclib.config.Configs; -import ru.bclib.world.biomes.VanillaBiomeSettings.Builder; public class BCLBiomeSettings { public static Builder createBCL(){ diff --git a/src/main/java/ru/bclib/world/features/NBTStructureFeature.java b/src/main/java/ru/bclib/world/features/NBTStructureFeature.java index 69227f66..8f1d6590 100644 --- a/src/main/java/ru/bclib/world/features/NBTStructureFeature.java +++ b/src/main/java/ru/bclib/world/features/NBTStructureFeature.java @@ -106,9 +106,10 @@ public abstract class NBTStructureFeature extends DefaultFeature { center = center.offset(0, getYOffset(structure, world, center, random) + 0.5, 0); BoundingBox bounds = makeBox(center); - StructurePlaceSettings placementData = new StructurePlaceSettings().setRotation(rotation) - .setMirror(mirror) - .setBoundingBox(bounds); + StructurePlaceSettings placementData = new StructurePlaceSettings() + .setRotation(rotation) + .setMirror(mirror) + .setBoundingBox(bounds); addStructureData(placementData); center = center.offset(-offset.getX() * 0.5, 0, -offset.getZ() * 0.5); structure.placeInWorld(world, center, center, placementData, random, 4); @@ -140,11 +141,11 @@ public abstract class NBTStructureFeature extends DefaultFeature { mut.setZ(z); mut.setY(surfMax); BlockState state = world.getBlockState(mut); - if (!state.is(TagAPI.BLOCK_GEN_TERRAIN) && state.isFaceSturdy(world, mut, Direction.DOWN)) { + if (!isTerrain(state) && state.isFaceSturdy(world, mut, Direction.DOWN)) { for (int i = 0; i < 10; i++) { mut.setY(mut.getY() - 1); BlockState stateSt = world.getBlockState(mut); - if (!stateSt.is(TagAPI.BLOCK_GEN_TERRAIN)) { + if (!isTerrain(stateSt)) { if (merge == TerrainMerge.SURFACE) { boolean isTop = mut.getY() == surfMax && state.getMaterial().isSolidBlocking(); Biome b = world.getBiome(mut); @@ -156,7 +157,7 @@ public abstract class NBTStructureFeature extends DefaultFeature { } } else { - if (stateSt.is(TagAPI.BLOCK_END_GROUND) && state.getMaterial().isSolidBlocking()) { + if (isTerrain(state) && state.getMaterial().isSolidBlocking()) { if (merge == TerrainMerge.SURFACE) { Biome b = world.getBiome(mut); BlockState bottom = BiomeAPI.findUnderMaterial(b).orElse(defaultBlock); @@ -178,6 +179,10 @@ public abstract class NBTStructureFeature extends DefaultFeature { return true; } + private boolean isTerrain(BlockState state) { + return state.is(TagAPI.COMMON_BLOCK_END_STONES) || state.is(TagAPI.COMMON_BLOCK_NETHER_STONES); + } + protected BoundingBox makeBox(BlockPos pos) { int sx = ((pos.getX() >> 4) << 4) - 16; int sz = ((pos.getZ() >> 4) << 4) - 16; @@ -210,7 +215,7 @@ public abstract class NBTStructureFeature extends DefaultFeature { return template; } - public static enum TerrainMerge { + public enum TerrainMerge { NONE, SURFACE, OBJECT; public static TerrainMerge getFromString(String type) { diff --git a/src/main/java/ru/bclib/world/generator/BCLBiomeSource.java b/src/main/java/ru/bclib/world/generator/BCLBiomeSource.java index 9ecaa92b..a329a875 100644 --- a/src/main/java/ru/bclib/world/generator/BCLBiomeSource.java +++ b/src/main/java/ru/bclib/world/generator/BCLBiomeSource.java @@ -4,8 +4,6 @@ import net.minecraft.core.Registry; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.biome.BiomeSource; import ru.bclib.api.biomes.BiomeAPI; -import ru.bclib.world.biomes.BCLBiome; -import ru.bclib.world.biomes.BCLBiomeSettings; import java.util.List;