// Update is called once per frame
	void Update () {
        timeAcum += Time.deltaTime;
        if(timeAcum >= timeChangeState)
        {
            timeAcum = 0;
           
            switch (state)
            {
                case SemaphoreStates.RouteOne: state = SemaphoreStates.FromRouteOne; break;
                case SemaphoreStates.RouteTwo: state = SemaphoreStates.FromRouteTwo; break;
                case SemaphoreStates.FromRouteOne: state = SemaphoreStates.RouteTwo; break;
                case SemaphoreStates.FromRouteTwo: state = SemaphoreStates.RouteOne; break;
            }

            changeSemaphores();
        }
	}
	// Use this for initialization
	void Start () {
        if (!Generator.getInstance().withSemaphores)
        {
           for(int i = 0; i < routeOne.Length; i++)
           {
                Destroy(routeOne[i]);
           }
            for (int i = 0; i < routeTwo.Length; i++)
            {
                Destroy(routeTwo[i]);
            }
            this.enabled = false;
            return;
        }
        timeSemaphone = Random.Range(m_minTimeChange, m_maxTimeChange) + Random.value;
        timeAcum = 0;
        state = (SemaphoreStates)Random.Range(0,4);
        changeSemaphores();
	}