From 42543040b0533d2cd714412efa29a51b75321bb6 Mon Sep 17 00:00:00 2001 From: Minepolz320 <42765118+Minepolz320@users.noreply.github.com> Date: Sun, 19 Sep 2021 19:01:24 +0500 Subject: Fix GT Tools I tried to fix the tools --- src/main/java/gregtech/api/GregTech_API.java | 1 + .../gregtech/api/items/GT_MetaGenerated_Tool.java | 13 +---- .../gregtech/api/util/GT_ToolHarvestHelper.java | 61 ++++++++++++++++++++++ 3 files changed, 64 insertions(+), 11 deletions(-) create mode 100644 src/main/java/gregtech/api/util/GT_ToolHarvestHelper.java (limited to 'src/main/java/gregtech/api') diff --git a/src/main/java/gregtech/api/GregTech_API.java b/src/main/java/gregtech/api/GregTech_API.java index 2b9e9297e3..fe48f6506f 100644 --- a/src/main/java/gregtech/api/GregTech_API.java +++ b/src/main/java/gregtech/api/GregTech_API.java @@ -353,6 +353,7 @@ public class GregTech_API { sSoundList.put(106, aTextIC2Lower + ":" + "tools.drill.DrillSoft"); sSoundList.put(107, aTextIC2Lower + ":" + "tools.drill.DrillHard"); sSoundList.put(108, aTextIC2Lower + ":" + "tools.ODScanner"); + sSoundList.put(109, aTextIC2Lower + ":" + "tools.InsulationCutters"); sSoundList.put(200, aTextIC2Lower + ":" + "machines.ExtractorOp"); sSoundList.put(201, aTextIC2Lower + ":" + "machines.MaceratorOp"); diff --git a/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java b/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java index 82f19351a5..e157337148 100644 --- a/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java +++ b/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java @@ -463,18 +463,9 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item implements @Override public float getDigSpeed(ItemStack aStack, Block aBlock, int aMetaData) { - - if (!isItemStackUsable(aStack)) - return 0.0F; - + if (!isItemStackUsable(aStack)) return 0.0F; IToolStats tStats = getToolStats(aStack); - - if (tStats == null || Math.max(0, getHarvestLevel(aStack, "")) < aBlock.getHarvestLevel(aMetaData)) - return 0.0F; - - if (aBlock.getHarvestLevel(aMetaData) == 0 && !tStats.isMinableBlock(aBlock, (byte) aMetaData)) - return Math.min(Math.max(Float.MIN_NORMAL, ((tStats.getSpeedMultiplier() * getPrimaryMaterial(aStack).mToolSpeed) /2)),1.0F); - + if (tStats == null || Math.max(0, getHarvestLevel(aStack, "")) < aBlock.getHarvestLevel(aMetaData)) return 0.0F; return tStats.isMinableBlock(aBlock, (byte) aMetaData) ? Math.max(Float.MIN_NORMAL, tStats.getSpeedMultiplier() * getPrimaryMaterial(aStack).mToolSpeed) : 0.0F; } diff --git a/src/main/java/gregtech/api/util/GT_ToolHarvestHelper.java b/src/main/java/gregtech/api/util/GT_ToolHarvestHelper.java new file mode 100644 index 0000000000..271b361da0 --- /dev/null +++ b/src/main/java/gregtech/api/util/GT_ToolHarvestHelper.java @@ -0,0 +1,61 @@ +package gregtech.api.util; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; + +public class GT_ToolHarvestHelper { + + public static boolean isAppropriateTool(Block aBlock, byte aMetaData, String... tTools) { + + if (aBlock == null || tTools == null) { + return false; + } + String targetTool = aBlock.getHarvestTool(aMetaData); + return !isStringEmpty(targetTool) && isArrayContains(targetTool, tTools); + } + + public static boolean isAppropriateMaterial(Block aBlock, Material... tMats) { + if (aBlock == null || tMats == null) { + return false; + } + return isArrayContains(aBlock.getMaterial(), tMats); + } + + + public static boolean isSpecialBlock(Block aBlock, Block... tBlocks) { + if (aBlock == null || tBlocks == null) { + return false; + } + return isArrayContains(aBlock, tBlocks); + } + + + public static boolean isArrayContains(T obj, T[] list) { + + if (obj == null || list == null) { + return false; + } + + for (T iObj : list) { + if (obj == iObj || obj.equals(iObj)) { + return true; + } + } + return false; + } + + public static boolean isStringEmpty(String s) { + return s == null || s.length() == 0; + } + + public static boolean hasNull(Object... obj) { + for (Object iObj : obj) { + if (iObj == null) { + return true; + } + } + return false; + } + + +} -- cgit