Package logisticspipes.proxy.buildcraft.bc61.subproxies

Source Code of logisticspipes.proxy.buildcraft.bc61.subproxies.BCRenderState

package logisticspipes.proxy.buildcraft.bc61.subproxies;

import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;

import java.io.IOException;

import logisticspipes.network.LPDataInputStream;
import logisticspipes.network.LPDataOutputStream;
import logisticspipes.proxy.buildcraft.subproxies.IBCRenderState;
import logisticspipes.renderer.state.ConnectionMatrix;
import buildcraft.transport.utils.FacadeMatrix;
import buildcraft.transport.utils.GateMatrix;
import buildcraft.transport.utils.RobotStationMatrix;
import buildcraft.transport.utils.WireMatrix;

public class BCRenderState implements IBCRenderState {
  public WireMatrix wireMatrix = new WireMatrix();
  public final ConnectionMatrix plugMatrix = new ConnectionMatrix();
  public final RobotStationMatrix robotStationMatrix = new RobotStationMatrix();
  public final FacadeMatrix facadeMatrix = new FacadeMatrix();
  public final GateMatrix gateMatrix = new GateMatrix();

  private boolean dirty = false;
  private int gateIconIndex = 0;

  @Override
  public Object getOriginal() {
    return this;
  }

  @Override
  public void clean() {
    dirty = false;
    facadeMatrix.clean();
    wireMatrix.clean();
    plugMatrix.clean();
    robotStationMatrix.clean();
  }

  @Override
  public boolean isDirty() {
    return dirty || wireMatrix.isDirty() || facadeMatrix.isDirty() || plugMatrix.isDirty() || robotStationMatrix.isDirty() || gateMatrix.isDirty();
  }

  @Override
  public boolean needsRenderUpdate() {
    return facadeMatrix.isDirty() || plugMatrix.isDirty() || robotStationMatrix.isDirty();
  }

  @Override
  public void writeData(LPDataOutputStream data) throws IOException {
    data.writeInt(gateIconIndex);
    plugMatrix.writeData(data);
   
    ByteBuf buf = Unpooled.buffer();
   
    wireMatrix.writeData(buf);
    facadeMatrix.writeData(buf);
    robotStationMatrix.writeData(buf);
    gateMatrix.writeData(buf);
   
    data.writeByteArray(buf.array());
  }

  @Override
  public void readData(LPDataInputStream data) throws IOException {
    gateIconIndex = data.readInt();
    plugMatrix.readData(data);
   
    ByteBuf buf = Unpooled.copiedBuffer(data.readByteArray());
   
    wireMatrix.readData(buf);
    facadeMatrix.readData(buf);
    robotStationMatrix.readData(buf);
    gateMatrix.readData(buf);
  }
}
TOP

Related Classes of logisticspipes.proxy.buildcraft.bc61.subproxies.BCRenderState

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.