void SetGenParams([NotNull] MapGeneratorParameters genParams) { if (genParams == null) { throw new ArgumentNullException("genParams"); } genGui.SetParameters(genParams); genGui.OnMapDimensionChange((int)nMapWidth.Value, (int)nMapLength.Value, (int)nMapHeight.Value); }
void MapGenParamsFromMap(string fileName, Map ourMap) { tStatus2.Text = ""; string oldData; if (ourMap.Metadata.TryGetValue("_Origin", "GeneratorParams", out oldData)) { // load legacy (pre-0.640) embedded generation parameters // TODO: legacy templates MessageBox.Show(LegacyTemplateMessage); } else { // load modern (0.640+) embedded generation parameters try { MapGeneratorParameters genParams = MapGenUtil.LoadParamsFromMap(ourMap); if (genParams == null) { tStatus1.Text = "No generation parameters found in " + fileName; MessageBox.Show( "No embedded map generation parameters found in " + fileName, "No generation parameters found", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } SelectGenerator(genParams.Generator); SetGenParams(genParams); tStatus1.Text = "Imported map generation from " + fileName; } catch (MapGenUtil.UnknownMapGeneratorException ex) { tStatus1.Text = "No matching generator found for " + fileName; MessageBox.Show("Could not find a matching map generator for \"" + ex.GeneratorName + "\"", "Missing map generator", MessageBoxButtons.OK, MessageBoxIcon.Warning); } catch (Exception ex) { tStatus1.Text = "Error loading parameters from " + fileName; MessageBox.Show(ex.GetType().Name + Environment.NewLine + ex.Message, "Error loading parameters from " + fileName, MessageBoxButtons.OK, MessageBoxIcon.Warning); } } }
void bGenerate_Click(object sender, EventArgs e) { if (genState != null) { genState.CancelAsync(); tStatus1.Text = "Canceling..."; bGenerate.Enabled = false; return; } Map = null; MapGeneratorParameters genParams = genGui.GetParameters(); genState = genParams.CreateGenerator(); tStatus1.Text = "Generating..."; tStatus2.Text = ""; if (genState.ReportsProgress) { progressBar.Style = ProgressBarStyle.Continuous; genState.ProgressChanged += (progressSender, progressArgs) => bwGenerator.ReportProgress(progressArgs.ProgressPercentage, progressArgs.UserState); } else { progressBar.Style = ProgressBarStyle.Marquee; } if (genState.SupportsCancellation) { bGenerate.Text = "Cancel"; } else { bGenerate.Enabled = false; } progressBar.Value = 0; progressBar.Visible = true; Refresh(); bwGenerator.RunWorkerAsync(); World.MapChangedBy = WorldListEntry.WorldInfoSignature; World.MapChangedOn = DateTime.UtcNow; }
void tsbLoadPreset_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e) { if (e.ClickedItem == tsbLoadPresetFromFile) { BeginInvoke((Action)LoadPresetFromFile); // allow menu to close } else if (e.ClickedItem == tsbDefaultPreset) { SetGenParams(generator.CreateDefaultParameters()); SetStatus("Default preset applied."); bGenerate.PerformClick(); } else if (e.ClickedItem is ToolStripSeparator) { BeginInvoke((Action) delegate { tsbLoadPreset.DropDown.AutoClose = true; }); tsbLoadPreset.DropDown.AutoClose = false; } else { try { string presetName = e.ClickedItem.Text; MapGeneratorParameters genParams = generator.CreateParameters(presetName); if (genParams == null) { ShowPresetLoadError("Preset \"{0}\" was not recognized by {1} map generator.", presetName, generator.Name); } else { SetGenParams(genParams); SetStatus("Preset \"{0}\" applied.", presetName); bGenerate.PerformClick(); } } catch (Exception ex) { ShowPresetLoadError(ex.GetType().Name + Environment.NewLine + ex); } } }
void LoadPresetFromFile() { if (loadPresetDialog == null) { loadPresetDialog = new OpenFileDialog { Filter = "fCraft MapGen Preset|*.fmgp|" + "All files|*.*", InitialDirectory = Paths.MapPath }; } if (loadPresetDialog.ShowDialog() != DialogResult.OK) { return; } string fullFileName = loadPresetDialog.FileName; XDocument doc = XDocument.Load(fullFileName); XElement root = doc.Root; string genName = root.Element("Generator").Value; MapGenerator gen = MapGenUtil.GetGeneratorByName(genName); string versionMismatchMsg = String.Format("This preset was made for a different version of {0} map generator. Continue?", gen.Name); if (gen.Version != new Version(root.Element("Version").Value) && MessageBox.Show(versionMismatchMsg, "Version mismatch", MessageBoxButtons.YesNo) != DialogResult.Yes) { return; } SelectGenerator(gen); MapGeneratorParameters genParams = gen.CreateParameters(root.Element("Parameters")); SetGenParams(genParams); SetStatus("Generation parameters loaded."); bGenerate.PerformClick(); }
public override void SetParameters(MapGeneratorParameters generatorParameters) { genParameters = (RealisticMapGenParameters)generatorParameters; LoadGeneratorArgs(); }
public override void SetParameters( MapGeneratorParameters generatorParameters ) { genParams = generatorParameters; pgDetails.SelectedObject = genParams; lPreset.Text = "Preset: " + genParams.ToString().Split( ' ' )[1]; }
public override void SetParameters(MapGeneratorParameters generatorParameters) { genParams = generatorParameters; pgDetails.SelectedObject = genParams; lPreset.Text = "Preset: " + genParams.ToString().Split(' ')[1]; }
/// <summary> Reads given generator params, and adjusts GUI to reflect them. </summary> /// <param name="generatorParameters"> Given generation parameters. </param> public virtual void SetParameters([NotNull] MapGeneratorParameters generatorParameters) { throw new NotImplementedException("SetParameters must be overriden in MapGeneratorGui implementations."); }
public override void SetParameters( MapGeneratorParameters generatorParameters ) { args = generatorParameters; pgGrid.SelectedObject = args; }
public override void SetParameters(MapGeneratorParameters generatorParameters) { args = generatorParameters; pgGrid.SelectedObject = args; }
public void GenerateMap(MapGeneratorParameters parameters) { this.parameters = parameters; double[,] heightmap = GenerateHeightmap(map.MapSizeX, map.MapSizeY); Feedback("Filling..."); map.ClearMap(); double minheight = double.MaxValue; for (int x = 0; x < map.MapSizeX; x++) { for (int y = 0; y < map.MapSizeY; y++) { double level = heightmap[x, y]; int levelQuantized = (int)(level * map.MapSizeZ); int waterQuantized = (int)(parameters.water * map.MapSizeZ); if (levelQuantized < minheight) { minheight = levelQuantized; } if (level > parameters.water) { level = (level - parameters.water) * parameters.smoothingOver + parameters.water; map.SetBlock(x, y, levelQuantized, data.TileIdGrass); if (!parameters.hollow) { for (int i = levelQuantized - 1; i > 0; i--) { if (levelQuantized - i < 5) { map.SetBlock(x, y, i, data.TileIdDirt); } else { map.SetBlock(x, y, i, data.TileIdStone); } } } } else { level = (level - parameters.water) * parameters.smoothingUnder + parameters.water; map.SetBlock(x, y, waterQuantized, data.TileIdWater); if (!parameters.hollow) { for (int i = waterQuantized - 1; i >= levelQuantized; i--) { map.SetBlock(x, y, i, data.TileIdWater); } } map.SetBlock(x, y, levelQuantized, data.TileIdSand); if (!parameters.hollow) { for (int i = levelQuantized - 1; i > 0; i--) { map.SetBlock(x, y, i, data.TileIdStone); } } } } } //map.MakeFloodBarrier(); //map.Save(filename); Feedback("Done."); }
public override void SetParameters( MapGeneratorParameters generatorParameters ) { genParameters = (RealisticMapGenParameters)generatorParameters; LoadGeneratorArgs(); }