// sets name nad timings for this phase
 public void Initialize(string name, float startTime, float activeTime, float endTime)
 {
     Name = name;
     PhaseStartTime = startTime;
     PhaseActiveTime = activeTime;
     PhaseEndTime = endTime;
     mState = TrafficLightBase.State.Blank;
 }
    // sets current state of this phase (and all attached traffic lights)
    public void SetState(TrafficLightBase.State state)
    {
        //if (mState == state)
        //    return;

        mState = state;
        switch (mState)
        {
            case TrafficLightBase.State.Blank:
                ChangeLightState(false, false, false);
                break;

            case TrafficLightBase.State.Stop:
                ChangeLightState(true, false, false);
                break;

            case TrafficLightBase.State.PrepareToGo:
            /* ***** Removed to stop red to yellow transition
            ChangeLightState(true, true, false);
            ***** */
            break;

            case TrafficLightBase.State.Go:
                ChangeLightState(false, false, true);
                break;

            case TrafficLightBase.State.PrepareToStop:
                ChangeLightState(false, true, false);
                break;

            case TrafficLightBase.State.YellowBlink:
                ChangeLightState(false, false, false);
                break;

            default:
                ChangeLightState(false, false, false);
                break;
        }
    }