package mods.eln.generic; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import mods.eln.Eln; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.IIcon; import java.util.List; public class GenericItemBlockUsingDamageDescriptor { String iconName; IIcon iconIndex; public String name; public Item parentItem; public int parentItemDamage; public GenericItemBlockUsingDamageDescriptor(String name) { this(name, name); } public GenericItemBlockUsingDamageDescriptor(String name, String iconName) { setDefaultIcon(iconName); this.name = name; } public void setDefaultIcon(String name) { String iconName = name.replaceAll(" ", "").toLowerCase(); if (Eln.noSymbols && getClass().getClassLoader().getResource("assets/eln/textures/blocks/" + iconName + "-ni.png") != null) { this.iconName = iconName + "-ni"; } else { this.iconName = iconName; } } public NBTTagCompound getDefaultNBT() { return null; } public void addInformation(ItemStack itemStack, EntityPlayer entityPlayer, List<String> list, boolean par4) { } @SideOnly(value = Side.CLIENT) public void updateIcons(IIconRegister iconRegister) { this.iconIndex = iconRegister.registerIcon("eln:" + iconName); } public IIcon getIcon() { return iconIndex; } public String getName(ItemStack stack) { return name; } public void setParent(Item item, int damage) { this.parentItem = item; this.parentItemDamage = damage; } public ItemStack newItemStack(int size) { return new ItemStack(parentItem, size, parentItemDamage); } public ItemStack newItemStack() { return new ItemStack(parentItem, 1, parentItemDamage); } public static GenericItemBlockUsingDamageDescriptor getDescriptor(ItemStack stack) { if (stack == null) return null; Item item = stack.getItem(); if (item instanceof GenericItemBlockUsingDamage == false) return null; GenericItemBlockUsingDamage genItem = (GenericItemBlockUsingDamage) item; return genItem.getDescriptor(stack); } public static GenericItemBlockUsingDamageDescriptor getDescriptor(ItemStack stack, Class extendClass) { GenericItemBlockUsingDamageDescriptor desc = getDescriptor(stack); if (desc == null) return null; if (extendClass.isAssignableFrom(desc.getClass()) == false) return null; return desc; } public boolean onEntityItemUpdate(EntityItem entityItem) { return false; } public boolean onItemUseFirst(ItemStack stack, EntityPlayer player) { return false; } }