From fde244965c97aec85154ee11793566cf86337405 Mon Sep 17 00:00:00 2001 From: Frank Date: Sat, 30 Jul 2022 11:45:00 +0200 Subject: [PATCH] Add correct Mining-Level tags and introduce custom one for Netherite --- .../betterx/bclib/blocks/BaseOreBlock.java | 21 ++++++++++++++++++- .../worlds/together/tag/v3/MineableTags.java | 2 ++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/betterx/bclib/blocks/BaseOreBlock.java b/src/main/java/org/betterx/bclib/blocks/BaseOreBlock.java index 4e343e7d..ea2c0506 100644 --- a/src/main/java/org/betterx/bclib/blocks/BaseOreBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/BaseOreBlock.java @@ -1,19 +1,25 @@ package org.betterx.bclib.blocks; import org.betterx.bclib.interfaces.BlockModelProvider; +import org.betterx.bclib.interfaces.TagProvider; import org.betterx.bclib.util.LootUtil; import org.betterx.bclib.util.MHelper; +import org.betterx.worlds.together.tag.v3.MineableTags; import net.minecraft.client.renderer.block.model.BlockModel; import net.minecraft.resources.ResourceLocation; +import net.minecraft.tags.BlockTags; +import net.minecraft.tags.TagKey; import net.minecraft.util.Mth; import net.minecraft.util.valueproviders.UniformInt; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.TieredItem; +import net.minecraft.world.item.Tiers; import net.minecraft.world.item.enchantment.EnchantmentHelper; import net.minecraft.world.item.enchantment.Enchantments; import net.minecraft.world.level.ItemLike; +import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.DropExperienceBlock; import net.minecraft.world.level.block.SoundType; import net.minecraft.world.level.block.state.BlockState; @@ -28,7 +34,7 @@ import java.util.Collections; import java.util.List; import java.util.function.Supplier; -public class BaseOreBlock extends DropExperienceBlock implements BlockModelProvider { +public class BaseOreBlock extends DropExperienceBlock implements BlockModelProvider, TagProvider { private final Supplier dropItem; private final int minCount; private final int maxCount; @@ -128,4 +134,17 @@ public class BaseOreBlock extends DropExperienceBlock implements BlockModelProvi public BlockModel getItemModel(ResourceLocation resourceLocation) { return getBlockModel(resourceLocation, defaultBlockState()); } + + @Override + public void addTags(List> blockTags, List> itemTags) { + if (this.miningLevel == Tiers.STONE.getLevel()) { + blockTags.add(BlockTags.NEEDS_STONE_TOOL); + } else if (this.miningLevel == Tiers.IRON.getLevel()) { + blockTags.add(BlockTags.NEEDS_IRON_TOOL); + } else if (this.miningLevel == Tiers.DIAMOND.getLevel()) { + blockTags.add(BlockTags.NEEDS_DIAMOND_TOOL); + } else if (this.miningLevel == Tiers.NETHERITE.getLevel()) { + blockTags.add(MineableTags.NEEDS_NETHERITE_TOOL); + } + } } diff --git a/src/main/java/org/betterx/worlds/together/tag/v3/MineableTags.java b/src/main/java/org/betterx/worlds/together/tag/v3/MineableTags.java index 38f878ea..9bfe44dc 100644 --- a/src/main/java/org/betterx/worlds/together/tag/v3/MineableTags.java +++ b/src/main/java/org/betterx/worlds/together/tag/v3/MineableTags.java @@ -16,6 +16,8 @@ public class MineableTags { public static final TagKey SWORD = FabricMineableTags.SWORD_MINEABLE; public static final TagKey HAMMER = TagManager.BLOCKS.makeCommonTag("mineable/hammer"); + public static final TagKey NEEDS_NETHERITE_TOOL = TagManager.BLOCKS.makeCommonTag("needs_netherite_tool"); + static void prepareTags() { } }