diff --git a/src/main/java/tconstruct/library/tools/AbilityHelper.java b/src/main/java/tconstruct/library/tools/AbilityHelper.java index e0225cf8..08d6a6d1 100644 --- a/src/main/java/tconstruct/library/tools/AbilityHelper.java +++ b/src/main/java/tconstruct/library/tools/AbilityHelper.java @@ -699,6 +699,22 @@ public class AbilityHelper return trueSpeed; } + public static float calcDualToolSpeed (ToolCore tool, NBTTagCompound tags, boolean secondary) + { + String tag = "MiningSpeed"; + if(secondary) tag += "2"; + + float mineSpeed = tags.getInteger(tag); + float speedMod = 1f; + if (tool instanceof HarvestTool) + speedMod = ((HarvestTool) tool).breakSpeedModifier(); + + float trueSpeed = mineSpeed / 100f * speedMod; + trueSpeed += calcStoneboundBonus(tool, tags); + + return trueSpeed; + } + public static float calcStoneboundBonus (ToolCore tool, NBTTagCompound tags) { int durability = tags.getInteger("Damage"); diff --git a/src/main/java/tconstruct/library/tools/DualHarvestTool.java b/src/main/java/tconstruct/library/tools/DualHarvestTool.java index a41cd634..bfc39df8 100644 --- a/src/main/java/tconstruct/library/tools/DualHarvestTool.java +++ b/src/main/java/tconstruct/library/tools/DualHarvestTool.java @@ -56,16 +56,8 @@ public abstract class DualHarvestTool extends HarvestTool { if (materials[i] == block.getMaterial()) { - float speed = tags.getInteger("MiningSpeed"); - speed /= 100f; - int hlvl = block.getHarvestLevel(meta); - int durability = tags.getInteger("Damage"); - - float shoddy = tags.getFloat("Shoddy"); - speed += shoddy * durability / 100f; - - if (hlvl <= tags.getInteger("HarvestLevel")) - return speed; + if (block.getHarvestLevel(meta) <= tags.getInteger("HarvestLevel")) + AbilityHelper.calcDualToolSpeed(this, tags, false); return 0.1f; } } @@ -74,16 +66,8 @@ public abstract class DualHarvestTool extends HarvestTool { if (materials[i] == block.getMaterial()) { - float speed = tags.getInteger("MiningSpeed2"); - speed /= 100f; - int hlvl = block.getHarvestLevel(meta); - int durability = tags.getInteger("Damage"); - - float shoddy = tags.getFloat("Shoddy"); - speed += shoddy * durability / 100f; - - if (hlvl <= tags.getInteger("HarvestLevel2")) - return speed; + if (block.getHarvestLevel(meta) <= tags.getInteger("HarvestLevel2")) + AbilityHelper.calcDualToolSpeed(this, tags, true); return 0.1f; } }