private async void ChangeOptions_Click(object sender, RoutedEventArgs e) { string selectedDirectory; // Don't use FolderBrowserDialog because its UI sucks. See: https://stackoverflow.com/a/31082 CommonOpenFileDialog dialog = new() { Multiselect = false, InitialDirectory = PathToSubnautica, EnsurePathExists = true, IsFolderPicker = true, Title = "Select Subnautica installation directory" }; using (dialog) { if (dialog.ShowDialog() != CommonFileDialogResult.Ok) { return; } selectedDirectory = Path.GetFullPath(dialog.FileName); } if (GameInstallationFinder.IsSubnauticaDirectory(selectedDirectory)) { await LauncherLogic.Instance.SetTargetedSubnauticaPath(selectedDirectory); } else { MessageBox.Show("The selected directory does not contain the required Subnautica.exe file.", "Invalid Subnautica directory", MessageBoxButton.OK, MessageBoxImage.Warning); } }
private async void OnChangePath_Click(object sender, RoutedEventArgs e) { string selectedDirectory; // Don't use FolderBrowserDialog because its UI sucks. See: https://stackoverflow.com/a/31082 using (CommonOpenFileDialog dialog = new() { Multiselect = false, InitialDirectory = PathToSubnautica, EnsurePathExists = true, IsFolderPicker = true, Title = "Select Subnautica installation directory" }) { if (dialog.ShowDialog() != CommonFileDialogResult.Ok) { return; } selectedDirectory = Path.GetFullPath(dialog.FileName); } if (!GameInstallationFinder.IsSubnauticaDirectory(selectedDirectory)) { LauncherNotifier.Error("Invalid subnautica directory"); return; } if (selectedDirectory != PathToSubnautica) { await LauncherLogic.Instance.SetTargetedSubnauticaPath(selectedDirectory); LauncherNotifier.Success("Applied changes"); } }