001package net.minecraft.network.packet;
002
003import java.io.DataInputStream;
004import java.io.DataOutputStream;
005import java.io.IOException;
006import net.minecraft.entity.item.EntityPainting;
007import net.minecraft.util.EnumArt;
008
009public class Packet25EntityPainting extends Packet
010{
011    public int entityId;
012    public int xPosition;
013    public int yPosition;
014    public int zPosition;
015    public int direction;
016    public String title;
017
018    public Packet25EntityPainting() {}
019
020    public Packet25EntityPainting(EntityPainting par1EntityPainting)
021    {
022        this.entityId = par1EntityPainting.entityId;
023        this.xPosition = par1EntityPainting.xPosition;
024        this.yPosition = par1EntityPainting.yPosition;
025        this.zPosition = par1EntityPainting.zPosition;
026        this.direction = par1EntityPainting.hangingDirection;
027        this.title = par1EntityPainting.art.title;
028    }
029
030    /**
031     * Abstract. Reads the raw packet data from the data stream.
032     */
033    public void readPacketData(DataInputStream par1DataInputStream) throws IOException
034    {
035        this.entityId = par1DataInputStream.readInt();
036        this.title = readString(par1DataInputStream, EnumArt.maxArtTitleLength);
037        this.xPosition = par1DataInputStream.readInt();
038        this.yPosition = par1DataInputStream.readInt();
039        this.zPosition = par1DataInputStream.readInt();
040        this.direction = par1DataInputStream.readInt();
041    }
042
043    /**
044     * Abstract. Writes the raw packet data to the data stream.
045     */
046    public void writePacketData(DataOutputStream par1DataOutputStream) throws IOException
047    {
048        par1DataOutputStream.writeInt(this.entityId);
049        writeString(this.title, par1DataOutputStream);
050        par1DataOutputStream.writeInt(this.xPosition);
051        par1DataOutputStream.writeInt(this.yPosition);
052        par1DataOutputStream.writeInt(this.zPosition);
053        par1DataOutputStream.writeInt(this.direction);
054    }
055
056    /**
057     * Passes this Packet on to the NetHandler for processing.
058     */
059    public void processPacket(NetHandler par1NetHandler)
060    {
061        par1NetHandler.handleEntityPainting(this);
062    }
063
064    /**
065     * Abstract. Return the size of the packet (not counting the header).
066     */
067    public int getPacketSize()
068    {
069        return 24;
070    }
071}