aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api
diff options
context:
space:
mode:
authorMinepolz320 <42765118+Minepolz320@users.noreply.github.com>2021-09-19 19:06:45 +0500
committerGitHub <noreply@github.com>2021-09-19 19:06:45 +0500
commitbf4510ad135645fe42a100a646e1828f06727c07 (patch)
tree2e98b4ca500c27fba9b43c8505d85ee981dc8f51 /src/main/java/gregtech/api
parent06d7905348de8bbf00752afc0f14a0a9c83fbeb8 (diff)
parent42543040b0533d2cd714412efa29a51b75321bb6 (diff)
downloadGT5-Unofficial-bf4510ad135645fe42a100a646e1828f06727c07.tar.gz
GT5-Unofficial-bf4510ad135645fe42a100a646e1828f06727c07.tar.bz2
GT5-Unofficial-bf4510ad135645fe42a100a646e1828f06727c07.zip
Merge pull request #2 from Minepolz320/Minepolz320-fix
Fix GT Tools
Diffstat (limited to 'src/main/java/gregtech/api')
-rw-r--r--src/main/java/gregtech/api/GregTech_API.java1
-rw-r--r--src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java13
-rw-r--r--src/main/java/gregtech/api/util/GT_ToolHarvestHelper.java61
3 files changed, 64 insertions, 11 deletions
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 <T> 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;
+ }
+
+
+}