Fix omni-tool ore mining. Closes #2196

This commit is contained in:
drcrazy 2020-10-05 17:16:54 +03:00
parent 3a159d7437
commit b6641ad2ba
6 changed files with 33 additions and 13 deletions

View file

@ -129,14 +129,6 @@ public class DrillItem extends PickaxeItem implements EnergyHolder, ItemDurabili
InitUtils.initPoweredItems(this, stacks); InitUtils.initPoweredItems(this, stacks);
} }
@Override
public int getMiningLevel(Tag<Item> tag, BlockState state, ItemStack stack, LivingEntity user) {
if (tag.equals(FabricToolTags.PICKAXES) || tag.equals(FabricToolTags.SHOVELS)) {
return miningLevel;
}
return 0;
}
// ItemDurabilityExtensions // ItemDurabilityExtensions
@Override @Override
public double getDurability(ItemStack stack) { public double getDurability(ItemStack stack) {
@ -168,4 +160,13 @@ public class DrillItem extends PickaxeItem implements EnergyHolder, ItemDurabili
public double getMaxOutput(EnergySide side) { public double getMaxOutput(EnergySide side) {
return 0; return 0;
} }
// DynamicAttributeTool
@Override
public int getMiningLevel(Tag<Item> tag, BlockState state, ItemStack stack, LivingEntity user) {
if (tag.equals(FabricToolTags.PICKAXES) || tag.equals(FabricToolTags.SHOVELS)) {
return miningLevel;
}
return 0;
}
} }

View file

@ -26,12 +26,15 @@ package techreborn.items.tool.industrial;
import net.fabricmc.api.EnvType; import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment; 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.block.BlockState;
import net.minecraft.client.item.TooltipContext; import net.minecraft.client.item.TooltipContext;
import net.minecraft.entity.LivingEntity; import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.damage.DamageSource; import net.minecraft.entity.damage.DamageSource;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.*; import net.minecraft.item.*;
import net.minecraft.tag.Tag;
import net.minecraft.text.LiteralText; import net.minecraft.text.LiteralText;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import net.minecraft.util.ActionResult; import net.minecraft.util.ActionResult;
@ -50,20 +53,23 @@ import team.reborn.energy.EnergyTier;
import techreborn.TechReborn; import techreborn.TechReborn;
import techreborn.config.TechRebornConfig; import techreborn.config.TechRebornConfig;
import techreborn.init.TRContent; import techreborn.init.TRContent;
import techreborn.items.tool.MiningLevel;
import techreborn.utils.InitUtils; import techreborn.utils.InitUtils;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.List; 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 final int maxCharge = TechRebornConfig.omniToolCharge;
public int cost = TechRebornConfig.omniToolCost; public int cost = TechRebornConfig.omniToolCost;
public int hitCost = TechRebornConfig.omniToolHitCost; public int hitCost = TechRebornConfig.omniToolHitCost;
public final int miningLevel;
// 4M FE max charge with 1k charge rate // 4M FE max charge with 1k charge rate
public OmniToolItem() { public OmniToolItem() {
super(ToolMaterials.DIAMOND, 3, 1, new Item.Settings().group(TechReborn.ITEMGROUP).maxCount(1)); super(ToolMaterials.DIAMOND, 3, 1, new Item.Settings().group(TechReborn.ITEMGROUP).maxCount(1));
this.miningLevel = MiningLevel.DIAMOND.intLevel;
} }
// PickaxeItem // PickaxeItem
@ -165,4 +171,13 @@ public class OmniToolItem extends PickaxeItem implements EnergyHolder, ItemDurab
public EnergyTier getTier() { public EnergyTier getTier() {
return EnergyTier.EXTREME; return EnergyTier.EXTREME;
} }
// DynamicAttributeTool
@Override
public int getMiningLevel(Tag<Item> 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;
}
} }

View file

@ -7,6 +7,7 @@
"techreborn:peridot_axe", "techreborn:peridot_axe",
"techreborn:basic_chainsaw", "techreborn:basic_chainsaw",
"techreborn:advanced_chainsaw", "techreborn:advanced_chainsaw",
"techreborn:industrial_chainsaw" "techreborn:industrial_chainsaw",
"techreborn:omni_tool"
] ]
} }

View file

@ -11,6 +11,7 @@
"techreborn:basic_jackhammer", "techreborn:basic_jackhammer",
"techreborn:advanced_jackhammer", "techreborn:advanced_jackhammer",
"techreborn:industrial_jackhammer", "techreborn:industrial_jackhammer",
"techreborn:rock_cutter" "techreborn:rock_cutter",
"techreborn:omni_tool"
] ]
} }

View file

@ -7,6 +7,7 @@
"techreborn:peridot_spade", "techreborn:peridot_spade",
"techreborn:basic_drill", "techreborn:basic_drill",
"techreborn:advanced_drill", "techreborn:advanced_drill",
"techreborn:industrial_drill" "techreborn:industrial_drill",
"techreborn:omni_tool"
] ]
} }

View file

@ -8,6 +8,7 @@
"techreborn:nanosaber", "techreborn:nanosaber",
"techreborn:basic_chainsaw", "techreborn:basic_chainsaw",
"techreborn:advanced_chainsaw", "techreborn:advanced_chainsaw",
"techreborn:industrial_chainsaw" "techreborn:industrial_chainsaw",
"techreborn:omni_tool"
] ]
} }