From 207d2017859827fa47b63fec2c9daaad1c7abfa4 Mon Sep 17 00:00:00 2001 From: Jottyfan Date: Sun, 5 Feb 2023 20:45:15 +0100 Subject: [PATCH] repaired leaves cutting --- .../quickiefabric/tools/ToolRangeableAxe.java | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/tools/ToolRangeableAxe.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/tools/ToolRangeableAxe.java index 09f1090..edaa845 100644 --- a/src/main/java/de/jottyfan/minecraft/quickiefabric/tools/ToolRangeableAxe.java +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/tools/ToolRangeableAxe.java @@ -3,14 +3,15 @@ package de.jottyfan.minecraft.quickiefabric.tools; import java.util.List; import com.google.common.collect.Lists; +import com.terraformersmc.terraform.leaves.block.ExtendedLeavesBlock; -import de.jottyfan.minecraft.quickiefabric.help.ClassHelper; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.LeavesBlock; import net.minecraft.item.AxeItem; import net.minecraft.item.ItemStack; import net.minecraft.item.ToolMaterial; +import net.minecraft.registry.tag.BlockTags; /** * @@ -34,13 +35,22 @@ public class ToolRangeableAxe extends AxeItem implements ToolRangeable { return this.miningSpeed; } + /** + * check if the block is a leaves block + * + * @param blockIn the block + * @return true or false + */ + private boolean isLeavesBlock(BlockState blockIn) { + boolean vanillaLeaves = blockIn.getBlock() instanceof LeavesBlock; + boolean terrestriaLeaves = blockIn.getBlock() instanceof ExtendedLeavesBlock; + boolean blockTagLeaves = blockIn.isIn(BlockTags.LEAVES); + return vanillaLeaves || terrestriaLeaves || blockTagLeaves; + } + @Override public boolean canBreakNeighbors(BlockState blockIn) { - Class c = blockIn.getBlock().getClass(); - return super.isSuitableFor(blockIn) - || blockIn.getBlock() instanceof LeavesBlock // works the old way - || ClassHelper.isInstanceOf(c, "LeavesBlock") // doesn't work, but why? - || ClassHelper.isInstanceOf(c, "ExtendedLeavesBlock"); // from terrestria + return super.isSuitableFor(blockIn) || isLeavesBlock(blockIn); } @Override