001 package net.minecraft.item;
002
003 import cpw.mods.fml.relauncher.Side;
004 import cpw.mods.fml.relauncher.SideOnly;
005 import net.minecraft.block.Block;
006
007 public 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 }