package com.projectreddog.machinemod.network;
import com.projectreddog.machinemod.tileentities.TileEntityLiquidPipe;
import net.minecraft.client.Minecraft;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.math.BlockPos;
import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
public class MachineModMessageLiquidPipeToClientHandler implements IMessageHandler<MachineModMessageLiquidPipeToClient, IMessage> {
@Override
public IMessage onMessage(final MachineModMessageLiquidPipeToClient message, MessageContext ctx) {
// LogHelper.info("in machineModMessageEntityToClient Handler");
// LogHelper.info("Message data" + message);
// LogHelper.info("on message MachineModMessageEntityToClientHandler");
if (Minecraft.getMinecraft().theWorld != null) {
if (Minecraft.getMinecraft().theWorld.isRemote) {
Minecraft.getMinecraft().addScheduledTask(new Runnable() {
public void run() {
processMessage(message);
}
});
}
}
return null;
}
public void processMessage(MachineModMessageLiquidPipeToClient message) {
if (message != null) {
if (Minecraft.getMinecraft().theWorld != null) {
if (Minecraft.getMinecraft().thePlayer != null) {
TileEntity entity = Minecraft.getMinecraft().theWorld.getTileEntity(new BlockPos(message.currPosX, message.currPosY, message.currPosZ));
if (entity != null) {
if (entity instanceof TileEntityLiquidPipe) {
if (message.fluidID == -1) {
((TileEntityLiquidPipe) entity).setFluid(null);
} else {
((TileEntityLiquidPipe) entity).setFluid(new FluidStack(FluidRegistry.getFluid(message.fluidID), message.liquidAmount));
}
}
}
}
}
}
}
}