From b6641ad2ba585647ddc533ea9df39578bb0faa44 Mon Sep 17 00:00:00 2001 From: drcrazy Date: Mon, 5 Oct 2020 17:16:54 +0300 Subject: [PATCH] Fix omni-tool ore mining. Closes #2196 --- .../java/techreborn/items/tool/DrillItem.java | 17 +++++++++-------- .../items/tool/industrial/OmniToolItem.java | 17 ++++++++++++++++- .../resources/data/fabric/tags/items/axes.json | 3 ++- .../data/fabric/tags/items/pickaxes.json | 3 ++- .../data/fabric/tags/items/shovels.json | 3 ++- .../data/fabric/tags/items/swords.json | 3 ++- 6 files changed, 33 insertions(+), 13 deletions(-) diff --git a/src/main/java/techreborn/items/tool/DrillItem.java b/src/main/java/techreborn/items/tool/DrillItem.java index e6d965325..940d5ae1a 100644 --- a/src/main/java/techreborn/items/tool/DrillItem.java +++ b/src/main/java/techreborn/items/tool/DrillItem.java @@ -129,14 +129,6 @@ public class DrillItem extends PickaxeItem implements EnergyHolder, ItemDurabili InitUtils.initPoweredItems(this, stacks); } - @Override - public int getMiningLevel(Tag tag, BlockState state, ItemStack stack, LivingEntity user) { - if (tag.equals(FabricToolTags.PICKAXES) || tag.equals(FabricToolTags.SHOVELS)) { - return miningLevel; - } - return 0; - } - // ItemDurabilityExtensions @Override public double getDurability(ItemStack stack) { @@ -168,4 +160,13 @@ public class DrillItem extends PickaxeItem implements EnergyHolder, ItemDurabili public double getMaxOutput(EnergySide side) { return 0; } + + // DynamicAttributeTool + @Override + public int getMiningLevel(Tag tag, BlockState state, ItemStack stack, LivingEntity user) { + if (tag.equals(FabricToolTags.PICKAXES) || tag.equals(FabricToolTags.SHOVELS)) { + return miningLevel; + } + return 0; + } } diff --git a/src/main/java/techreborn/items/tool/industrial/OmniToolItem.java b/src/main/java/techreborn/items/tool/industrial/OmniToolItem.java index d783026e9..a8cd7602c 100644 --- a/src/main/java/techreborn/items/tool/industrial/OmniToolItem.java +++ b/src/main/java/techreborn/items/tool/industrial/OmniToolItem.java @@ -26,12 +26,15 @@ package techreborn.items.tool.industrial; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; +import net.fabricmc.fabric.api.tool.attribute.v1.DynamicAttributeTool; +import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags; import net.minecraft.block.BlockState; import net.minecraft.client.item.TooltipContext; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.damage.DamageSource; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.*; +import net.minecraft.tag.Tag; import net.minecraft.text.LiteralText; import net.minecraft.text.Text; import net.minecraft.util.ActionResult; @@ -50,20 +53,23 @@ import team.reborn.energy.EnergyTier; import techreborn.TechReborn; import techreborn.config.TechRebornConfig; import techreborn.init.TRContent; +import techreborn.items.tool.MiningLevel; import techreborn.utils.InitUtils; import org.jetbrains.annotations.Nullable; import java.util.List; -public class OmniToolItem extends PickaxeItem implements EnergyHolder, ItemDurabilityExtensions { +public class OmniToolItem extends PickaxeItem implements EnergyHolder, ItemDurabilityExtensions, DynamicAttributeTool { public final int maxCharge = TechRebornConfig.omniToolCharge; public int cost = TechRebornConfig.omniToolCost; public int hitCost = TechRebornConfig.omniToolHitCost; + public final int miningLevel; // 4M FE max charge with 1k charge rate public OmniToolItem() { super(ToolMaterials.DIAMOND, 3, 1, new Item.Settings().group(TechReborn.ITEMGROUP).maxCount(1)); + this.miningLevel = MiningLevel.DIAMOND.intLevel; } // PickaxeItem @@ -165,4 +171,13 @@ public class OmniToolItem extends PickaxeItem implements EnergyHolder, ItemDurab public EnergyTier getTier() { return EnergyTier.EXTREME; } + + // DynamicAttributeTool + @Override + public int getMiningLevel(Tag tag, BlockState state, ItemStack stack, LivingEntity user) { + if (tag.equals(FabricToolTags.PICKAXES) || tag.equals(FabricToolTags.SHOVELS) || tag.equals(FabricToolTags.AXES) || tag.equals(FabricToolTags.SHEARS) || tag.equals(FabricToolTags.SWORDS)) { + return miningLevel; + } + return 0; + } } diff --git a/src/main/resources/data/fabric/tags/items/axes.json b/src/main/resources/data/fabric/tags/items/axes.json index 7e7735765..194808090 100644 --- a/src/main/resources/data/fabric/tags/items/axes.json +++ b/src/main/resources/data/fabric/tags/items/axes.json @@ -7,6 +7,7 @@ "techreborn:peridot_axe", "techreborn:basic_chainsaw", "techreborn:advanced_chainsaw", - "techreborn:industrial_chainsaw" + "techreborn:industrial_chainsaw", + "techreborn:omni_tool" ] } \ No newline at end of file diff --git a/src/main/resources/data/fabric/tags/items/pickaxes.json b/src/main/resources/data/fabric/tags/items/pickaxes.json index 293d25a44..fc1193f9c 100644 --- a/src/main/resources/data/fabric/tags/items/pickaxes.json +++ b/src/main/resources/data/fabric/tags/items/pickaxes.json @@ -11,6 +11,7 @@ "techreborn:basic_jackhammer", "techreborn:advanced_jackhammer", "techreborn:industrial_jackhammer", - "techreborn:rock_cutter" + "techreborn:rock_cutter", + "techreborn:omni_tool" ] } \ No newline at end of file diff --git a/src/main/resources/data/fabric/tags/items/shovels.json b/src/main/resources/data/fabric/tags/items/shovels.json index c0fffb907..9e22d7c9a 100644 --- a/src/main/resources/data/fabric/tags/items/shovels.json +++ b/src/main/resources/data/fabric/tags/items/shovels.json @@ -7,6 +7,7 @@ "techreborn:peridot_spade", "techreborn:basic_drill", "techreborn:advanced_drill", - "techreborn:industrial_drill" + "techreborn:industrial_drill", + "techreborn:omni_tool" ] } diff --git a/src/main/resources/data/fabric/tags/items/swords.json b/src/main/resources/data/fabric/tags/items/swords.json index 33ce1c1c4..1684f2a70 100644 --- a/src/main/resources/data/fabric/tags/items/swords.json +++ b/src/main/resources/data/fabric/tags/items/swords.json @@ -8,6 +8,7 @@ "techreborn:nanosaber", "techreborn:basic_chainsaw", "techreborn:advanced_chainsaw", - "techreborn:industrial_chainsaw" + "techreborn:industrial_chainsaw", + "techreborn:omni_tool" ] } \ No newline at end of file