|  | package li.cil.oc.common.item | 
|  |  | 
|  | import java.util | 
|  |  | 
|  | import cpw.mods.fml.relauncher.{Side, SideOnly} | 
|  | import li.cil.oc.Settings | 
|  | import li.cil.oc.util.Color | 
|  | import net.minecraft.entity.player.EntityPlayer | 
|  | import net.minecraft.item.ItemStack | 
|  |  | 
|  | class FloppyDisk(val parent: Delegator) extends Delegate { | 
|  | // Necessary for anonymous subclasses used for loot disks. | 
|  | override def unlocalizedName = "FloppyDisk" | 
|  |  | 
|  | override protected def tooltipName = None | 
|  |  | 
|  | val icons = Array.fill[Icon](16)(null) | 
|  |  | 
|  | @SideOnly(Side.CLIENT) | 
|  | override def icon(stack: ItemStack, pass: Int) = | 
|  | if (stack.hasTagCompound && stack.getTagCompound.hasKey(Settings.namespace + "color")) | 
|  | Some(icons(stack.getTagCompound.getInteger(Settings.namespace + "color") max 0 min 15)) | 
|  | else | 
|  | Some(icons(8)) | 
|  |  | 
|  | override def tooltipLines(stack: ItemStack, player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) = { | 
|  | if (stack.hasTagCompound && stack.getTagCompound.hasKey(Settings.namespace + "data")) { | 
|  | val nbt = stack.getTagCompound.getCompoundTag(Settings.namespace + "data") | 
|  | if (nbt.hasKey(Settings.namespace + "fs.label")) { | 
|  | tooltip.add(nbt.getString(Settings.namespace + "fs.label")) | 
|  | } | 
|  | } | 
|  | super.tooltipLines(stack, player, tooltip, advanced) | 
|  | } | 
|  |  | 
|  | override def registerIcons(iconRegister: IconRegister) { | 
|  | val baseTextureName = Settings.resourceDomain + ":" + unlocalizedName + "_" | 
|  | Color.dyes.zipWithIndex.foreach { | 
|  | case (color, index) => | 
|  | icons(index) = iconRegister.registerIcon(baseTextureName + color) | 
|  | } | 
|  | } | 
|  | } |