From 0f59e722e18764b5a903fb97b720172fe7ca2dd8 Mon Sep 17 00:00:00 2001 From: aidancbrady Date: Sat, 20 Feb 2016 11:07:54 -0500 Subject: [PATCH] Use Forge handlers for jetpack/scuba tank display bar instead of item damage --- .../mekanism/common/item/ItemJetpack.java | 31 +++++++++---------- .../mekanism/common/item/ItemScubaTank.java | 31 +++++++++---------- 2 files changed, 28 insertions(+), 34 deletions(-) diff --git a/src/main/java/mekanism/common/item/ItemJetpack.java b/src/main/java/mekanism/common/item/ItemJetpack.java index b2dcab535..02554a937 100644 --- a/src/main/java/mekanism/common/item/ItemJetpack.java +++ b/src/main/java/mekanism/common/item/ItemJetpack.java @@ -37,13 +37,23 @@ public class ItemJetpack extends ItemArmor implements IGasItem, ISpecialArmor { super(EnumHelper.addArmorMaterial("JETPACK", 0, new int[] {0, 0, 0, 0}, 0), 0, 1); setCreativeTab(Mekanism.tabMekanism); - setMaxDamage(100); - setNoRepair(); } @Override @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister register) {} + + @Override + public boolean showDurabilityBar(ItemStack stack) + { + return true; + } + + @Override + public double getDurabilityForDisplay(ItemStack stack) + { + return 1D-((getGas(stack) != null ? (double)getGas(stack).amount : 0D)/(double)getMaxGas(stack)); + } @Override public void addInformation(ItemStack itemstack, EntityPlayer entityplayer, List list, boolean flag) @@ -163,17 +173,7 @@ public class ItemJetpack extends ItemArmor implements IGasItem, ISpecialArmor return null; } - GasStack stored = GasStack.readFromNBT(itemstack.stackTagCompound.getCompoundTag("stored")); - - if(stored == null) - { - itemstack.setItemDamage(100); - } - else { - itemstack.setItemDamage((int)Math.max(1, (Math.abs((((float)stored.amount/getMaxGas(itemstack))*100)-100)))); - } - - return stored; + return GasStack.readFromNBT(itemstack.stackTagCompound.getCompoundTag("stored")); } @Override @@ -212,14 +212,12 @@ public class ItemJetpack extends ItemArmor implements IGasItem, ISpecialArmor if(stack == null || stack.amount == 0) { - itemstack.setItemDamage(100); itemstack.stackTagCompound.removeTag("stored"); } else { int amount = Math.max(0, Math.min(stack.amount, getMaxGas(itemstack))); GasStack gasStack = new GasStack(stack.getGas(), amount); - itemstack.setItemDamage((int)Math.max(1, (Math.abs((((float)amount/getMaxGas(itemstack))*100)-100)))); itemstack.stackTagCompound.setTag("stored", gasStack.write(new NBTTagCompound())); } } @@ -228,7 +226,7 @@ public class ItemJetpack extends ItemArmor implements IGasItem, ISpecialArmor { ItemStack empty = new ItemStack(this); setGas(empty, null); - empty.setItemDamage(100); + return empty; } @@ -237,7 +235,6 @@ public class ItemJetpack extends ItemArmor implements IGasItem, ISpecialArmor { ItemStack empty = new ItemStack(this); setGas(empty, null); - empty.setItemDamage(100); list.add(empty); ItemStack filled = new ItemStack(this); diff --git a/src/main/java/mekanism/common/item/ItemScubaTank.java b/src/main/java/mekanism/common/item/ItemScubaTank.java index 153d4c4e7..013f3d444 100644 --- a/src/main/java/mekanism/common/item/ItemScubaTank.java +++ b/src/main/java/mekanism/common/item/ItemScubaTank.java @@ -34,8 +34,6 @@ public class ItemScubaTank extends ItemArmor implements IGasItem { super(EnumHelper.addArmorMaterial("SCUBATANK", 0, new int[] {0, 0, 0, 0}, 0), 0, 1); setCreativeTab(Mekanism.tabMekanism); - setMaxDamage(100); - setNoRepair(); } @Override @@ -53,6 +51,18 @@ public class ItemScubaTank extends ItemArmor implements IGasItem list.add(EnumColor.GREY + LangUtils.localize("tooltip.flowing") + ": " + (getFlowing(itemstack) ? EnumColor.DARK_GREEN : EnumColor.DARK_RED) + getFlowingStr(itemstack)); } + + @Override + public boolean showDurabilityBar(ItemStack stack) + { + return true; + } + + @Override + public double getDurabilityForDisplay(ItemStack stack) + { + return 1D-((getGas(stack) != null ? (double)getGas(stack).amount : 0D)/(double)getMaxGas(stack)); + } @Override public boolean isValidArmor(ItemStack stack, int armorType, Entity entity) @@ -189,17 +199,7 @@ public class ItemScubaTank extends ItemArmor implements IGasItem return null; } - GasStack stored = GasStack.readFromNBT(itemstack.stackTagCompound.getCompoundTag("stored")); - - if(stored == null) - { - itemstack.setItemDamage(100); - } - else { - itemstack.setItemDamage((int)Math.max(1, (Math.abs((((float)stored.amount/getMaxGas(itemstack))*100)-100)))); - } - - return stored; + return GasStack.readFromNBT(itemstack.stackTagCompound.getCompoundTag("stored")); } @Override @@ -212,14 +212,12 @@ public class ItemScubaTank extends ItemArmor implements IGasItem if(stack == null || stack.amount == 0) { - itemstack.setItemDamage(100); itemstack.stackTagCompound.removeTag("stored"); } else { int amount = Math.max(0, Math.min(stack.amount, getMaxGas(itemstack))); GasStack gasStack = new GasStack(stack.getGas(), amount); - itemstack.setItemDamage((int)Math.max(1, (Math.abs((((float)amount/getMaxGas(itemstack))*100)-100)))); itemstack.stackTagCompound.setTag("stored", gasStack.write(new NBTTagCompound())); } } @@ -234,7 +232,7 @@ public class ItemScubaTank extends ItemArmor implements IGasItem { ItemStack empty = new ItemStack(this); setGas(empty, null); - empty.setItemDamage(100); + return empty; } @@ -243,7 +241,6 @@ public class ItemScubaTank extends ItemArmor implements IGasItem { ItemStack empty = new ItemStack(this); setGas(empty, null); - empty.setItemDamage(100); list.add(empty); ItemStack filled = new ItemStack(this);