public bool CheckCurrentStep() { if (!IsStarted()) { return(true); } if (!Steps[CurrentStep].isValid()) { TrafficPriority.RemoveNodeFromSimulation(nodeId); return(false); } var currentFrameIndex = Singleton <SimulationManager> .instance.m_currentFrameIndex; Steps[CurrentStep].SetLights(); if (!Steps[CurrentStep].StepDone()) { return(false); } // step is done if (!Steps[CurrentStep].isEndTransitionDone()) { return(false); } // ending transition (yellow) finished CurrentStep = (CurrentStep + 1) % Steps.Count; Steps[CurrentStep].Start(); Steps[CurrentStep].SetLights(); return(true); }