package mods.eln.sixnode.electricalwindsensor;
import mods.eln.Eln;
import mods.eln.cable.CableRenderDescriptor;
import mods.eln.misc.Direction;
import mods.eln.misc.LRDU;
import mods.eln.misc.RcInterpolator;
import mods.eln.node.six.SixNodeDescriptor;
import mods.eln.node.six.SixNodeElementRender;
import mods.eln.node.six.SixNodeEntity;
import java.io.DataInputStream;
import java.io.IOException;
public class ElectricalWindSensorRender extends SixNodeElementRender {
ElectricalWindSensorDescriptor descriptor;
float alpha = 0;
float wind = 0;
RcInterpolator windFilter = new RcInterpolator(5);
public ElectricalWindSensorRender(SixNodeEntity tileEntity, Direction side, SixNodeDescriptor descriptor) {
super(tileEntity, side, descriptor);
this.descriptor = (ElectricalWindSensorDescriptor) descriptor;
}
@Override
public void draw() {
super.draw();
drawSignalPin(front.right(), new float[]{2, 2, 2, 2});
descriptor.draw(alpha);
}
@Override
public void refresh(float deltaT) {
windFilter.step(deltaT);
alpha += windFilter.get() * deltaT * 20;
if (alpha > 360)
alpha -= 360;
}
@Override
public CableRenderDescriptor getCableRender(LRDU lrdu) {
return Eln.instance.signalCableDescriptor.render;
}
@Override
public void publishUnserialize(DataInputStream stream) {
super.publishUnserialize(stream);
try {
wind = stream.readFloat();
windFilter.setTarget(wind);
} catch (IOException e) {
e.printStackTrace();
}
}
}