TrafficManager.TrafficLight.ManualSegmentLight.ChangeLightMain C# (CSharp) Method

ChangeLightMain() public method

public ChangeLightMain ( ) : void
return void
        public void ChangeLightMain()
        {
            var invertedLight = LightMain == RoadBaseAI.TrafficLightState.Green
                ? RoadBaseAI.TrafficLightState.Red
                : RoadBaseAI.TrafficLightState.Green;

            if (CurrentMode == Mode.Simple)
            {
                LightLeft = invertedLight;
                LightRight = invertedLight;
                LightPedestrian = !PedestrianEnabled ? LightMain : LightPedestrian;
                LightMain = invertedLight;
            }
            else if (CurrentMode == Mode.LeftForwardR)
            {
                LightRight = invertedLight;
                LightMain = invertedLight;
            }
            else if (CurrentMode == Mode.RightForwardL)
            {
                LightLeft = invertedLight;
                LightMain = invertedLight;
            }
            else
            {
                LightMain = invertedLight;
            }

            if (!PedestrianEnabled)
            {
                LightPedestrian = _checkPedestrianLight();
            }

            UpdateVisuals();
        }

Usage Example

        private bool LeftForwardRManualSegmentLightMode(bool hasLeftSegment, int segmentId, Vector3 screenPos, float lightWidth,
            float pedestrianWidth, float zoom, float lightHeight, ManualSegmentLight segmentDict, bool hoveredSegment,
            bool hasForwardSegment, bool hasRightSegment)
        {
            if (hasLeftSegment)
            {
                // left arrow light
                SetAlpha(segmentId, 3);

                var myRect4 =
                    new Rect(screenPos.x - lightWidth/2 - lightWidth*2 - pedestrianWidth + 5f*zoom,
                        screenPos.y - lightHeight/2, lightWidth, lightHeight);

                switch (segmentDict.LightLeft)
                {
                    case RoadBaseAI.TrafficLightState.Green:
                        GUI.DrawTexture(myRect4, TrafficLightToolTextureResources.GreenLightLeftTexture2D);
                        break;
                    case RoadBaseAI.TrafficLightState.Red:
                        GUI.DrawTexture(myRect4, TrafficLightToolTextureResources.RedLightLeftTexture2D);
                        break;
                }

                if (myRect4.Contains(Event.current.mousePosition))
                {
                    _hoveredButton[0] = segmentId;
                    _hoveredButton[1] = 3;
                    hoveredSegment = true;

                    if (Input.GetMouseButtonDown(0) && !_uiClickedSegment)
                    {
                        _uiClickedSegment = true;
                        segmentDict.ChangeLightLeft();
                    }
                }
            }

            // forward-right arrow light
            SetAlpha(segmentId, 4);

            var myRect5 =
                new Rect(screenPos.x - lightWidth/2 - lightWidth - pedestrianWidth + 5f*zoom,
                    screenPos.y - lightHeight/2, lightWidth, lightHeight);

            if (hasForwardSegment && hasRightSegment)
            {
                switch (segmentDict.LightMain)
                {
                    case RoadBaseAI.TrafficLightState.Green:
                        GUI.DrawTexture(myRect5, TrafficLightToolTextureResources.GreenLightForwardRightTexture2D);
                        break;
                    case RoadBaseAI.TrafficLightState.Red:
                        GUI.DrawTexture(myRect5, TrafficLightToolTextureResources.RedLightForwardRightTexture2D);
                        break;
                }
            }
            else if (!hasRightSegment)
            {
                switch (segmentDict.LightMain)
                {
                    case RoadBaseAI.TrafficLightState.Green:
                        GUI.DrawTexture(myRect5, TrafficLightToolTextureResources.GreenLightStraightTexture2D);
                        break;
                    case RoadBaseAI.TrafficLightState.Red:
                        GUI.DrawTexture(myRect5, TrafficLightToolTextureResources.RedLightStraightTexture2D);
                        break;
                }
            }
            else
            {
                switch (segmentDict.LightMain)
                {
                    case RoadBaseAI.TrafficLightState.Green:
                        GUI.DrawTexture(myRect5, TrafficLightToolTextureResources.GreenLightRightTexture2D);
                        break;
                    case RoadBaseAI.TrafficLightState.Red:
                        GUI.DrawTexture(myRect5, TrafficLightToolTextureResources.RedLightRightTexture2D);
                        break;
                }
            }

            if (!myRect5.Contains(Event.current.mousePosition))
                return hoveredSegment;
            _hoveredButton[0] = segmentId;
            _hoveredButton[1] = 4;

            if (!Input.GetMouseButtonDown(0) || _uiClickedSegment)
                return true;
            _uiClickedSegment = true;
            segmentDict.ChangeLightMain();
            return true;
        }
All Usage Examples Of TrafficManager.TrafficLight.ManualSegmentLight::ChangeLightMain