Package erogenousbeef.bigreactors.net.helpers

Source Code of erogenousbeef.bigreactors.net.helpers.RedNetChange

package erogenousbeef.bigreactors.net.helpers;

import io.netty.buffer.ByteBuf;
import erogenousbeef.bigreactors.common.multiblock.tileentity.TileEntityReactorRedNetPort.CircuitType;
import erogenousbeef.core.common.CoordTriplet;

public class RedNetChange {
  int channelID;
  CircuitType circuitType;
  boolean pulseOrToggle;
  CoordTriplet coord;
 
  public RedNetChange(int channelID, CircuitType circuitType, boolean pulseOrToggle, CoordTriplet coord) {
    this.channelID = channelID;
    this.circuitType = circuitType;
    this.pulseOrToggle = pulseOrToggle;
    this.coord = coord;
  }
 
  public static RedNetChange fromBytes(ByteBuf buf) {
    int channelID = buf.readInt();
    CircuitType type = CircuitType.s_Types[buf.readInt()];
    boolean pulseOrToggle = false;

    if(CircuitType.canBeToggledBetweenPulseAndNormal(type)) {
      pulseOrToggle = buf.readBoolean();
    }
   
    CoordTriplet coord = null;
    if(CircuitType.hasCoordinate(type)) {
      boolean coordNull = buf.readBoolean();
      if(!coordNull) {
        coord = new CoordTriplet(buf.readInt(), buf.readInt(), buf.readInt());
      }
    }
   
    return new RedNetChange(channelID, type, pulseOrToggle, coord);
  }
 
  public void toBytes(ByteBuf buf) {
    buf.writeInt(channelID);
    buf.writeInt(circuitType.ordinal());
   
    if(CircuitType.canBeToggledBetweenPulseAndNormal(circuitType)) {
      buf.writeBoolean(pulseOrToggle);
    }
   
    if(CircuitType.hasCoordinate(circuitType)) {
      buf.writeBoolean(coord == null);
      if(coord != null) {
        buf.writeInt(coord.x);
        buf.writeInt(coord.y);
        buf.writeInt(coord.z);
      }
    }
  }

  public int getChannel() { return channelID; }
  public CircuitType getType() { return this.circuitType; }
  public CoordTriplet getCoord() { return coord; }
  public boolean getPulseOrToggle() { return this.pulseOrToggle; }
}
TOP

Related Classes of erogenousbeef.bigreactors.net.helpers.RedNetChange

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.