diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/AllInOneTool.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/AllInOneTool.java index 002254b35..0d8be9f05 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/items/AllInOneTool.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/AllInOneTool.java @@ -1,6 +1,7 @@ package de.ellpeck.actuallyadditions.mod.items; import de.ellpeck.actuallyadditions.api.ActuallyTags; +import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import net.minecraft.world.InteractionResult; import net.minecraft.world.item.DiggerItem; import net.minecraft.world.item.ItemStack; @@ -8,12 +9,24 @@ import net.minecraft.world.item.Items; import net.minecraft.world.item.Tier; import net.minecraft.world.item.context.UseOnContext; import net.minecraft.world.item.enchantment.Enchantment; +import net.minecraft.world.level.block.state.BlockState; import net.neoforged.neoforge.common.ToolAction; import net.neoforged.neoforge.common.ToolActions; +import java.util.List; + public class AllInOneTool extends DiggerItem { private final Tier tier; + private static List ACTIONS = List.of( + ToolActions.AXE_DIG, + ToolActions.HOE_DIG, + ToolActions.PICKAXE_DIG, + ToolActions.SHOVEL_DIG, + ToolActions.HOE_TILL, + ToolActions.SHOVEL_FLATTEN + ); + public AllInOneTool(Tier tier) { super( 4.0f, @@ -30,7 +43,7 @@ public class AllInOneTool extends DiggerItem { @Override public boolean canPerformAction(ItemStack stack, ToolAction toolAction) { - if (toolAction == ToolActions.AXE_DIG || toolAction == ToolActions.HOE_DIG || toolAction == ToolActions.PICKAXE_DIG || toolAction == ToolActions.SHOVEL_DIG) + if (ACTIONS.contains(toolAction)) return true; return super.canPerformAction(stack, toolAction); } @@ -44,6 +57,8 @@ public class AllInOneTool extends DiggerItem { // Player not sneaking? Act as a Hoe to the block, else, Act as a shovel if (!context.getPlayer().isCrouching()) { + BlockState toolModifiedState = context.getLevel().getBlockState(context.getClickedPos()).getToolModifiedState(context, ToolActions.HOE_TILL, false); + ActuallyAdditions.LOGGER.info("Tool Modified State: " + toolModifiedState); return Items.IRON_HOE.useOn(context); }