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}