package mods.eln.signalinductor;
import mods.eln.misc.Direction;
import mods.eln.misc.LRDU;
import mods.eln.misc.Utils;
import mods.eln.node.six.SixNode;
import mods.eln.node.six.SixNodeDescriptor;
import mods.eln.node.six.SixNodeElement;
import mods.eln.sim.ElectricalLoad;
import mods.eln.sim.ThermalLoad;
import mods.eln.sim.mna.component.Inductor;
import mods.eln.sim.nbt.NbtElectricalLoad;
import net.minecraft.entity.player.EntityPlayer;
public class SignalInductorElement extends SixNodeElement {
public SignalInductorDescriptor descriptor;
public NbtElectricalLoad postiveLoad = new NbtElectricalLoad("postiveLoad");
public NbtElectricalLoad negativeLoad = new NbtElectricalLoad("negativeLoad");
public Inductor inductor = new Inductor("inductor", postiveLoad, negativeLoad);
public SignalInductorElement(SixNode sixNode, Direction side, SixNodeDescriptor descriptor) {
super(sixNode, side, descriptor);
electricalLoadList.add(postiveLoad);
electricalLoadList.add(negativeLoad);
electricalComponentList.add(inductor);
postiveLoad.setAsMustBeFarFromInterSystem();
this.descriptor = (SignalInductorDescriptor) descriptor;
}
@Override
public ElectricalLoad getElectricalLoad(LRDU lrdu) {
if (front == lrdu) return postiveLoad;
if (front.inverse() == lrdu) return negativeLoad;
return null;
}
@Override
public ThermalLoad getThermalLoad(LRDU lrdu) {
return null;
}
@Override
public int getConnectionMask(LRDU lrdu) {
if (front == lrdu) return descriptor.cable.getNodeMask();
if (front.inverse() == lrdu) return descriptor.cable.getNodeMask();
return 0;
}
@Override
public String multiMeterString() {
return Utils.plotAmpere("I", inductor.getCurrent());
}
@Override
public String thermoMeterString() {
return "";
}
@Override
public void initialize() {
descriptor.applyTo(negativeLoad);
descriptor.applyTo(postiveLoad);
descriptor.applyTo(inductor);
}
}