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