private void Import_Click(object sender, EventArgs e) { using (OpenFileDialog fileDialog = new OpenFileDialog { Filter = "Nuclear craft config|nuclearcraft.cfg|Any config file|*.cfg|All Files|*.*" }) { if (fileDialog.ShowDialog() == DialogResult.OK) { var config = NuclearcraftConfigImport.ImportConfig(new FileInfo(fileDialog.FileName)); if (config == null || !config.HasBlock("fission")) { MessageBox.Show("Configuration could not be imported, check the file can be loaded by minecraft, or has come from the modpack you want to load"); return; } if (!string.IsNullOrWhiteSpace(config.LastError)) { MessageBox.Show("We had the following errors while parsing the config file, please check that it's correct (not all values may import)"); } Configuration.Fission.Power = config.Get <double>("fission", "fission_power"); Configuration.Fission.HeatGeneration = config.Get <double>("fission", "fission_heat_generation"); Configuration.Fission.FuelUse = config.Get <double>("fission", "fission_fuel_use"); Configuration.Fission.MinSize = config.Get <int>("fission", "fission_min_size"); Configuration.Fission.MaxSize = config.Get <int>("fission", "fission_max_size"); Configuration.Fission.NeutronReach = config.Get <int>("fission", "fission_neutron_reach"); Configuration.Fission.ActiveCoolerMaxRate = config.Get <int>("fission", "fission_active_cooler_max_rate"); SetFuelValues(config, new[] { "TBU", "TBU Oxide" }, "thorium"); SetFuelValues(config, new[] { "LEU-233", "LEU-233 Oxide", "HEU-233", "HEU-233 Oxide", "LEU-235", "LEU-235 Oxide", "HEU-235", "HEU-235 Oxide" }, "uranium"); SetFuelValues(config, new[] { "LEN-236", "LEN-236 Oxide", "HEN-236", "HEN-236 Oxide" }, "neptunium"); SetFuelValues(config, new[] { "LEP-239", "LEP-239 Oxide", "HEP-239", "HEP-239 Oxide", "LEP-241", "LEP-241 Oxide", "HEP-241", "HEP-241 Oxide" }, "plutonium"); SetFuelValues(config, new[] { "MOX-239", "MOX-241" }, "mox"); SetFuelValues(config, new[] { "LEA-242", "LEA-242 Oxide", "HEA-242", "HEA-242 Oxide" }, "americium"); SetFuelValues(config, new[] { "LECm-243", "LECm-243 Oxide", "HECm-243", "HECm-243 Oxide", "LECm-245", "LECm-245 Oxide", "HECm-245", "HECm-245 Oxide", "LECm-247", "LECm-247 Oxide", "HECm-247", "HECm-247 Oxide" }, "curium"); SetFuelValues(config, new[] { "LEB-248", "LEB-248 Oxide", "HEB-248", "HEB-248 Oxide" }, "berkelium"); SetFuelValues(config, new[] { "LECf-249", "LECf-249 Oxide", "HECf-249", "HECf-249 Oxide", "LECf-251", "LECf-251 Oxide", "HECf-251", "HECf-251 Oxide" }, "californium"); SetCoolingRates(config); ReloadTabs(); Reactor.ReloadValuesFromConfig(); //Reactor.Update(); MessageBox.Show("Loaded and applied, please save as a json file"); } else { return; } } }
public static bool Load(FileInfo file) { configFileInfo = file; ConfigFile cf; using (StreamReader sr = File.OpenText(file.FullName)) { JsonSerializer jss = new JsonSerializer(); try { cf = (ConfigFile)jss.Deserialize(sr, typeof(ConfigFile)); } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message + "\r\nConfig file was corrupt!"); return(false); } } if ((cf.Fuels == null) | (cf.Coolers == null)) { System.Windows.Forms.MessageBox.Show("Invalid config file contents!"); return(false); } if (cf.saveVersion <= new Version(1, 2, 3)) { var fuelvalue = cf.Fuels["HELP-239 Oxide"]; cf.Fuels.Remove("HELP-239 Oxide"); cf.Fuels.Add("HEP-239 Oxide", fuelvalue); } if (cf.saveVersion < new Version(1, 2, 22)) { System.Windows.Forms.MessageBox.Show("There have been changes to cooler descriptions, that required a config reset.\r" + "Re-import nuclearcraft.cfg and overwrite your DefaultConfig.json if necessary!"); return(false); } Fission = cf.Fission; if (cf.saveVersion < new Version(1, 2, 14)) { Fission.ActiveCoolerMaxRate = 5; } //ResourceCosts = cf.ResourceCosts; //if (ResourceCosts.CasingCosts == null) // SetDefaultResourceCosts(); Fuels = cf.Fuels; Coolers = cf.Coolers; Reactor.ReloadValuesFromConfig(); return(true); }
private bool ApplyAndReload() { try { ApplyConfiguration(); ReloadTabs(); Reactor.ReloadValuesFromConfig(); Reactor.UI.fuelSelector_SelectedIndexChanged(null, null); Reactor.UpdateStats(); return(true); } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\nCould not apply configuration, resetting to defaults!"); Configuration.ResetToDefaults(); ReloadTabs(); Reactor.ReloadValuesFromConfig(); Reactor.UI.fuelSelector_SelectedIndexChanged(null, null); Reactor.UpdateStats(); return(false); } }
//private void ReloadResourceCostTab() //{ // blockSelector.Items.Add(new ResourceCostComboboxItem("Fuel cell", Configuration.ResourceCosts.FuelCellCosts)); // blockSelector.Items.Add(new ResourceCostComboboxItem("Casing", Configuration.ResourceCosts.CasingCosts)); // foreach (KeyValuePair<string, Dictionary<string, int>> kvp in Configuration.ResourceCosts.HeatSinkCosts) // { // blockSelector.Items.Add(new ResourceCostComboboxItem(kvp.Key + " HeatSink", kvp.Value)); // } // foreach (KeyValuePair<string, Dictionary<string, int>> kvp in Configuration.ResourceCosts.ModeratorCosts) // { // blockSelector.Items.Add(new ResourceCostComboboxItem(kvp.Key + " Moderator", kvp.Value)); // } //} //private void SelectedBlockChanged(object sender, EventArgs e) //{ // if (rDC != null) // { // foreach (KeyValuePair<string, List<Control>> kvp in rDC) // foreach (Control c in kvp.Value) // { // c.Dispose(); // resourceCostsPage.Controls.Remove(c); // } // } // rDC = new Dictionary<string, List<Control>>(); // int row = 1; // foreach(KeyValuePair<string, int> resource in ((ResourceCostComboboxItem)blockSelector.SelectedItem).Resources) // { // rDC[resource.Key] = new List<Control>(); // rDC[resource.Key].Add(new TextBox { Text = resource.Key, Location = new Point(10, row * 30) }); // rDC[resource.Key].Add(new NumericUpDown { Value = resource.Value, Location = new Point(130, row * 30) }); // row++; // //rDC.Add(new Button { Text = resource.Key, Location = new Point(10, row++ * 20) }); // resourceCostsPage.Controls.AddRange(rDC[resource.Key].ToArray()); // } //} private void Load_Click(object sender, EventArgs e) { using (OpenFileDialog fileDialog = new OpenFileDialog { Filter = "JSON config files(*.json)|*.json" }) { if (fileDialog.ShowDialog() == DialogResult.OK) { if (Configuration.Load(new FileInfo(fileDialog.FileName))) { ReloadTabs(); Reactor.ReloadValuesFromConfig(); Reactor.UpdateStats(); Reactor.UI.fuelSelector_SelectedIndexChanged(null, null); MessageBox.Show("Loaded and applied!"); Close(); } } else { return; } } }