package net.minecraft.network.play.server;
import com.google.common.collect.Lists;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import net.minecraft.network.INetHandler;
import net.minecraft.network.Packet;
import net.minecraft.network.PacketBuffer;
import net.minecraft.network.play.INetHandlerPlayClient;
import net.minecraft.util.BlockPos;
import net.minecraft.util.Vec3;
public class S27PacketExplosion implements Packet
{
private double field_149158_a;
private double field_149156_b;
private double field_149157_c;
private float field_149154_d;
private List field_149155_e;
private float field_149152_f;
private float field_149153_g;
private float field_149159_h;
private static final String __OBFID = "CL_00001300";
public S27PacketExplosion() {}
public S27PacketExplosion(double p_i45193_1_, double p_i45193_3_, double p_i45193_5_, float p_i45193_7_, List p_i45193_8_, Vec3 p_i45193_9_)
{
this.field_149158_a = p_i45193_1_;
this.field_149156_b = p_i45193_3_;
this.field_149157_c = p_i45193_5_;
this.field_149154_d = p_i45193_7_;
this.field_149155_e = Lists.newArrayList(p_i45193_8_);
if (p_i45193_9_ != null)
{
this.field_149152_f = (float)p_i45193_9_.xCoord;
this.field_149153_g = (float)p_i45193_9_.yCoord;
this.field_149159_h = (float)p_i45193_9_.zCoord;
}
}
/**
* Reads the raw packet data from the data stream.
*/
public void readPacketData(PacketBuffer data) throws IOException
{
this.field_149158_a = (double)data.readFloat();
this.field_149156_b = (double)data.readFloat();
this.field_149157_c = (double)data.readFloat();
this.field_149154_d = data.readFloat();
int var2 = data.readInt();
this.field_149155_e = Lists.newArrayListWithCapacity(var2);
int var3 = (int)this.field_149158_a;
int var4 = (int)this.field_149156_b;
int var5 = (int)this.field_149157_c;
for (int var6 = 0; var6 < var2; ++var6)
{
int var7 = data.readByte() + var3;
int var8 = data.readByte() + var4;
int var9 = data.readByte() + var5;
this.field_149155_e.add(new BlockPos(var7, var8, var9));
}
this.field_149152_f = data.readFloat();
this.field_149153_g = data.readFloat();
this.field_149159_h = data.readFloat();
}
/**
* Writes the raw packet data to the data stream.
*/
public void writePacketData(PacketBuffer data) throws IOException
{
data.writeFloat((float)this.field_149158_a);
data.writeFloat((float)this.field_149156_b);
data.writeFloat((float)this.field_149157_c);
data.writeFloat(this.field_149154_d);
data.writeInt(this.field_149155_e.size());
int var2 = (int)this.field_149158_a;
int var3 = (int)this.field_149156_b;
int var4 = (int)this.field_149157_c;
Iterator var5 = this.field_149155_e.iterator();
while (var5.hasNext())
{
BlockPos var6 = (BlockPos)var5.next();
int var7 = var6.getX() - var2;
int var8 = var6.getY() - var3;
int var9 = var6.getZ() - var4;
data.writeByte(var7);
data.writeByte(var8);
data.writeByte(var9);
}
data.writeFloat(this.field_149152_f);
data.writeFloat(this.field_149153_g);
data.writeFloat(this.field_149159_h);
}
/**
* Passes this Packet on to the NetHandler for processing.
*/
public void processPacket(INetHandlerPlayClient handler)
{
handler.handleExplosion(this);
}
/**
* Passes this Packet on to the NetHandler for processing.
*/
public void processPacket(INetHandler handler)
{
this.processPacket((INetHandlerPlayClient)handler);
}
}