package com.hbm.items.machine; import java.util.List; import com.hbm.items.ModItems; import net.minecraft.entity.effect.EntityLightningBolt; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; public class ItemCapacitor extends Item { private int dura; public ItemCapacitor(int dura) { this.dura = dura; } @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { if (this == ModItems.redcoil_capacitor) { list.add("Right-click a block to negate positive charge."); list.add("[Needed for Schrabidium Synthesis]"); list.add(getDura(itemstack) + "/" + dura); } if (this == ModItems.titanium_filter) { list.add("[Needed for Watz Reaction]"); list.add((getDura(itemstack) / 20) + "/" + (dura / 20)); } } @Override public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_) { if (this == ModItems.redcoil_capacitor) { if (!player.isSneaking()) { if (getDura(stack) < dura) { setDura(stack, getDura(stack) + 1); if (!world.isRemote) { world.createExplosion(null, x + 0.5, y + 0.5, z + 0.5, 2.5F, true); } world.spawnEntityInWorld(new EntityLightningBolt(world, x, y, z)); return true; } } } return false; } public boolean showDurabilityBar(ItemStack stack) { return getDurabilityForDisplay(stack) > 0; } public static int getDura(ItemStack stack) { if(stack.stackTagCompound == null) return ((ItemCapacitor)stack.getItem()).dura; return stack.stackTagCompound.getInteger("dura"); } public static void setDura(ItemStack stack, int dura) { if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); stack.stackTagCompound.setInteger("dura", dura); } public double getDurabilityForDisplay(ItemStack stack) { return 1D - (double)getDura(stack) / (double)dura; } }