internal override void Trigger(int Direction, EventTriggerType TriggerType, TrainManager.Train Train, int CarIndex) {
if (TriggerType == EventTriggerType.FrontCarFrontAxle) {
if (Direction > 0) {
int d = Train.DriverCar;
Sounds.SoundBuffer buffer = Train.Cars[d].Sounds.Halt.Buffer;
if (buffer != null) {
OpenBveApi.Math.Vector3 pos = Train.Cars[d].Sounds.Halt.Position;
if (Train.Specs.PassAlarm == TrainManager.PassAlarmType.Single) {
Train.Cars[d].Sounds.Halt.Source = Sounds.PlaySound(buffer, 1.0, 1.0, pos, Train, d, false);
} else if (Train.Specs.PassAlarm == TrainManager.PassAlarmType.Loop) {
Train.Cars[d].Sounds.Halt.Source = Sounds.PlaySound(buffer, 1.0, 1.0, pos, Train, d, true);
}
}
this.DontTriggerAnymore = true;
}
}
}
}