001 package net.minecraft.tileentity;
002
003 import cpw.mods.fml.relauncher.Side;
004 import cpw.mods.fml.relauncher.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 /**
057 * Set the entity type for the skull
058 */
059 public void setSkullType(int par1, String par2Str)
060 {
061 this.skullType = par1;
062 this.extraType = par2Str;
063 }
064
065 /**
066 * Get the entity type for the skull
067 */
068 public int getSkullType()
069 {
070 return this.skullType;
071 }
072
073 /**
074 * Set the skull's rotation
075 */
076 public void setSkullRotation(int par1)
077 {
078 this.skullRotation = par1;
079 }
080
081 @SideOnly(Side.CLIENT)
082 public int func_82119_b()
083 {
084 return this.skullRotation;
085 }
086
087 /**
088 * Get the extra data foor this skull, used as player username by player heads
089 */
090 public String getExtraType()
091 {
092 return this.extraType;
093 }
094 }