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 func_82790_a(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 }