public bool SetUpTimedTrafficLight(ref TrafficLightSimulation sim, IEnumerable <ushort> nodeGroup) { if (sim.IsManualLight()) { DestroyManualTrafficLight(ref sim); } if (sim.IsTimedLight()) { return(false); } Constants.ServiceFactory.NetService.ProcessNode( sim.nodeId, (ushort nId, ref NetNode node) => { Constants.ManagerFactory.TrafficLightManager.AddTrafficLight( nId, ref node); return(true); }); Constants.ManagerFactory.CustomSegmentLightsManager.AddNodeLights(sim.nodeId); sim.timedLight = new TimedTrafficLights(sim.nodeId, nodeGroup); sim.type = TrafficLightSimulationType.Timed; return(true); }
public bool HasActiveSimulation(ushort nodeId) { TrafficLightSimulation sim = TrafficLightSimulations[nodeId]; if (sim == null) { return(false); } return(sim.IsManualLight() || sim.IsTimedLightActive()); }
public bool DestroyManualTrafficLight(ref TrafficLightSimulation sim) { if (sim.IsTimedLight()) { return(false); } if (!sim.IsManualLight()) { return(false); } sim.type = TrafficLightSimulationType.None; Constants.ManagerFactory.CustomSegmentLightsManager.RemoveNodeLights(sim.nodeId); return(true); }