/** * Copyright (c) Lambda Innovation, 2013-2016 * This file is part of the AcademyCraft mod. * https://github.com/LambdaInnovation/AcademyCraft * Licensed under GPLv3, see project root for more information. */ package cn.academy.energy.template; import cn.academy.core.item.ACItem; import cn.academy.energy.api.IFItemManager; import cn.academy.energy.api.item.ImagEnergyItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; 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 java.util.List; /** * @author WeAthFolD * */ public class ItemEnergyBase extends ACItem implements ImagEnergyItem { protected static IFItemManager itemManager = IFItemManager.instance; public final String name; public final double maxEnergy; public final double bandwidth; IIcon iconEmpty, iconHalf, iconFull; public boolean useMultipleIcon = true; public ItemEnergyBase(String _name, double _maxEnergy, double _bandwidth) { super(_name); name = _name; maxEnergy = _maxEnergy; bandwidth = _bandwidth; setMaxStackSize(1); setMaxDamage(13); } @Override @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister ir) { if(useMultipleIcon) { iconEmpty = ir.registerIcon("academy:" + name + "_empty"); iconHalf = ir.registerIcon("academy:" + name + "_half"); iconFull = ir.registerIcon("academy:" + name + "_full"); } else { super.registerIcons(ir); } } @Override @SideOnly(Side.CLIENT) public IIcon getIconFromDamage(int damage) { if(!useMultipleIcon) return super.getIconFromDamage(damage); if(damage < 3) { return iconFull; } if(damage > 10) { return iconEmpty; } return iconHalf; } @Override public double getMaxEnergy() { return maxEnergy; } @Override public double getBandwidth() { return bandwidth; } @Override @SideOnly(Side.CLIENT) public void getSubItems(Item item, CreativeTabs cct, List list) { ItemStack is = new ItemStack(this); list.add(is); itemManager.charge(is, 0, true); is = new ItemStack(this); itemManager.charge(is, Double.MAX_VALUE, true); list.add(is); } @Override @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean wtf) { list.add(itemManager.getDescription(stack)); } }