    001package net.minecraft.item;
    002
    003import cpw.mods.fml.relauncher.Side;
    004import cpw.mods.fml.relauncher.SideOnly;
    005import java.util.HashMap;
    006import java.util.List;
    007import java.util.Map;
    008import net.minecraft.block.Block;
    009import net.minecraft.block.BlockJukeBox;
    010import net.minecraft.creativetab.CreativeTabs;
    011import net.minecraft.entity.player.EntityPlayer;
    012import net.minecraft.world.World;
    013
    014public class ItemRecord extends Item
    015{
    016    /** List of all record items and their names. */
    017    private static final Map records = new HashMap();
    018
    019    /** The name of the record. */
    020    public final String recordName;
    021
    022    protected ItemRecord(int par1, String par2Str)
    023    {
    024        super(par1);
    025        this.recordName = par2Str;
    026        this.maxStackSize = 1;
    027        this.setCreativeTab(CreativeTabs.tabMisc);
    028        records.put(par2Str, this);
    029    }
    030
    031    /**
    032     * Callback for item usage. If the item does something special on right clicking, he will have one of those. Return
    033     * True if something happen and false if it don't. This is for ITEMS, not BLOCKS
    034     */
    035    public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10)
    036    {
    037        if (par3World.getBlockId(par4, par5, par6) == Block.jukebox.blockID && par3World.getBlockMetadata(par4, par5, par6) == 0)
    038        {
    039            if (par3World.isRemote)
    040            {
    041                return true;
    042            }
    043            else
    044            {
    045                ((BlockJukeBox)Block.jukebox).insertRecord(par3World, par4, par5, par6, par1ItemStack);
    046                par3World.playAuxSFXAtEntity((EntityPlayer)null, 1005, par4, par5, par6, this.itemID);
    047                --par1ItemStack.stackSize;
    048                return true;
    049            }
    050        }
    051        else
    052        {
    053            return false;
    054        }
    055    }
    056
    057    @SideOnly(Side.CLIENT)
    058
    059    /**
    060     * allows items to add custom lines of information to the mouseover description
    061     */
    062    public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4)
    063    {
    064        par3List.add(this.getRecordTitle());
    065    }
    066
    067    @SideOnly(Side.CLIENT)
    068
    069    /**
    070     * Return the title for this record.
    071     */
    072    public String getRecordTitle()
    073    {
    074        return "C418 - " + this.recordName;
    075    }
    076
    077    @SideOnly(Side.CLIENT)
    078
    079    /**
    080     * Return an item rarity from EnumRarity
    081     */
    082    public EnumRarity getRarity(ItemStack par1ItemStack)
    083    {
    084        return EnumRarity.rare;
    085    }
    086
    087    @SideOnly(Side.CLIENT)
    088
    089    /**
    090     * Return the record item corresponding to the given name.
    091     */
    092    public static ItemRecord getRecord(String par0Str)
    093    {
    094        return (ItemRecord)records.get(par0Str);
    095    }
    096}