package mods.eln.sixnode.wirelesssignal.repeater;
import mods.eln.misc.Direction;
import mods.eln.misc.LRDU;
import mods.eln.misc.Utils;
import mods.eln.node.NodeBase;
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.sixnode.wirelesssignal.IWirelessSignalSpot;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.nbt.NBTTagCompound;
import javax.annotation.Nullable;
import java.util.Map;
public class WirelessSignalRepeaterElement extends SixNodeElement {
WirelessSignalRepeaterProcess slowProcess = new WirelessSignalRepeaterProcess(this);
WirelessSignalRepeaterDescriptor descriptor;
boolean fromNbt = false;
public WirelessSignalRepeaterElement(SixNode sixNode, Direction side, SixNodeDescriptor descriptor) {
super(sixNode, side, descriptor);
this.descriptor = (WirelessSignalRepeaterDescriptor) descriptor;
slowProcessList.add(slowProcess);
IWirelessSignalSpot.spots.add(slowProcess);
}
@Override
public ElectricalLoad getElectricalLoad(LRDU lrdu) {
return null;
}
@Override
public ThermalLoad getThermalLoad(LRDU lrdu) {
return null;
}
@Override
public int getConnectionMask(LRDU lrdu) {
if (front == lrdu) return NodeBase.maskElectricalOutputGate;
return 0;
}
@Override
public String multiMeterString() {
return null;
}
@Nullable
@Override
public Map<String, String> getWaila() {
return null;
}
@Override
public String thermoMeterString() {
return null;
}
@Override
public void globalBoot() {
slowProcess.process(0.05);
}
@Override
public void destroy(EntityPlayerMP entityPlayer) {
unregister();
super.destroy(entityPlayer);
}
@Override
public void unload() {
super.unload();
unregister();
}
void unregister() {
IWirelessSignalSpot.spots.remove(slowProcess);
}
@Override
public void initialize() {
if (!fromNbt) {
slowProcess.process(0.05);
}
}
@Override
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
fromNbt = true;
}
}