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