aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCaedis <Caedis@users.noreply.github.com>2024-01-12 13:53:09 -0600
committerGitHub <noreply@github.com>2024-01-12 13:53:09 -0600
commitba1a9b290a09e39b100ff8d9f1f5e70cdc3f0fab (patch)
tree3895304c8c934ba84b93a6ab427f5fa0546200ac /src
parenta3adb6c9e2b0093b3e6ed6f2d4ce9c0ae5fe3520 (diff)
downloadGT5-Unofficial-ba1a9b290a09e39b100ff8d9f1f5e70cdc3f0fab.tar.gz
GT5-Unofficial-ba1a9b290a09e39b100ff8d9f1f5e70cdc3f0fab.tar.bz2
GT5-Unofficial-ba1a9b290a09e39b100ff8d9f1f5e70cdc3f0fab.zip
Allow tools to break stuff with a lower harvest level (#2435)
* Allow tools to break stuff with a lower harvest level * Dont allow drops of improper tool usage
Diffstat (limited to 'src')
-rw-r--r--src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java5
-rw-r--r--src/main/java/gregtech/common/blocks/GT_Block_Machines.java15
2 files changed, 18 insertions, 2 deletions
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 de6ca996d5..2526faa0aa 100644
--- a/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java
+++ b/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java
@@ -686,12 +686,13 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item
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;
+ : 1.0F;
}
@Override
public final boolean canHarvestBlock(Block aBlock, ItemStack aStack) {
- return getDigSpeed(aStack, aBlock, (byte) 0) > 0.0F;
+ IToolStats tStats = getToolStats(aStack);
+ return tStats.isMinableBlock(aBlock, (byte) 0) && getDigSpeed(aStack, aBlock, (byte) 0) > 0.0F;
}
@Override
diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Machines.java b/src/main/java/gregtech/common/blocks/GT_Block_Machines.java
index af41710054..b2d62e3f3a 100644
--- a/src/main/java/gregtech/common/blocks/GT_Block_Machines.java
+++ b/src/main/java/gregtech/common/blocks/GT_Block_Machines.java
@@ -37,12 +37,14 @@ import cpw.mods.fml.relauncher.SideOnly;
import gregtech.api.GregTech_API;
import gregtech.api.enums.Textures;
import gregtech.api.interfaces.IDebugableBlock;
+import gregtech.api.interfaces.IToolStats;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IColoredTileEntity;
import gregtech.api.interfaces.tileentity.ICoverable;
import gregtech.api.interfaces.tileentity.IDebugableTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.items.GT_Generic_Block;
+import gregtech.api.items.GT_MetaGenerated_Tool;
import gregtech.api.metatileentity.BaseMetaPipeEntity;
import gregtech.api.metatileentity.BaseMetaTileEntity;
import gregtech.api.metatileentity.BaseTileEntity;
@@ -73,6 +75,19 @@ public class GT_Block_Machines extends GT_Generic_Block implements IDebugableBlo
}
@Override
+ public boolean canHarvestBlock(EntityPlayer player, int meta) {
+
+ ItemStack stack = player.inventory.getCurrentItem();
+ if (stack != null && stack.getItem() instanceof GT_MetaGenerated_Tool gTool) {
+ IToolStats tStats = gTool.getToolStats(stack);
+ if (tStats == null) return false;
+ return tStats.isMinableBlock(this, (byte) meta);
+ }
+
+ return super.canHarvestBlock(player, meta);
+ }
+
+ @Override
public String getHarvestTool(int aMeta) {
if (aMeta >= 8 && aMeta <= 11) {
return "cutter";