package cn.academy.ability.item; import cn.academy.ability.api.Category; import cn.academy.ability.api.CategoryManager; import cn.academy.core.item.ACItem; import com.google.common.base.Preconditions; 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; public class ItemInductionFactor extends ACItem { public static Category getCategory(ItemStack stack) { checkStack(stack); return CategoryManager.INSTANCE.getCategory(stack.getItemDamage()); } public static void setCategory(ItemStack stack, Category cat) { checkStack(stack); stack.setItemDamage(cat.getCategoryID()); } private static void checkStack(ItemStack stack) { Preconditions.checkArgument(stack.getItem() instanceof ItemInductionFactor); } private IIcon[] icons; public ItemInductionFactor() { super("induction_factor"); setMaxStackSize(1); } @SideOnly(Side.CLIENT) @Override public void registerIcons(IIconRegister register) { icons = new IIcon[CategoryManager.INSTANCE.getCategoryCount()]; for (int i = 0; i < icons.length; ++i) { icons[i] = register.registerIcon("academy:factor_" + CategoryManager.INSTANCE.getCategory(i).getName()); } } @SideOnly(Side.CLIENT) @Override public IIcon getIconFromDamage(int meta) { return icons[meta]; } public ItemStack create(Category cat) { ItemStack stack = new ItemStack(this); setCategory(stack, cat); return stack; } @Override @SideOnly(Side.CLIENT) public void getSubItems(Item item, CreativeTabs tab, List list) { for (Category c : CategoryManager.INSTANCE.getCategories()) { list.add(create(c)); } } @Override @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean wtf) { list.add(getCategory(stack).getDisplayName()); } }