OpenBve.TrainManager.UnapplyEmergencyBrake C# (CSharp) Method

UnapplyEmergencyBrake() static private method

Releases the emergency brake
static private UnapplyEmergencyBrake ( Train Train ) : void
Train Train The train
return void
		internal static void UnapplyEmergencyBrake(Train Train)
		{
			if (Train.Specs.CurrentEmergencyBrake.Driver)
			{
				// sound
				Sounds.SoundBuffer buffer = Train.Cars[Train.DriverCar].Sounds.BrakeHandleRelease.Buffer;
				if (buffer != null)
				{
					OpenBveApi.Math.Vector3 pos = Train.Cars[Train.DriverCar].Sounds.BrakeHandleRelease.Position;
					Sounds.PlaySound(buffer, 1.0, 1.0, pos, Train, Train.DriverCar, false);
				}
				// apply
				ApplyNotch(Train, 0, !Train.Specs.SingleHandle, Train.Specs.MaximumBrakeNotch, true);
				ApplyAirBrakeHandle(Train, AirBrakeHandleState.Service);
				Train.Specs.CurrentEmergencyBrake.Driver = false;
				// plugin
				if (Train.Plugin == null) return;
				Train.Plugin.UpdatePower();
				Train.Plugin.UpdateBrake();
			}
		}

Usage Example

Exemplo n.º 1
0
        /// <summary>
        /// main timer interrupt
        /// </summary>
        static private void MainTimerProcess(object state)
        {
            if (Interlocked.Exchange(ref inTimer_Main, 1) == 0)
            {
                try
                {
                    nowControl = TrainManager.PlayerTrain;
                    //Master key
                    if (!MasterKey)
                    {
                        SetAutoPilot(0);
                        SetBrake(0);
                        SetPower(0);
                        ReverserNeutral();
                    }

                    //emergency
                    if (Emergency)
                    {
                        SetAutoPilot(0);
                        TrainManager.ApplyEmergencyBrake(nowControl);
                    }
                    else
                    {
                        TrainManager.UnapplyEmergencyBrake(nowControl);
                    }

                    //signal
                    if (GetSignal() == 0)
                    {
                        inRedLight = true;
                    }
                    else
                    {
                        if (inRedLight)
                        {
                            SetBrake(nowControl.Handles.Brake.MaximumNotch);
                            SetReverser(0);
                            SetAutoPilot(0);
                        }
                        inRedLight = false;
                    }
                }
                catch (Exception ex) { }
                Interlocked.Exchange(ref inTimer_Main, 0);
            }
        }
All Usage Examples Of OpenBve.TrainManager::UnapplyEmergencyBrake