package mods.eln.sixnode.electricalsource;
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 ElectricalSourceRender extends SixNodeElementRender {
ElectricalSourceDescriptor descriptor;
double voltage = 0, current = 0;
int color = 0;
public ElectricalSourceRender(SixNodeEntity tileEntity, Direction side, SixNodeDescriptor descriptor) {
super(tileEntity, side, descriptor);
this.descriptor = (ElectricalSourceDescriptor) descriptor;
}
@Override
public void draw() {
super.draw();
front.glRotateOnX();
descriptor.draw(voltage >= 25);
}
@Override
public void publishUnserialize(DataInputStream stream) {
super.publishUnserialize(stream);
try {
Byte b;
b = stream.readByte();
color = (b >> 4) & 0xF;
voltage = stream.readFloat();
needRedrawCable();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public GuiScreen newGuiDraw(Direction side, EntityPlayer player) {
return new ElectricalSourceGui(this);
}
@Override
public CableRenderDescriptor getCableRender(LRDU lrdu) {
if (descriptor.isSignalSource()) return Eln.instance.signalCableDescriptor.render;
if (voltage < Eln.instance.lowVoltageCableDescriptor.electricalMaximalVoltage)
return Eln.instance.lowVoltageCableDescriptor.render;
if (voltage < Eln.instance.meduimVoltageCableDescriptor.electricalMaximalVoltage)
return Eln.instance.meduimVoltageCableDescriptor.render;
if (voltage > Eln.instance.highVoltageCableDescriptor.electricalMaximalVoltage)
return Eln.instance.highVoltageCableDescriptor.render;
return Eln.instance.veryHighVoltageCableDescriptor.render;
}
}