Beispiel #1
0
    public void ResetLights()
    {
        currentNPCLightState = NPCLightStateTypes.Off;
        SetHeadLights();
        SetRunningLights();
        SetBrakeLights(false);
        if (FixedUpdateManager != null)
        {
            if (turnSignalIE != null)
            {
                FixedUpdateManager.StopCoroutine(turnSignalIE);
            }
            if (hazardSignalIE != null)
            {
                FixedUpdateManager.StopCoroutine(hazardSignalIE);
            }
        }

        SetTurnIndicator(isReset: true);
        SetIndicatorReverse(false);

        if (Loader.Instance.Network.IsMaster)
        {
            var message = MessagesPool.Instance.GetMessage(4);
            message.AddressKey = Key;
            message.Content.PushEnum <NPCControllerMethodName>((int)NPCControllerMethodName.ResetLights);
            message.Type = DistributedMessageType.ReliableOrdered;
            BroadcastMessage(message);
        }
    }
    private void GetDayNightState()
    {
        if (EnvironmentEffectsManager.Instance == null)
        {
            return;
        }

        switch (EnvironmentEffectsManager.Instance.currentDayNightState)
        {
        case DayNightStateTypes.Day:
            currentNPCLightState = NPCLightStateTypes.Off;
            break;

        case DayNightStateTypes.Night:
            currentNPCLightState = NPCLightStateTypes.Low;
            break;

        case DayNightStateTypes.Sunrise:
            currentNPCLightState = NPCLightStateTypes.Off;
            break;

        case DayNightStateTypes.Sunset:
            currentNPCLightState = NPCLightStateTypes.Low;
            break;

        default:
            break;
        }
        headLights.ForEach(x => SetNPCLights(x));
        headLightRenderers.ForEach(x => SetNPCLightRenderers(x, true));
        tailLightRenderers.ForEach(x => SetNPCLightRenderers(x));
        brakeLightRenderers.ForEach(x => SetNPCLightRenderers(x));
    }
    private void OnDayNightChange(DayNightMissive missive)
    {
        switch (missive.state)
        {
        case DayNightStateTypes.Day:
            currentNPCLightState = NPCLightStateTypes.Off;
            break;

        case DayNightStateTypes.Night:
            currentNPCLightState = NPCLightStateTypes.Low;
            break;

        case DayNightStateTypes.Sunrise:
            currentNPCLightState = NPCLightStateTypes.Off;
            break;

        case DayNightStateTypes.Sunset:
            currentNPCLightState = NPCLightStateTypes.Low;
            break;

        default:
            break;
        }
        headLights.ForEach(x => SetNPCLights(x));
        headLightRenderers.ForEach(x => SetNPCLightRenderers(x, true));
        tailLightRenderers.ForEach(x => SetNPCLightRenderers(x));
        brakeLightRenderers.ForEach(x => SetNPCLightRenderers(x));
    }
 private void ResetData()
 {
     StopAllCoroutines();
     currentMapLaneSegmentBuilder = null;
     currentIntersectionComponent = null;
     if (prevMapLaneSegmentBuilder?.stopLine?.mapIntersectionBuilder != null)
     {
         prevMapLaneSegmentBuilder.stopLine.mapIntersectionBuilder.ExitStopSignQueue(this);
     }
     prevMapLaneSegmentBuilder = null;
     currentNPCLightState      = NPCLightStateTypes.Off;
     allRenderers.ForEach(x => SetNPCLightRenderers(x));
     currentSpeed          = 0f;
     currentStopTime       = 0f;
     path                  = 0f;
     currentSpeed_measured = 0f;
     rb.angularVelocity    = Vector3.zero;
     rb.velocity           = Vector3.zero;
     isCurve               = false;
     isLeftTurn            = false;
     isRightTurn           = false;
     isStopLight           = false;
     isStopSign            = false;
     hasReachedStopSign    = false;
     isLaneDataSet         = false;
 }
Beispiel #5
0
    public void SetLights(int state)
    {
        currentNPCLightState = (NPCLightStateTypes)state;
        SetHeadLights();
        SetRunningLights();

        if (Loader.Instance.Network.IsMaster)
        {
            var message = MessagesPool.Instance.GetMessage(8);
            message.AddressKey = Key;
            message.Content.PushInt(state);
            message.Content.PushEnum <NPCControllerMethodName>((int)NPCControllerMethodName.SetLights);
            message.Type = DistributedMessageType.ReliableOrdered;
            BroadcastMessage(message);
        }
    }
Beispiel #6
0
    private void OnTimeOfDayChange(TimeOfDayStateTypes state)
    {
        switch (state)
        {
        case TimeOfDayStateTypes.Day:
            currentNPCLightState = NPCLightStateTypes.Off;
            break;

        case TimeOfDayStateTypes.Night:
            currentNPCLightState = NPCLightStateTypes.Low;
            break;

        case TimeOfDayStateTypes.Sunrise:
            currentNPCLightState = NPCLightStateTypes.Low;
            break;

        case TimeOfDayStateTypes.Sunset:
            currentNPCLightState = NPCLightStateTypes.Low;
            break;
        }
        SetLights((int)currentNPCLightState);
    }
Beispiel #7
0
    public void GetSimulatorTimeOfDay()
    {
        switch (SimulatorManager.Instance.EnvironmentEffectsManager.CurrentTimeOfDayState)
        {
        case TimeOfDayStateTypes.Day:
            currentNPCLightState = NPCLightStateTypes.Off;
            break;

        case TimeOfDayStateTypes.Night:
            currentNPCLightState = NPCLightStateTypes.Low;
            break;

        case TimeOfDayStateTypes.Sunrise:
            currentNPCLightState = NPCLightStateTypes.Low;
            break;

        case TimeOfDayStateTypes.Sunset:
            currentNPCLightState = NPCLightStateTypes.Low;
            break;
        }
        SetLights((int)currentNPCLightState);
    }
Beispiel #8
0
 private void OnDisable()
 {
     Missive.RemoveListener <DayNightMissive>(OnDayNightChange);
     currentNPCLightState = NPCLightStateTypes.Off;
     allRenderers.ForEach(x => SetNPCLightRenderers(x));
 }