    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}