001package net.minecraft.entity.item;
002
003import cpw.mods.fml.relauncher.Side;
004import cpw.mods.fml.relauncher.SideOnly;
005import java.util.ArrayList;
006import net.minecraft.entity.EntityHanging;
007import net.minecraft.item.Item;
008import net.minecraft.item.ItemStack;
009import net.minecraft.nbt.NBTTagCompound;
010import net.minecraft.util.EnumArt;
011import net.minecraft.world.World;
012
013public class EntityPainting extends EntityHanging
014{
015    public EnumArt art;
016
017    public EntityPainting(World par1World)
018    {
019        super(par1World);
020    }
021
022    public EntityPainting(World par1World, int par2, int par3, int par4, int par5)
023    {
024        super(par1World, par2, par3, par4, par5);
025        ArrayList var6 = new ArrayList();
026        EnumArt[] var7 = EnumArt.values();
027        int var8 = var7.length;
028
029        for (int var9 = 0; var9 < var8; ++var9)
030        {
031            EnumArt var10 = var7[var9];
032            this.art = var10;
033            this.setDirection(par5);
034
035            if (this.onValidSurface())
036            {
037                var6.add(var10);
038            }
039        }
040
041        if (!var6.isEmpty())
042        {
043            this.art = (EnumArt)var6.get(this.rand.nextInt(var6.size()));
044        }
045
046        this.setDirection(par5);
047    }
048
049    @SideOnly(Side.CLIENT)
050    public EntityPainting(World par1World, int par2, int par3, int par4, int par5, String par6Str)
051    {
052        this(par1World, par2, par3, par4, par5);
053        EnumArt[] var7 = EnumArt.values();
054        int var8 = var7.length;
055
056        for (int var9 = 0; var9 < var8; ++var9)
057        {
058            EnumArt var10 = var7[var9];
059
060            if (var10.title.equals(par6Str))
061            {
062                this.art = var10;
063                break;
064            }
065        }
066
067        this.setDirection(par5);
068    }
069
070    /**
071     * (abstract) Protected helper method to write subclass entity data to NBT.
072     */
073    public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound)
074    {
075        par1NBTTagCompound.setString("Motive", this.art.title);
076        super.writeEntityToNBT(par1NBTTagCompound);
077    }
078
079    /**
080     * (abstract) Protected helper method to read subclass entity data from NBT.
081     */
082    public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound)
083    {
084        String var2 = par1NBTTagCompound.getString("Motive");
085        EnumArt[] var3 = EnumArt.values();
086        int var4 = var3.length;
087
088        for (int var5 = 0; var5 < var4; ++var5)
089        {
090            EnumArt var6 = var3[var5];
091
092            if (var6.title.equals(var2))
093            {
094                this.art = var6;
095            }
096        }
097
098        if (this.art == null)
099        {
100            this.art = EnumArt.Kebab;
101        }
102
103        super.readEntityFromNBT(par1NBTTagCompound);
104    }
105
106    public int func_82329_d()
107    {
108        return this.art.sizeX;
109    }
110
111    public int func_82330_g()
112    {
113        return this.art.sizeY;
114    }
115
116    /**
117     * Drop the item currently on this item frame.
118     */
119    public void dropItemStack()
120    {
121        this.entityDropItem(new ItemStack(Item.painting), 0.0F);
122    }
123}