public ModConfigForm(ConfiguratorBasic configurator) { InitializeComponent(); thisConfigForm = this; OpenMod(MainForm.modName, configurator); for (int i = 0; i < actualModConfig.configGUI.Count; i++) { actualModConfig.configGUI[i].ApplyValue(actualModConfig.configFiles, ModConfigClasses.ApplyType.inGoose); } for (int i = 0; i < actualModConfig.configGUI.Count; i++) { Controls.Add((Control)actualModConfig.configGUI[i]); actualModConfig.configGUI[i].addControlsToControl(thisConfigForm); if (i > 0) { actualModConfig.configGUI[i].SetLocation(actualModConfig.configGUI[i - 1].GetNextBoxLocation()); } else { actualModConfig.configGUI[i].SetLocation(new Point(23, 33)); } } Size = new Size(Size.Width, actualModConfig.configGUI.Last().GetNextBoxLocation().Y + 25 + 23); }
private void metroButton2_Click(object sender, EventArgs e) { if (metroTextBox2.Text == "") { MsgBox("Mod Configurator Path cannot be empty!", "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (NameTextBox.Text == "") { MsgBox("Mod Name cannot be empty!", "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } try { Assembly configurator = Assembly.LoadFile(metroTextBox2.Text); foreach (Type type in configurator.GetTypes()) { if (type.GetInterface("ConfiguratorBasic") != null) { ConfiguratorBasic configuratorIns = (ConfiguratorBasic)Activator.CreateInstance(type); MainForm.modName = NameTextBox.Text; MainForm.actualModPath = Path.Combine(MainForm.modPath, NameTextBox.Text); Hide(); new ModConfigForm(configuratorIns).ShowDialog(); Show(); } } } catch (Exception ex) { MsgBox(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public static void OpenMod(string modName, ConfiguratorBasic configurator) { int modConfigIndex = modsConfigs.FindIndex((p) => { return(p.Key == modName); }); if (modConfigIndex == -1) { actualModConfig = new ModConfigData(); modsConfigs.Add(new KeyValuePair <string, ModConfigData>(modName, actualModConfig)); configurator.Initialize(); MakeDefaultFiles(modName); } else { actualModConfig = modsConfigs[modConfigIndex].Value; actualModConfig.configGUI.Clear(); for (int i = 0; i < actualModConfig.configFiles.Count; i++) { actualModConfig.configFiles[i].Value.Reload(); } configurator.Initialize(); MakeDefaultFiles(modName); } }