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);
        }