private void SaveSettingsButton_Click(object sender, EventArgs e) { try { if (ModsFolderTextBox.Text != "" && GameFolderTextBox.Text != "") { Config = new ManagerConfig { GameFolder = GameFolderTextBox.Text, ModsFolder = ModsFolderTextBox.Text }; JsonReader.WriteToJson(Config, Path.Combine(programPath, "config.json")); //Reiniciar IMOWA e o Loader Installer if (ModDataHandler == null) { ModDataHandler = new ModDataHandler(Config.GameFolder, Config.ModsFolder, Config.ModsFolder); new ModEnableElement(panel1, ModDataHandler.ManifestDoLoader, ModDataHandler.DIMOWALoaderInstaller.IsLoaderInstalled); allEnabledMods = ModDataHandler.ModEnabledList.ModList.ToList(); for (int i = 0; i < ModDataHandler.ManifestsDosMods.Length; i++) { var ele = new ModEnableElement(panel1, ModDataHandler.ManifestsDosMods[i], allEnabledMods.IndexOf(ModDataHandler.ManifestsDosMods[i].FileName) > -1); if (i == 0) { ele.ChangeRow(75); } else { ele.ChangeRow(ModEnableElement.ModEnableElements[i].GetRow() + 25); } if (!ModDataHandler.DIMOWALoaderInstaller.IsLoaderInstalled) { ele.LockElement(Color.Gray); } } } } else if (ModsFolderTextBox.Text != "" && GameFolderTextBox.Text == "") { ConsoleWindowHelper.Warning("The Game Folder path is missing"); MessageBox.Show("The Game Folder path is missing"); } else if (ModsFolderTextBox.Text == "" && GameFolderTextBox.Text != "") { ConsoleWindowHelper.Warning("The Mod Folder path is missing"); MessageBox.Show("The Mod Folder path is missing"); } else { ConsoleWindowHelper.Warning("Both paths are missing"); MessageBox.Show("Both paths are missing"); } } catch (Exception ex) { ConsoleWindowHelper.FatalException("A Fatal Exception occured while saving the settings: " + ex.Message + " check the Console Windows for more information."); ConsoleWindowHelper.Exception(string.Format("{0}: {1} {2}\nInner Exception Message: {3}", ex.Source, ex.Message, ex.StackTrace, ex.InnerException)); } }
public Form1() { programPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); InitializeComponent(); ConsoleWindowHelper Console = new ConsoleWindowHelper(ConsoleWindow); try { tabControl1.Appearance = TabAppearance.Normal; MainMenu(); SettingsMenu(); string[] possibleConfig = Directory.GetFiles(Form1.programPath, "*config.json"); if (possibleConfig.Length <= 0) { tabControl1.SelectedTab = tabPage2; } else { try { Config = JsonReader.ReadFromJson <ManagerConfig>(possibleConfig[0]); } catch (Exception ex) { ConsoleWindowHelper.Exception(ex.Message + " - " + ex.StackTrace); throw new IOException("Something went wrong while reading the config.json file, try deleting it and running the program again"); } ModsFolderTextBox.Text = Config.ModsFolder; GameFolderTextBox.Text = Config.GameFolder; ModDataHandler = new ModDataHandler(Config.GameFolder, Config.ModsFolder, Config.ModsFolder); new ModEnableElement(panel1, ModDataHandler.ManifestDoLoader, ModDataHandler.DIMOWALoaderInstaller.IsLoaderInstalled); allEnabledMods = ModDataHandler.ModEnabledList.ModList.ToList(); for (int i = 0; i < ModDataHandler.ManifestsDosMods.Length; i++) { var e = new ModEnableElement(panel1, ModDataHandler.ManifestsDosMods[i], allEnabledMods.IndexOf(ModDataHandler.ManifestsDosMods[i].FileName) > -1); if (i == 0) { e.ChangeRow(75); } else { e.ChangeRow(ModEnableElement.ModEnableElements[i].GetRow() + 25); } if (!ModDataHandler.DIMOWALoaderInstaller.IsLoaderInstalled) { e.LockElement(Color.Gray); } } } } catch (Exception ex) { ConsoleWindowHelper.FatalException("A Fatal Exception occured while starting the program: " + ex.Message + " check the Console Windows for more information."); ConsoleWindowHelper.Exception(string.Format("{0}: {1} {2}\nInner Exception Message: {3}", ex.Source, ex.Message, ex.StackTrace, ex.InnerException)); } }