package mods.eln.sixnode.wirelesssignal.repeater; import mods.eln.misc.Coordonate; import mods.eln.misc.Utils; import mods.eln.sim.IProcess; import mods.eln.sixnode.wirelesssignal.IWirelessSignalSpot; import mods.eln.sixnode.wirelesssignal.IWirelessSignalTx; import mods.eln.sixnode.wirelesssignal.WirelessUtils; import java.util.ArrayList; import java.util.HashMap; public class WirelessSignalRepeaterProcess implements IProcess, IWirelessSignalSpot { private WirelessSignalRepeaterElement rx; double sleepTimer = 0; IWirelessSignalSpot spot; boolean boot = true; public WirelessSignalRepeaterProcess(WirelessSignalRepeaterElement rx) { this.rx = rx; } @Override public void process(double time) { sleepTimer -= time; if (sleepTimer < 0) { sleepTimer += Utils.rand(1.2, 2); spot = WirelessUtils.buildSpot(rx.getCoordonate(), null, rx.descriptor.range); if (boot) { boot = false; //IWirelessSignalSpot.spots.add(this); } } } @Override public HashMap<String, ArrayList<IWirelessSignalTx>> getTx() { return spot.getTx(); } @Override public ArrayList<IWirelessSignalSpot> getSpot() { return spot.getSpot(); } @Override public Coordonate getCoordonate() { return rx.getCoordonate(); } @Override public int getRange() { return rx.descriptor.range; } }