package mods.eln.sixnode.electricaltimeout;
import mods.eln.Eln;
import mods.eln.cable.CableRenderDescriptor;
import mods.eln.misc.Direction;
import mods.eln.misc.LRDU;
import mods.eln.node.six.SixNodeDescriptor;
import mods.eln.node.six.SixNodeElementRender;
import mods.eln.node.six.SixNodeEntity;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.player.EntityPlayer;
import java.io.DataInputStream;
import java.io.IOException;
public class ElectricalTimeoutRender extends SixNodeElementRender {
ElectricalTimeoutDescriptor descriptor;
long time;
float timeoutValue = 0, timeoutCounter = 0;
boolean inputState;
public ElectricalTimeoutRender(SixNodeEntity tileEntity, Direction side, SixNodeDescriptor descriptor) {
super(tileEntity, side, descriptor);
this.descriptor = (ElectricalTimeoutDescriptor) descriptor;
time = System.currentTimeMillis();
}
//PhysicalInterpolator interpolator = new PhysicalInterpolator(0.2f, 2.0f, 1.5f, 0.2f);
@Override
public void draw() {
super.draw();
front.glRotateOnX();
descriptor.draw(timeoutCounter / timeoutValue);
}
@Override
public void refresh(float deltaT) {
if (!inputState) {
timeoutCounter -= deltaT;
if (timeoutCounter < 0f) timeoutCounter = 0f;
}
}
@Override
public boolean cameraDrawOptimisation() {
return false;
}
@Override
public void publishUnserialize(DataInputStream stream) {
super.publishUnserialize(stream);
try {
timeoutValue = stream.readFloat();
timeoutCounter = stream.readFloat();
inputState = stream.readBoolean();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public CableRenderDescriptor getCableRender(LRDU lrdu) {
return Eln.instance.signalCableDescriptor.render;
}
@Override
public GuiScreen newGuiDraw(Direction side, EntityPlayer player) {
return new ElectricalTimeoutGui(player, this);
}
}