diff options
author | Caedis <Caedis@users.noreply.github.com> | 2024-01-12 13:53:09 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-12 13:53:09 -0600 |
commit | ba1a9b290a09e39b100ff8d9f1f5e70cdc3f0fab (patch) | |
tree | 3895304c8c934ba84b93a6ab427f5fa0546200ac /src | |
parent | a3adb6c9e2b0093b3e6ed6f2d4ce9c0ae5fe3520 (diff) | |
download | GT5-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.java | 5 | ||||
-rw-r--r-- | src/main/java/gregtech/common/blocks/GT_Block_Machines.java | 15 |
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"; |