package minefantasy.mf2.network.packet;
import io.netty.buffer.ByteBuf;
import minefantasy.mf2.block.tileentity.TileEntityForge;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import cpw.mods.fml.common.network.ByteBufUtils;
public class ForgePacket extends PacketMF
{
public static final String packetName = "MF2_ForgePacket";
private int[] coords = new int[3];
private float[] fuels = new float[2];
private float[] temps = new float[2];
private int workableState;
public ForgePacket(TileEntityForge tile)
{
coords = new int[]{tile.xCoord, tile.yCoord, tile.zCoord};
fuels = new float[]{tile.fuel, tile.maxFuel};
if(fuels[0] > fuels[1])
{
fuels[0] = fuels[1];
}
temps = new float[]{tile.temperature, tile.fuelTemperature};
workableState = tile.getWorkableState();
}
public ForgePacket() {
}
@Override
public void process(ByteBuf packet, EntityPlayer player)
{
coords = new int[]{packet.readInt(), packet.readInt(), packet.readInt()};
fuels[0] = packet.readFloat();
fuels[1] = packet.readFloat();
temps[0] = packet.readFloat();
temps[1] = packet.readFloat();
workableState = packet.readInt();
TileEntity entity = player.worldObj.getTileEntity(coords[0], coords[1], coords[2]);
if(entity != null && entity instanceof TileEntityForge)
{
TileEntityForge tile = (TileEntityForge)entity;
tile.fuel = fuels[0];
tile.maxFuel = fuels[1];
tile.temperature = temps[0];
tile.fuelTemperature = temps[1];
tile.workableState = workableState;
}
}
@Override
public String getChannel()
{
return packetName;
}
@Override
public void write(ByteBuf packet)
{
for(int a = 0; a < coords.length; a++)
{
packet.writeInt(coords[a]);
}
packet.writeFloat(fuels[0]);
packet.writeFloat(fuels[1]);
packet.writeFloat(temps[0]);
packet.writeFloat(temps[1]);
packet.writeInt(workableState);
}
}