private object Preview_CMD(User caller, params string[] args) { int seed = 0; if (args.Length == 1) { seed = AppSettings.TerrainSeed; } else if (args.Length == 2 && args [1].Equals("-r")) { seed = new Random(GameTimer.GetEpoch()).Next(int.MinValue, int.MaxValue); } else if (args.Length == 2) { if (int.TryParse(args[1], out seed)) { ; } } TaskQueue.QeueAsync("terrain preview", () => { try { List <GradientPresets.GradientKeyData> keys = new List <GradientPresets.GradientKeyData>(); keys.Add(new GradientPresets.GradientKeyData(new Color(255, 0, 0, 128), 0)); keys.Add(new GradientPresets.GradientKeyData(new Color(255, 32, 64, 128), 0.4f)); keys.Add(new GradientPresets.GradientKeyData(new Color(255, 64, 96, 191), 0.48f)); keys.Add(new GradientPresets.GradientKeyData(new List <string> { "sand.png" }, 0.5f)); keys.Add(new GradientPresets.GradientKeyData(new List <string> { "trees1.png", "trees2.png" }, 0.52f)); keys.Add(new GradientPresets.GradientKeyData(new List <string> { "grass1.png", "trees2.png" }, 0.55f)); keys.Add(new GradientPresets.GradientKeyData(new List <string> { "grass1.png", "grass2.png", "trees2.png" }, 0.60f)); keys.Add(new GradientPresets.GradientKeyData(new List <string> { "grass1.png", "grass2.png" }, 0.90f)); keys.Add(new GradientPresets.GradientKeyData(new List <string> { "grass1.png", "grass2.png" }, 1f)); //GradientPresets.CreateGradient(keys); GradiantPresetLoader.PresetSerializer saveObj = new GradiantPresetLoader.PresetSerializer(AppSettings.TerrainPreset, keys); FileManager.SaveConfigFile(GameServer.Instance.AppDirectory + "GradientPresets" + GameServer.sepChar + AppSettings.TerrainPreset + ".json", saveObj, false); //return; IModule module = new Perlin(); ((Perlin)module).OctaveCount = 16; ((Perlin)module).Seed = AppSettings.TerrainSeed; TerrainBuilder builder = new TerrainBuilder(AppSettings.TerrainWidth, AppSettings.TerrainHeight, seed); builder.Generate(module, AppSettings.TerrainPreset); System.Drawing.Bitmap map = builder.GetBitmap(); /*System.Windows.Forms.Form imageForm = new System.Windows.Forms.Form(); * imageForm.Text = "Seed preview: " + seed; * imageForm.Width = settings.TerrainWidth; * imageForm.Height = settings.TerrainHeight; * imageForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable; * imageForm.Controls.Add (new System.Windows.Forms.PictureBox () {Image = map, Dock = System.Windows.Forms.DockStyle.Fill}); * imageForm.ShowDialog(); * Logger.Log("Preview closed."); * imageForm.Close(); * imageForm.Dispose();*/ } catch (Exception e) { Logger.LogError("{0}\n{1}", e.Message, e.StackTrace); } }); return("Seed: " + seed); }
private object Preview_CMD(User caller, params string[] args) { int seed = 0; if (args.Length == 1) seed = AppSettings.TerrainSeed; else if (args.Length == 2 && args [1].Equals ("-r")) { seed = new Random (GameTimer.GetEpoch ()).Next (int.MinValue, int.MaxValue); } else if (args.Length == 2) { if (int.TryParse(args[1], out seed)); } TaskQueue.QeueAsync("terrain preview", ()=>{ try { List<GradientPresets.GradientKeyData> keys = new List<GradientPresets.GradientKeyData>(); keys.Add(new GradientPresets.GradientKeyData(new Color(255, 0, 0, 128), 0)); keys.Add(new GradientPresets.GradientKeyData(new Color(255, 32, 64, 128), 0.4f)); keys.Add(new GradientPresets.GradientKeyData(new Color(255, 64, 96, 191), 0.48f)); keys.Add(new GradientPresets.GradientKeyData(new List<string> {"sand.png"}, 0.5f)); keys.Add(new GradientPresets.GradientKeyData(new List<string> {"trees1.png", "trees2.png" }, 0.52f)); keys.Add(new GradientPresets.GradientKeyData(new List<string> {"grass1.png", "trees2.png"}, 0.55f)); keys.Add(new GradientPresets.GradientKeyData(new List<string> {"grass1.png", "grass2.png", "trees2.png"}, 0.60f)); keys.Add(new GradientPresets.GradientKeyData(new List<string> {"grass1.png", "grass2.png"}, 0.90f)); keys.Add(new GradientPresets.GradientKeyData(new List<string> {"grass1.png", "grass2.png"}, 1f)); //GradientPresets.CreateGradient(keys); GradiantPresetLoader.PresetSerializer saveObj = new GradiantPresetLoader.PresetSerializer(AppSettings.TerrainPreset, keys); FileManager.SaveConfigFile(GameServer.Instance.AppDirectory + "GradientPresets" + GameServer.sepChar + AppSettings.TerrainPreset+".json", saveObj, false); //return; IModule module = new Perlin (); ((Perlin)module).OctaveCount = 16; ((Perlin)module).Seed = AppSettings.TerrainSeed; TerrainBuilder builder = new TerrainBuilder(AppSettings.TerrainWidth, AppSettings.TerrainHeight, seed); builder.Generate (module, AppSettings.TerrainPreset); System.Drawing.Bitmap map = builder.GetBitmap(); /*System.Windows.Forms.Form imageForm = new System.Windows.Forms.Form(); imageForm.Text = "Seed preview: " + seed; imageForm.Width = settings.TerrainWidth; imageForm.Height = settings.TerrainHeight; imageForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable; imageForm.Controls.Add (new System.Windows.Forms.PictureBox () {Image = map, Dock = System.Windows.Forms.DockStyle.Fill}); imageForm.ShowDialog(); Logger.Log("Preview closed."); imageForm.Close(); imageForm.Dispose();*/ } catch(Exception e){ Logger.LogError("{0}\n{1}", e.Message, e.StackTrace); } }); return "Seed: " + seed; }