From 24f9abfb18fec4a32455a9f2b3582a7f09898de4 Mon Sep 17 00:00:00 2001 From: jottyfan Date: Fri, 3 Sep 2021 18:03:06 +0200 Subject: [PATCH] make speedpowder tools work on mod blocks also --- gradle.properties | 2 +- .../quickiefabric/tools/ToolRangeable.java | 6 ++++- .../tools/ToolSpeedpowderPickaxe.java | 25 +++++++++++++++++-- 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/gradle.properties b/gradle.properties index f234a45..a6ea9a0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,7 +8,7 @@ org.gradle.jvmargs=-Xmx1G loader_version=0.11.6 # Mod Properties - mod_version = 1.17.1.4 + mod_version = 1.17.1.5 maven_group = de.jottyfan.minecraft archives_base_name = quickiefabric diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/tools/ToolRangeable.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/tools/ToolRangeable.java index 0aba38d..bec32a9 100644 --- a/src/main/java/de/jottyfan/minecraft/quickiefabric/tools/ToolRangeable.java +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/tools/ToolRangeable.java @@ -34,7 +34,7 @@ public interface ToolRangeable { public static final Set HOE_EFFECTIVE_ON = Sets.newHashSet(new Block[] { Blocks.BAMBOO, Blocks.BAMBOO_SAPLING, Blocks.ATTACHED_MELON_STEM, Blocks.ATTACHED_PUMPKIN_STEM, Blocks.SUNFLOWER, Blocks.CORNFLOWER, Blocks.SEAGRASS, - Blocks.TALL_GRASS, Blocks.TALL_SEAGRASS, Blocks.GRASS, Blocks.KELP_PLANT, Blocks.KELP}); + Blocks.TALL_GRASS, Blocks.TALL_SEAGRASS, Blocks.GRASS, Blocks.KELP_PLANT, Blocks.KELP }); public static final Set HOE_EXTERNAL_EFFECTIVE_ON = mergeSets(); @@ -66,6 +66,10 @@ public interface ToolRangeable { .newHashSet(new Block[] { Blocks.GLOWSTONE, QuickieBlocks.ORE_NETHER_SULPHOR, QuickieBlocks.ORE_SALPETER, QuickieBlocks.ORE_SAND_SALPETER, QuickieBlocks.ORE_SULPHOR }); + public static final Set PICKAXE_EXTERNAL_EFFECTIVE_ON = mergeSets( + Byg.createFromStrings("soapstone", "black_sandstone", "dacite", "rocky_stone", "red_rock", "pink_sandstone", + "purple_sandstone", "scoria_stone", "scoria_cobblestone")); + /** * merge all sets * diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/tools/ToolSpeedpowderPickaxe.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/tools/ToolSpeedpowderPickaxe.java index 26e57f3..1c275c6 100644 --- a/src/main/java/de/jottyfan/minecraft/quickiefabric/tools/ToolSpeedpowderPickaxe.java +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/tools/ToolSpeedpowderPickaxe.java @@ -12,6 +12,8 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.PickaxeItem; import net.minecraft.item.ToolMaterials; import net.minecraft.nbt.NbtCompound; +import net.minecraft.util.Identifier; +import net.minecraft.util.registry.Registry; /** * @@ -25,7 +27,16 @@ public class ToolSpeedpowderPickaxe extends PickaxeItem implements ToolRangeable public ToolSpeedpowderPickaxe() { super(ToolMaterials.DIAMOND, 4, 2.0f, new Item.Settings().group(RegistryManager.QUICKIEFABRIC_GROUP)); } - + + /** + * seems not to work + */ + @Override + public boolean isSuitableFor(BlockState state) { + return PICKAXE_EFFECTIVE_ON.contains(state.getBlock()) || checkExternalBlock(state.getBlock()) + || super.isSuitableFor(state); + } + @Override public HarvestRange getRange(ItemStack stack) { NbtCompound tag = stack.getNbt(); @@ -39,7 +50,17 @@ public class ToolSpeedpowderPickaxe extends PickaxeItem implements ToolRangeable @Override public boolean canBreakNeighbors(BlockState blockIn) { - return super.isSuitableFor(blockIn) || PICKAXE_EFFECTIVE_ON.contains(blockIn.getBlock()); + return super.isSuitableFor(blockIn) || PICKAXE_EFFECTIVE_ON.contains(blockIn.getBlock()) + || checkExternalBlock(blockIn.getBlock()); + } + + private boolean checkExternalBlock(Block block) { + boolean result = false; + for (Identifier externalID : PICKAXE_EXTERNAL_EFFECTIVE_ON) { + Block registeredBlock = Registry.BLOCK.get(externalID); // may be null if mods are not available + result = result || (registeredBlock != null && registeredBlock.equals(block)); + } + return result; } @Override