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