package crazypants.enderio.material; import java.util.List; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; import com.enderio.core.client.handlers.SpecialTooltipHandler; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import crazypants.enderio.EnderIO; import crazypants.enderio.EnderIOTab; import crazypants.enderio.ModObject; import crazypants.enderio.power.BasicCapacitor; import crazypants.enderio.power.Capacitors; import crazypants.enderio.power.ICapacitor; import crazypants.enderio.power.ICapacitorItem; public class ItemCapacitor extends Item implements ICapacitorItem { private static final BasicCapacitor CAP = new BasicCapacitor(); public static ItemCapacitor create() { ItemCapacitor result = new ItemCapacitor(); result.init(); return result; } private final IIcon[] icons; protected ItemCapacitor() { setCreativeTab(EnderIOTab.tabEnderIO); setUnlocalizedName(ModObject.itemBasicCapacitor.unlocalisedName); setHasSubtypes(true); setMaxDamage(0); setMaxStackSize(64); icons = new IIcon[Capacitors.values().length]; } protected void init() { GameRegistry.registerItem(this, ModObject.itemBasicCapacitor.unlocalisedName); } @Override @SideOnly(Side.CLIENT) public IIcon getIconFromDamage(int damage) { damage = MathHelper.clamp_int(damage, 0, Capacitors.values().length - 1); return icons[damage]; } @Override @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister IIconRegister) { for (int i = 0; i < Capacitors.values().length; i++) { icons[i] = IIconRegister.registerIcon(Capacitors.values()[i].iconKey); } } @Override public String getUnlocalizedName(ItemStack par1ItemStack) { int i = MathHelper.clamp_int(par1ItemStack.getItemDamage(), 0, Capacitors.values().length - 1); return Capacitors.values()[i].unlocalisedName; } @Override @SuppressWarnings({ "rawtypes", "unchecked" }) @SideOnly(Side.CLIENT) public void getSubItems(Item par1, CreativeTabs par2CreativeTabs, List par3List) { for (int j = 0; j < Capacitors.values().length; ++j) { par3List.add(new ItemStack(par1, 1, j)); } } @Override public ICapacitor getCapacitor(ItemStack stack) { int damage = MathHelper.clamp_int(stack.getItemDamage(), 0, Capacitors.values().length - 1); return Capacitors.values()[damage].capacitor; } @Override @SideOnly(Side.CLIENT) public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) { if(par1ItemStack != null && par1ItemStack.getItemDamage() > 0) { par3List.add(EnderIO.lang.localize("machine.tooltip.upgrade")); if(SpecialTooltipHandler.showAdvancedTooltips()) { SpecialTooltipHandler.addDetailedTooltipFromResources(par3List, "enderio.machine.tooltip.upgrade"); } else { SpecialTooltipHandler.addShowDetailsTooltip(par3List); } } } }