001 package net.minecraft.entity.item; 002 003 import cpw.mods.fml.relauncher.Side; 004 import cpw.mods.fml.relauncher.SideOnly; 005 import java.util.ArrayList; 006 import net.minecraft.entity.EntityHanging; 007 import net.minecraft.item.Item; 008 import net.minecraft.item.ItemStack; 009 import net.minecraft.nbt.NBTTagCompound; 010 import net.minecraft.util.EnumArt; 011 import net.minecraft.world.World; 012 013 public 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 }