/// <summary> /// Forcefully reset of settings of this loc. /// This should be used when a loc is taken of the track. /// </summary> private void OnReset(int maxRetries) { // Stop Speed.Requested = 0; ControlledAutomatically.Requested = false; // Disconnect everything BeforeReset.Fire(this); // Disconnect from block if (!AssignTo(null, BlockSide.Back)) { if (maxRetries > 0) { RailwayState.Dispatcher.PostAction(() => OnReset(maxRetries - 1)); } } // Disconnect everything AfterReset.Fire(this); }
private void OnAfterReset(EventArgs e) => AfterReset?.Invoke(this, e);