Class that provides a GUI (UserControl) for adjusting map parameters.
It would make sense for this class to be abstract, but VisualStudio's Designer does not support controls derived from abstract classes. See http://stackoverflow.com/questions/2764757/
Inheritance: System.Windows.Forms.UserControl
Ejemplo n.º 1
0
        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 ) );
            }
        }
Ejemplo n.º 2
0
        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));
            }
        }