/// <summary>
 /// Checks if the green-to-red (=yellow) phase is currently active
 /// </summary>
 /// <returns></returns>
 internal bool isInEndTransition()
 {
     if (!timedNode.isMasterNode())
     {
         TimedTrafficLights masterLights = timedNode.MasterLights();
         if (masterLights != null)
         {
             return(masterLights.Steps[timedNode.CurrentStep].isInEndTransition());
         }
     }
     return(endTransitionStart != null && getCurrentFrame() <= endTransitionStart && StepDone(false));
 }
Beispiel #2
0
        /// <summary>
        /// Checks if the green-to-red (=yellow) phase is finished
        /// </summary>
        /// <returns></returns>
        internal bool IsEndTransitionDone()
        {
            if (!timedNode.IsMasterNode())
            {
                TimedTrafficLights masterLights = timedNode.MasterLights();
                return(masterLights.Steps[masterLights.CurrentStep].IsEndTransitionDone());
            }

            bool isStepDone = StepDone(false);
            bool ret        = endTransitionStart != null && getCurrentFrame() > endTransitionStart && isStepDone;

#if DEBUGTTL
            Log._Debug($"TimedTrafficLightsStep.isEndTransitionDone() called for master NodeId={timedNode.NodeId}. CurrentStep={timedNode.CurrentStep} getCurrentFrame()={getCurrentFrame()} endTransitionStart={endTransitionStart} isStepDone={isStepDone} ret={ret}");
#endif
            return(ret);
        }