001 package net.minecraft.tileentity; 002 003 import cpw.mods.fml.common.Side; 004 import cpw.mods.fml.common.asm.SideOnly; 005 import net.minecraft.nbt.NBTTagCompound; 006 import net.minecraft.network.packet.Packet; 007 import net.minecraft.network.packet.Packet132TileEntityData; 008 009 public class TileEntitySkull extends TileEntity 010 { 011 /** Entity type for this skull. */ 012 private int skullType; 013 014 /** The skull's rotation. */ 015 private int skullRotation; 016 017 /** Extra data for this skull, used as player username by player heads */ 018 private String extraType = ""; 019 020 /** 021 * Writes a tile entity to NBT. 022 */ 023 public void writeToNBT(NBTTagCompound par1NBTTagCompound) 024 { 025 super.writeToNBT(par1NBTTagCompound); 026 par1NBTTagCompound.setByte("SkullType", (byte)(this.skullType & 255)); 027 par1NBTTagCompound.setByte("Rot", (byte)(this.skullRotation & 255)); 028 par1NBTTagCompound.setString("ExtraType", this.extraType); 029 } 030 031 /** 032 * Reads a tile entity from NBT. 033 */ 034 public void readFromNBT(NBTTagCompound par1NBTTagCompound) 035 { 036 super.readFromNBT(par1NBTTagCompound); 037 this.skullType = par1NBTTagCompound.getByte("SkullType"); 038 this.skullRotation = par1NBTTagCompound.getByte("Rot"); 039 040 if (par1NBTTagCompound.hasKey("ExtraType")) 041 { 042 this.extraType = par1NBTTagCompound.getString("ExtraType"); 043 } 044 } 045 046 /** 047 * Overriden in a sign to provide the text. 048 */ 049 public Packet getDescriptionPacket() 050 { 051 NBTTagCompound var1 = new NBTTagCompound(); 052 this.writeToNBT(var1); 053 return new Packet132TileEntityData(this.xCoord, this.yCoord, this.zCoord, 4, var1); 054 } 055 056 public void func_82118_a(int par1, String par2Str) 057 { 058 this.skullType = par1; 059 this.extraType = par2Str; 060 } 061 062 public int func_82117_a() 063 { 064 return this.skullType; 065 } 066 067 public void func_82116_a(int par1) 068 { 069 this.skullRotation = par1; 070 } 071 072 @SideOnly(Side.CLIENT) 073 public int func_82119_b() 074 { 075 return this.skullRotation; 076 } 077 078 public String func_82120_c() 079 { 080 return this.extraType; 081 } 082 }