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 }