From dfacbe5a9897683a32d90139275dd45fcc167c4c Mon Sep 17 00:00:00 2001 From: James Date: Tue, 17 Sep 2013 22:39:49 -0700 Subject: [PATCH] Update HarvestTool.java Some light testing suggests it isn't 100% broken. --- src/tconstruct/library/tools/HarvestTool.java | 69 +++++++++++-------- 1 file changed, 39 insertions(+), 30 deletions(-) diff --git a/src/tconstruct/library/tools/HarvestTool.java b/src/tconstruct/library/tools/HarvestTool.java index 16b08cdf8b8..aea35b52c72 100644 --- a/src/tconstruct/library/tools/HarvestTool.java +++ b/src/tconstruct/library/tools/HarvestTool.java @@ -70,40 +70,49 @@ public float getStrVsBlock (ItemStack stack, Block block, int meta) { if (materials[i] == block.blockMaterial) { - float mineSpeed = tags.getInteger("MiningSpeed"); - int heads = 1; - if (tags.hasKey("MiningSpeed2")) - { - mineSpeed += tags.getInteger("MiningSpeed2"); - heads++; - } - - if (tags.hasKey("MiningSpeedHandle")) - { - mineSpeed += tags.getInteger("MiningSpeedHandle"); - heads++; - } - - if (tags.hasKey("MiningSpeedExtra")) - { - mineSpeed += tags.getInteger("MiningSpeedExtra"); - heads++; - } - float trueSpeed = mineSpeed / (heads * 100f); - int hlvl = MinecraftForge.getBlockHarvestLevel(block, meta, getHarvestType()); - int durability = tags.getInteger("Damage"); - - float stonebound = tags.getFloat("Shoddy"); - float bonusLog = (float) Math.log(durability / 72f + 1) * 2 * stonebound; - trueSpeed += bonusLog; - - if (hlvl <= tags.getInteger("HarvestLevel")) - return trueSpeed; - return 0.1f; + return calculateStrength(tags, block, meta); } } + if (MinecraftForge.getBlockHarvestLevel(block, meta, getHarvestType()) > 0) + { + return calculateStrength(tags, block, meta); // + } return super.getStrVsBlock(stack, block, meta); } + + float calculateStrength(NBTTagCompound tags, Block block, int meta) + { + float mineSpeed = tags.getInteger("MiningSpeed"); + int heads = 1; + if (tags.hasKey("MiningSpeed2")) + { + mineSpeed += tags.getInteger("MiningSpeed2"); + heads++; + } + + if (tags.hasKey("MiningSpeedHandle")) + { + mineSpeed += tags.getInteger("MiningSpeedHandle"); + heads++; + } + + if (tags.hasKey("MiningSpeedExtra")) + { + mineSpeed += tags.getInteger("MiningSpeedExtra"); + heads++; + } + float trueSpeed = mineSpeed / (heads * 100f); + int hlvl = MinecraftForge.getBlockHarvestLevel(block, meta, getHarvestType()); + int durability = tags.getInteger("Damage"); + + float stonebound = tags.getFloat("Shoddy"); + float bonusLog = (float) Math.log(durability / 72f + 1) * 2 * stonebound; + trueSpeed += bonusLog; + + if (hlvl <= tags.getInteger("HarvestLevel")) + return trueSpeed; + return 0.1f; + } public boolean canHarvestBlock (Block block) {