Package crazypants.enderio.machine.monitor

Source Code of crazypants.enderio.machine.monitor.PacketPowerMonitor

package crazypants.enderio.machine.monitor;

import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import cpw.mods.fml.common.network.simpleimpl.IMessage;
import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
import cpw.mods.fml.common.network.simpleimpl.MessageContext;
import crazypants.enderio.Log;

public class PacketPowerMonitor implements IMessage, IMessageHandler<PacketPowerMonitor, IMessage> {

  int x;
  int y;
  int z;
  boolean engineControlEnabled;
  float startLevel;
  float stopLevel;

  public PacketPowerMonitor() {
  }

  public PacketPowerMonitor(TilePowerMonitor pm) {
    x = pm.xCoord;
    y = pm.yCoord;
    z = pm.zCoord;
    engineControlEnabled = pm.engineControlEnabled;
    startLevel = pm.startLevel;
    stopLevel = pm.stopLevel;
  }

  @Override
  public void toBytes(ByteBuf buf) {
    buf.writeInt(x);
    buf.writeInt(y);
    buf.writeInt(z);
    buf.writeBoolean(engineControlEnabled);   
    buf.writeFloat(startLevel);
    buf.writeFloat(stopLevel);

  }

  @Override
  public void fromBytes(ByteBuf buffer) {
    x = buffer.readInt();
    y = buffer.readInt();
    z = buffer.readInt();
    engineControlEnabled = buffer.readBoolean();   
    startLevel = buffer.readFloat();
    stopLevel = buffer.readFloat();
  }

  @Override
  public IMessage onMessage(PacketPowerMonitor message, MessageContext ctx) {
    EntityPlayer player = ctx.getServerHandler().playerEntity;
    TileEntity te = player.worldObj.getTileEntity(message.x, message.y, message.z);
    if(!(te instanceof TilePowerMonitor)) {
      Log.warn("createPowerMonitotPacket: Could not handle packet as TileEntity was not a TilePowerMonitor.");
      return null;
    }
    TilePowerMonitor pm = (TilePowerMonitor) te;
    pm.engineControlEnabled = message.engineControlEnabled;
    pm.startLevel = message.startLevel;
    pm.stopLevel = message.stopLevel;
    player.worldObj.markBlockForUpdate(x, y, z);
    return null;
  }

}
TOP

Related Classes of crazypants.enderio.machine.monitor.PacketPowerMonitor

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.