001package net.minecraft.network.packet;
002
003import java.io.DataInputStream;
004import java.io.DataOutputStream;
005import java.io.IOException;
006import net.minecraft.entity.Entity;
007import net.minecraft.entity.effect.EntityLightningBolt;
008import net.minecraft.util.MathHelper;
009
010public class Packet71Weather extends Packet
011{
012    public int entityID;
013    public int posX;
014    public int posY;
015    public int posZ;
016    public int isLightningBolt;
017
018    public Packet71Weather() {}
019
020    public Packet71Weather(Entity par1Entity)
021    {
022        this.entityID = par1Entity.entityId;
023        this.posX = MathHelper.floor_double(par1Entity.posX * 32.0D);
024        this.posY = MathHelper.floor_double(par1Entity.posY * 32.0D);
025        this.posZ = MathHelper.floor_double(par1Entity.posZ * 32.0D);
026
027        if (par1Entity instanceof EntityLightningBolt)
028        {
029            this.isLightningBolt = 1;
030        }
031    }
032
033    /**
034     * Abstract. Reads the raw packet data from the data stream.
035     */
036    public void readPacketData(DataInputStream par1DataInputStream) throws IOException
037    {
038        this.entityID = par1DataInputStream.readInt();
039        this.isLightningBolt = par1DataInputStream.readByte();
040        this.posX = par1DataInputStream.readInt();
041        this.posY = par1DataInputStream.readInt();
042        this.posZ = par1DataInputStream.readInt();
043    }
044
045    /**
046     * Abstract. Writes the raw packet data to the data stream.
047     */
048    public void writePacketData(DataOutputStream par1DataOutputStream) throws IOException
049    {
050        par1DataOutputStream.writeInt(this.entityID);
051        par1DataOutputStream.writeByte(this.isLightningBolt);
052        par1DataOutputStream.writeInt(this.posX);
053        par1DataOutputStream.writeInt(this.posY);
054        par1DataOutputStream.writeInt(this.posZ);
055    }
056
057    /**
058     * Passes this Packet on to the NetHandler for processing.
059     */
060    public void processPacket(NetHandler par1NetHandler)
061    {
062        par1NetHandler.handleWeather(this);
063    }
064
065    /**
066     * Abstract. Return the size of the packet (not counting the header).
067     */
068    public int getPacketSize()
069    {
070        return 17;
071    }
072}