private static void InitLauncherSettings() { if (AreLauncherSettingsInitialized) { return; } LauncherSettings = new LauncherSettings(); if (File.Exists(HLVRPaths.VRLauncherSettingsFile)) { AreLauncherSettingsInitialized = TryLoadSettings(HLVRPaths.VRLauncherSettingsFile) && TryStoreSettings(LauncherSettings, HLVRPaths.VRLauncherSettingsFile); } else { AreLauncherSettingsInitialized = TryStoreSettings(LauncherSettings, HLVRPaths.VRLauncherSettingsFile); } if (string.IsNullOrEmpty(HLVRPaths.HLDirectory)) { HLVRPaths.RestoreLastHLDirectory(); } }
public MainWindow() { try { singleProcessEnforcer.ForceSingleProcess(); HLVRPaths.Initialize(); UpdateSettingsAndLanguage(); InitializeComponent(); UpdateState(); RefreshConfigTabs(); LoadReadme(); InitializeNotifyIcon(); HandleInitialSettings(); IsValidProcess = true; } catch (CancelAndTerminateAppException) { Application.Current?.Shutdown(); } }
public static void SaveI18NFile() { if (HLVRPaths.CheckModDirectory()) { if (!Directory.Exists(HLVRPaths.VRI18NDirectory)) { Directory.CreateDirectory(HLVRPaths.VRI18NDirectory); } var lines = texts.ToList().ConvertAll(pair => pair.Key + "=" + pair.Value); lines.Sort(); File.WriteAllText(I18NFile, string.Join("\n", lines), Encoding.UTF8); } }
private void HandleInitialSettings() { if (HLVRSettingsManager.LauncherSettings.GeneralSettings[LauncherSettings.CategoryLauncher][LauncherSettings.StartMinimized].IsTrue()) { WindowState = WindowState.Minimized; OnWindowStateChanged(); } if (HLVRSettingsManager.LauncherSettings.GeneralSettings[LauncherSettings.CategoryLauncher][LauncherSettings.AutoRunMod].IsTrue() && HLVRPaths.CheckHLDirectory() && HLVRPaths.CheckModDirectory()) { hlvrModLauncher.LaunchMod(false); } }
public static void Init() { string previouslanguage = CurrentLanguage; CurrentLanguage = HLVRSettingsManager.LauncherSettings.GeneralSettings[LauncherSettings.CategoryLanguage][LauncherSettings.Language].Value; if (CurrentLanguage == null || CurrentLanguage.Length == 0) { CurrentLanguage = "en"; } if (HLVRPaths.CheckModDirectory()) { if (!Directory.Exists(HLVRPaths.VRI18NDirectory)) { Directory.CreateDirectory(HLVRPaths.VRI18NDirectory); } if (File.Exists(I18NFile)) { texts.Clear(); using (StringReader reader = new StringReader(File.ReadAllText(I18NFile, Encoding.UTF8))) { string line; while ((line = reader.ReadLine()) != null) { var pair = line.Split(new char[] { '=' }, 2); if (pair.Length == 2) { texts[pair[0]] = pair[1]; } } } } } UpdateLanguages(); if (previouslanguage != CurrentLanguage) { System.Windows.Application.Current?.Dispatcher?.BeginInvoke((Action)(() => (System.Windows.Application.Current?.MainWindow as MainWindow)?.RefreshConfigTabs(true, true))); } }
private static void InitModSettings() { if (AreModSettingsInitialized) { return; } ModSettings = new ModSettings(); if (!HLVRPaths.CheckHLDirectory() || !HLVRPaths.CheckModDirectory()) { AreModSettingsInitialized = false; return; } if (File.Exists(HLVRPaths.VRModSettingsFile)) { if (!TryLoadSettings(HLVRPaths.VRModSettingsFile)) { var errorMsg = new I18N.I18NString("ErrorMsgCouldNotLoadModSettings", "Couldn't load mod settings file. If you chose OK, HLVRConfig will replace settings with default values. If you chose Cancel, config tabs will not be available."); var errorTitle = new I18N.I18NString("Error", "Error"); var result = MessageBox.Show(I18N.Get(errorMsg), I18N.Get(errorTitle), MessageBoxButton.OKCancel, MessageBoxImage.Warning); if (result != MessageBoxResult.OK) { AreModSettingsInitialized = false; return; } } } if (!TryStoreSettings(ModSettings, HLVRPaths.VRModSettingsFile)) { var errorMsg = new I18N.I18NString("ErrorMsgCouldNotSynchronizeModSettings", "Couldn't synchronize mod settings. Config tabs are not available."); var errorTitle = new I18N.I18NString("Error", "Error"); MessageBox.Show(I18N.Get(errorMsg), I18N.Get(errorTitle), MessageBoxButton.OK, MessageBoxImage.Warning); AreModSettingsInitialized = false; return; } AreModSettingsInitialized = true; }
private static void UpdateLanguages() { HLVRSettingsManager.LauncherSettings.Languages.Clear(); HLVRSettingsManager.LauncherSettings.Languages["en"] = new I18NString("Language.en", "English"); if (HLVRPaths.CheckModDirectory()) { foreach (var file in Directory.GetFiles(HLVRPaths.VRI18NDirectory, "*.lang", SearchOption.AllDirectories)) { var language = Path.GetFileNameWithoutExtension(file); if (language.Length > 0 && language != "en") { HLVRSettingsManager.LauncherSettings.Languages[language] = new I18NString("Language." + language, language); } } } System.Windows.Application.Current?.Dispatcher?.BeginInvoke((Action)(() => (System.Windows.Application.Current?.MainWindow as MainWindow)?.UpdateGUITexts())); UpdateSpeechLanguages(); }
public void UpdateState() { UpdateSettingsAndLanguage(); if (!HLVRPaths.CheckHLDirectory() || !HLVRPaths.CheckModDirectory()) { ModNotFoundPanel.Visibility = Visibility.Visible; NotRunningGamePanel.Visibility = Visibility.Collapsed; RunningGamePannel.Visibility = Visibility.Collapsed; CreateMiniDumpButton.Visibility = Visibility.Collapsed; } else { ModNotFoundPanel.Visibility = Visibility.Collapsed; NotRunningGamePanel.Visibility = hlvrModLauncher.IsGameRunning() ? Visibility.Collapsed : Visibility.Visible; RunningGamePannel.Visibility = hlvrModLauncher.IsGameRunning() ? Visibility.Visible : Visibility.Collapsed; CreateMiniDumpButton.Visibility = (HLVRSettingsManager.LauncherSettings.GeneralSettings[LauncherSettings.CategoryDebug][LauncherSettings.EnableMiniDumpButton].IsTrue() && hlvrModLauncher.IsGameRunning() ) ? Visibility.Visible : Visibility.Collapsed; } }
private static void InitFileSystemWatcherEtc() { if (storeLoadTaskWaitHandle == null) { storeLoadTaskWaitHandle = new EventWaitHandle(false, EventResetMode.AutoReset); } if (storeLoadThread == null) { storeLoadThread = new Thread(StoreLoadWorkerLoop) { IsBackground = true }; storeLoadThread.Start(); } if (!IsFileSystemWatcherInitialized) { if (fileSystemWatcher != null) { fileSystemWatcher.Dispose(); fileSystemWatcher = null; } if (HLVRPaths.CheckHLDirectory() && HLVRPaths.CheckModDirectory()) { fileSystemWatcher = new FileSystemWatcher { Path = HLVRPaths.VRDirectory, EnableRaisingEvents = true, IncludeSubdirectories = false, NotifyFilter = NotifyFilters.LastWrite }; fileSystemWatcher.Changed += FileSystemWatcher_Changed; IsFileSystemWatcherInitialized = true; } } }
public MainWindow() { try { singleProcessEnforcer.ForceSingleProcess(); HLVRPaths.Initialize(); HLVRSettingsManager.InitSettings(); hlvrPatcher.Initialize(); IsValidProcess = true; InitializeComponent(); HLVRLauncherConfig.Initialize(LauncherConfig); HLVRModConfig.Initialize(ModConfig); InitializeNotifyIcon(); UpdateState(); HandleInitialSettings(); LoadReadme(); } catch (CancelAndTerminateAppException) { System.Windows.Application.Current.Shutdown(); } }