private async Task <bool> Start() { if (navigator == null && BotManager.Current.EnglishName != "Fate Bot") { var settings = EnableFlightSettings.Instance; navigator = new FlightEnabledNavigator( Navigator.NavigationProvider, new FlightEnabledSlideMover(Navigator.PlayerMover, new FlightMovementArgs { MountId = settings.MountId }), new FlightNavigationArgs { ForcedAltitude = settings.ForcedAltitude, InverseParabolicMagnitude = settings.InverseParabolicMagnitude, Radius = settings.Radius, Smoothing = settings.Smoothing }); cleanup = bot => { DoCleanup(); DisposeNav(); TreeRoot.OnStop -= cleanup; }; TreeRoot.OnStop += cleanup; Logger.Info("Started Flight Navigator."); } return(false); }
private void DoCleanup() { if (navigator != null) { Logger.Info("Stopped Flight Navigator."); navigator.Dispose(); navigator = null; } }
private async Task<bool> Start() { if (navigator == null) { navigator = new FlightEnabledNavigator( Navigator.NavigationProvider, new FlightEnabledSlideMover(Navigator.PlayerMover), new FlightNavigationArgs { ForcedAltitude = EnableFlightSettings.Instance.ForcedAltitude, InverseParabolicMagnitude = EnableFlightSettings.Instance.InverseParabolicMagnitude, LogWaypoints = EnableFlightSettings.Instance.LogWaypoints, Radius = EnableFlightSettings.Instance.Radius, Smoothing = EnableFlightSettings.Instance.Smoothing }); cleanup = bot => { DoCleanup(); DisposeNav(); TreeRoot.OnStop -= cleanup; }; TreeRoot.OnStop += cleanup; Logging.Write(Colors.DeepSkyBlue, "Started Flight Navigator."); } return false; }
private void DoCleanup() { if (navigator != null) { Logging.Write(Colors.DeepSkyBlue, "Stopped Flight Navigator."); navigator.Dispose(); navigator = null; } }