void SelectGenerator(MapGenerator newGen) { int genIndex = cGenerator.Items.IndexOf(newGen.Name); if (cGenerator.SelectedIndex != genIndex) { cGenerator.SelectedIndex = genIndex; return; } generatorParamsPanel.SuspendLayout(); if (genGui != null) { generatorParamsPanel.Controls.Clear(); genGui.Dispose(); genGui = null; } generator = newGen; // make sure the map dimensions do not conflict with generator's settings if (nMapWidth.Value < generator.MinSupportedMapDimension) { nMapWidth.Value = generator.MinSupportedMapDimension; } if (nMapLength.Value < generator.MinSupportedMapDimension) { nMapLength.Value = generator.MinSupportedMapDimension; } if (nMapHeight.Value < generator.MinSupportedMapDimension) { nMapHeight.Value = generator.MinSupportedMapDimension; } // create GUI genGui = MapGenGuiUtil.GetGuiForGenerator(newGen).CreateGui(); genGui.Width = generatorParamsPanel.Width; generatorParamsPanel.Controls.Add(genGui); SetGenParams(generator.CreateDefaultParameters()); generatorParamsPanel.ResumeLayout(); generatorParamsPanel.PerformLayout(); // clear existing presets for (int i = tsbLoadPreset.DropDownItems.Count; i > 4; i--) { var item = tsbLoadPreset.DropDownItems[0]; tsbLoadPreset.DropDownItems.RemoveAt(0); item.Dispose(); } // add new presets tsbDefaultPreset.Text = generator.Presets[0]; foreach (string presetName in generator.Presets.Skip(1)) { tsbLoadPreset.DropDownItems.Insert(0, new ToolStripMenuItem(presetName)); } }
void SelectGenerator(MapGenerator newGen) { int genIndex = cGenerator.Items.IndexOf(newGen.Name); if (cGenerator.SelectedIndex != genIndex) { cGenerator.SelectedIndex = genIndex; return; } generatorParamsPanel.SuspendLayout(); if (genGui != null) { generatorParamsPanel.Controls.Clear(); genGui.Dispose(); genGui = null; } generator = newGen; genGui = MapGenGuiUtil.GetGuiForGenerator(newGen).CreateGui(); genGui.Width = generatorParamsPanel.Width; generatorParamsPanel.Controls.Add(genGui); SetGenParams(generator.CreateDefaultParameters()); generatorParamsPanel.ResumeLayout(); generatorParamsPanel.PerformLayout(); // clear existing presets for (int i = tsbLoadPreset.DropDownItems.Count; i > 4; i--) { var item = tsbLoadPreset.DropDownItems[0]; tsbLoadPreset.DropDownItems.RemoveAt(0); item.Dispose(); } // add new presets tsbDefaultPreset.Text = generator.Presets[0]; foreach (string presetName in generator.Presets.Skip(1)) { tsbLoadPreset.DropDownItems.Insert(0, new ToolStripMenuItem(presetName)); } }