private async Task <GeneratePathResult> GeneratePath(Vector3 start, Vector3 end) { CurrentPath = new FlightPath(start, end, flightNavigationArgs); FlightPath path; if (FlightPath.Paths.TryGetValue(CurrentPath.Key, out path)) { CurrentPath = path; return(GeneratePathResult.SuccessUseExisting); } if (await CurrentPath.BuildPath()) { if (CurrentPath.Count > 0) { FlightPath.Paths[CurrentPath.Key] = CurrentPath; return(GeneratePathResult.Success); } } logger.Error( Localization.Localization.FlightEnabledNavigator_NoPath); Clear(); return(GeneratePathResult.Success); }
private async Task <GeneratePathResult> GeneratePath(Vector3 start, Vector3 end) { CurrentPath = new FlightPath(start, end, flightNavigationArgs); FlightPath path; if (FlightPath.Paths.TryGetValue(CurrentPath.Key, out path)) { CurrentPath = path; return(GeneratePathResult.SuccessUseExisting); } if (await CurrentPath.BuildPath()) { if (CurrentPath.Count > 0) { FlightPath.Paths[CurrentPath.Key] = CurrentPath; return(GeneratePathResult.Success); } } logger.Error( Localization.Localization.FlightEnabledNavigator_NoPath); Clear(); Navigator.NavigationProvider = innerNavigator; #pragma warning disable 4014 Task.Factory.StartNew( #pragma warning restore 4014 () => { Thread.Sleep(10000); logger.Info(Localization.Localization.FlightEnabledNavigator_ResetNavigatonProvider); Navigator.NavigationProvider = this; }); return(GeneratePathResult.Failed); }