diff --git a/src/main/java/tconstruct/library/tools/AbilityHelper.java b/src/main/java/tconstruct/library/tools/AbilityHelper.java index e3ecec53..e09efd91 100644 --- a/src/main/java/tconstruct/library/tools/AbilityHelper.java +++ b/src/main/java/tconstruct/library/tools/AbilityHelper.java @@ -347,14 +347,14 @@ public class AbilityHelper if (damageTrue <= 0) { tags.getCompoundTag("InfiTool").setInteger("Damage", 0); - stack.setItemDamage(0); + //stack.setItemDamage(0); tags.getCompoundTag("InfiTool").setBoolean("Broken", false); } else if (damageTrue > maxDamage) { breakTool(stack, tags, entity); - stack.setItemDamage(0); + //stack.setItemDamage(0); } else @@ -364,7 +364,7 @@ public class AbilityHelper int stackDamage = stack.getItemDamage(); if (toolDamage != stackDamage) { - stack.setItemDamage((damage * 100 / maxDamage) + 1); + //stack.setItemDamage((damage * 100 / maxDamage) + 1); } } } @@ -425,7 +425,7 @@ public class AbilityHelper energy -= trueSpeed * 2; tags.setInteger("Energy", energy); - stack.setItemDamage(1 + (tool.getMaxEnergyStored(stack) - energy) * (stack.getMaxDamage() - 1) / tool.getMaxEnergyStored(stack)); + //stack.setItemDamage(1 + (tool.getMaxEnergyStored(stack) - energy) * (stack.getMaxDamage() - 1) / tool.getMaxEnergyStored(stack)); } return true; } @@ -521,7 +521,8 @@ public class AbilityHelper if (event.getResult() == Result.ALLOW) { - damageTool(stack, 1, player, false); + stack.damageItem(1, player); + //damageTool(stack, 1, player, false); return true; } @@ -539,7 +540,8 @@ public class AbilityHelper else { world.setBlock(x, y, z, block1); - damageTool(stack, 1, player, false); + stack.damageItem(1, player); + //damageTool(stack, 1, player, false); return true; } } diff --git a/src/main/java/tconstruct/library/tools/ToolCore.java b/src/main/java/tconstruct/library/tools/ToolCore.java index 54216dfa..590d5793 100644 --- a/src/main/java/tconstruct/library/tools/ToolCore.java +++ b/src/main/java/tconstruct/library/tools/ToolCore.java @@ -729,7 +729,14 @@ public abstract class ToolCore extends Item implements IEnergyContainerItem, IMo } /* Proper stack damage */ - public int getItemMaxDamageFromStack (ItemStack stack) + @Override + public boolean showDurabilityBar(ItemStack stack) { + NBTTagCompound tags = stack.getTagCompound().getCompoundTag("InfiTool"); + return !tags.getBoolean("Broken") && getDamage(stack) > 0; + } + + @Override + public int getMaxDamage (ItemStack stack) { NBTTagCompound tags = stack.getTagCompound(); if (tags == null) @@ -745,8 +752,8 @@ public abstract class ToolCore extends Item implements IEnergyContainerItem, IMo return tags.getCompoundTag("InfiTool").getInteger("TotalDurability"); } - public int getItemDamageFromStackForDisplay (ItemStack stack) - { + @Override + public int getDamage(ItemStack stack) { NBTTagCompound tags = stack.getTagCompound(); if (tags == null) { @@ -755,12 +762,23 @@ public abstract class ToolCore extends Item implements IEnergyContainerItem, IMo if (tags.hasKey("Energy")) { int energy = tags.getInteger("Energy"); - if (energy > 0) + if(energy > 0) return getMaxEnergyStored(stack) - energy; } return tags.getCompoundTag("InfiTool").getInteger("Damage"); } + @Override + public int getDisplayDamage(ItemStack stack) { + return getDamage(stack); + } + + + @Override + public void setDamage(ItemStack stack, int damage) { + AbilityHelper.damageTool(stack, damage - stack.getItemDamage(), null, false); + } + /* Prevent tools from dying */ public boolean hasCustomEntity (ItemStack stack) { @@ -797,7 +815,7 @@ public abstract class ToolCore extends Item implements IEnergyContainerItem, IMo { energy += energyReceived; tags.setInteger("Energy", energy); - container.setItemDamage(1 + (getMaxEnergyStored(container) - energy) * (container.getMaxDamage() - 2) / getMaxEnergyStored(container)); + //container.setItemDamage(1 + (getMaxEnergyStored(container) - energy) * (container.getMaxDamage() - 2) / getMaxEnergyStored(container)); } return energyReceived; } @@ -820,7 +838,7 @@ public abstract class ToolCore extends Item implements IEnergyContainerItem, IMo { energy -= energyExtracted; tags.setInteger("Energy", energy); - container.setItemDamage(1 + (getMaxEnergyStored(container) - energy) * (container.getMaxDamage() - 1) / getMaxEnergyStored(container)); + //container.setItemDamage(1 + (getMaxEnergyStored(container) - energy) * (container.getMaxDamage() - 1) / getMaxEnergyStored(container)); } return energyExtracted; } diff --git a/src/main/java/tconstruct/modifiers/tools/ModFlux.java b/src/main/java/tconstruct/modifiers/tools/ModFlux.java index 1ebca93d..3be1d427 100644 --- a/src/main/java/tconstruct/modifiers/tools/ModFlux.java +++ b/src/main/java/tconstruct/modifiers/tools/ModFlux.java @@ -140,6 +140,6 @@ public class ModFlux extends ModBoolean tags.setInteger(key, 1); ToolCore toolcore = (ToolCore) tool.getItem(); - tool.setItemDamage(1 + (toolcore.getMaxEnergyStored(tool) - charge) * (tool.getMaxDamage() - 1) / toolcore.getMaxEnergyStored(tool)); + //tool.setItemDamage(1 + (toolcore.getMaxEnergyStored(tool) - charge) * (tool.getMaxDamage() - 1) / toolcore.getMaxEnergyStored(tool)); } }