    001package net.minecraft.item;
    002
    003import cpw.mods.fml.relauncher.Side;
    004import cpw.mods.fml.relauncher.SideOnly;
    005import net.minecraft.block.Block;
    006
    007public class ItemColored extends ItemBlock
    008{
    009    private final Block blockRef;
    010    private String[] blockNames;
    011
    012    public ItemColored(int par1, boolean par2)
    013    {
    014        super(par1);
    015        this.blockRef = Block.blocksList[this.getBlockID()];
    016
    017        if (par2)
    018        {
    019            this.setMaxDamage(0);
    020            this.setHasSubtypes(true);
    021        }
    022    }
    023
    024    @SideOnly(Side.CLIENT)
    025    public int getColorFromItemStack(ItemStack par1ItemStack, int par2)
    026    {
    027        return this.blockRef.getRenderColor(par1ItemStack.getItemDamage());
    028    }
    029
    030    /**
    031     * Returns the metadata of the block which this Item (ItemBlock) can place
    032     */
    033    public int getMetadata(int par1)
    034    {
    035        return par1;
    036    }
    037
    038    /**
    039     * Sets the array of strings to be used for name lookups from item damage to metadata
    040     */
    041    public ItemColored setBlockNames(String[] par1ArrayOfStr)
    042    {
    043        this.blockNames = par1ArrayOfStr;
    044        return this;
    045    }
    046
    047    @SideOnly(Side.CLIENT)
    048
    049    /**
    050     * Gets an icon index based on an item's damage value
    051     */
    052    public int getIconFromDamage(int par1)
    053    {
    054        return this.blockRef.getBlockTextureFromSideAndMetadata(0, par1);
    055    }
    056
    057    public String getItemNameIS(ItemStack par1ItemStack)
    058    {
    059        if (this.blockNames == null)
    060        {
    061            return super.getItemNameIS(par1ItemStack);
    062        }
    063        else
    064        {
    065            int var2 = par1ItemStack.getItemDamage();
    066            return var2 >= 0 && var2 < this.blockNames.length ? super.getItemNameIS(par1ItemStack) + "." + this.blockNames[var2] : super.getItemNameIS(par1ItemStack);
    067        }
    068    }
    069}