Package erogenousbeef.bigreactors.net.message

Source Code of erogenousbeef.bigreactors.net.message.MachineCommandActivateMessage$Handler

package erogenousbeef.bigreactors.net.message;

import io.netty.buffer.ByteBuf;
import net.minecraft.tileentity.TileEntity;
import cpw.mods.fml.common.network.simpleimpl.IMessage;
import cpw.mods.fml.common.network.simpleimpl.MessageContext;
import erogenousbeef.bigreactors.common.BRLog;
import erogenousbeef.bigreactors.common.multiblock.interfaces.IActivateable;
import erogenousbeef.bigreactors.net.message.base.WorldMessageServer;
import erogenousbeef.core.common.CoordTriplet;

/**
* Send a "setActive" command to any IActivateable machine.
* Currently used for multiblock reactors and turbines.
* @see erogenousbeef.bigreactors.common.multiblock.interfaces.IActivateable
* @author Erogenous Beef
*
*/
public class MachineCommandActivateMessage extends WorldMessageServer {
  protected boolean setActive;
  public MachineCommandActivateMessage() { super(); setActive = true; }

  protected MachineCommandActivateMessage(CoordTriplet coord, boolean setActive) {
    super(coord.x, coord.y, coord.z);
    this.setActive = setActive;
  }

  public MachineCommandActivateMessage(IActivateable machine, boolean setActive) {
    this(machine.getReferenceCoord(), setActive);
  }

  @Override
  public void toBytes(ByteBuf buf) {
    super.toBytes(buf);
    buf.writeBoolean(setActive);
  }
 
  @Override
  public void fromBytes(ByteBuf buf) {
    super.fromBytes(buf);
    setActive = buf.readBoolean();
  }
 
  public static class Handler extends WorldMessageServer.Handler<MachineCommandActivateMessage> {
    @Override
    protected IMessage handleMessage(MachineCommandActivateMessage message,
        MessageContext ctx, TileEntity te) {
      if(te instanceof IActivateable) {
        IActivateable machine = (IActivateable)te;
        machine.setActive(message.setActive);
      }
      else {
        BRLog.error("Received a MachineCommandActivateMessage for %d, %d, %d but found no activateable machine", message.x, message.y, message.z);
      }
      return null;
    }
  }
 
}
TOP

Related Classes of erogenousbeef.bigreactors.net.message.MachineCommandActivateMessage$Handler

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.