Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
 private void OnAfterReset(EventArgs e) => AfterReset?.Invoke(this, e);