Use Forge handlers for jetpack/scuba tank display bar instead of item damage
This commit is contained in:
parent
279cccaa9b
commit
0f59e722e1
2 changed files with 28 additions and 34 deletions
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue