public void Initialize() { widgets.Clear(); worldbuttons.Clear(); menu.AddBackground(widgets); menu.AddCaption(this, "Select world"); string[] w = new List <string>(game.GetWorlds()).ToArray(); for (int i = 0; i < w.Length; i++) { if (string.IsNullOrEmpty(w[i])) { w[i] = "Empty"; } } for (int i = 0; i < 8; i++) { int ii = i;//closure var widget = new Widget() { BackgroundImage = menu.button4, BackgroundImageSelected = menu.button4sel, Rect = new RectangleF(350 + (i % 2) * 500, 300 + (i / 2) * 150, 400, 128), Text = w[i], Click = delegate { selectedWorld = ii; }, selected = selectedWorld == i, }; worldbuttons.Add(widget); widgets.Add(widget); } widgets.Add(new Widget() { BackgroundImage = menu.button4, BackgroundImageSelected = menu.button4sel, Rect = new RectangleF(650, 900, 300, 90),//500 Text = "Delete", Click = delegate { string name = game.GetWorlds()[selectedWorld.Value]; if (!string.IsNullOrEmpty(name)) { menu.MessageBoxYesNo(string.Format("Are you sure you want to delete world \"{0}\"?", name) , delegate { game.DeleteWorld(selectedWorld.Value); Initialize(); }, delegate { }); } }, FontSize = 20, });/* * widgets.Add(new Widget() * { * BackgroundImage = "button4.png", * BackgroundImageSelected = "button4_sel.png", * Rect = new RectangleF(800, 900, 300, 90), * Text = "Options", * Click = delegate { }, * FontSize = 20, * });*/ menu.AddOkCancel(this, delegate { menu.afterSelectWorld(); }, delegate { menu.FormMainMenu(); }); }
public void Initialize() { widgets.Clear(); menu.AddBackground(this.widgets); menu.AddCaption(this, "New world"); /* * widgets.Add(new Widget() * { * BackgroundImage = null, * BackgroundImageSelected = null, * Rect = new RectangleF(200, 200, 400, 90), * Text = "World: " + (selectedWorld == null ? "none" : game.GetWorlds()[selectedWorld.Value]), * Click = delegate { afterSelectWorld = FormStartMultiplayerServer; FormSelectWorld(); }, * FontSize = 20, * }); * widgets.Add(new Widget() * { * BackgroundImage = "button4.png", * BackgroundImageSelected = "button4_sel.png", * Rect = new RectangleF(500, 200, 300, 90), * Text = "Select", * Click = delegate { afterSelectWorld = FormStartMultiplayerServer; FormSelectWorld(); }, * FontSize = 20, * }); */ widgets.Add(new Widget() { BackgroundImage = null, BackgroundImageSelected = null, Rect = new RectangleF(200, 300, 400, 90), Text = "World name: ", Click = delegate { }, FontSize = 20, }); string name = game.GetWorlds()[worldId]; if (string.IsNullOrEmpty(name)) { name = "World " + (worldId + 1); } var nameTextbox = new Widget() { BackgroundImage = menu.button4, BackgroundImageSelected = menu.button4sel, Rect = new RectangleF(500, 300, 600, 90), Text = name, Click = delegate { }, //todo textbox FontSize = 20, IsTextbox = true, }; widgets.Add(nameTextbox); menu.AddOkCancel(this, delegate { game.SetWorldOptions(worldId, nameTextbox.Text); menu.afterWorldOptions(); }, delegate { menu.currentForm = menu.d_FormSelectWorld; }); }
public void Initialize() { widgets.Clear(); menu.AddBackground(widgets); menu.AddCaption(this, "Start server"); selectedWorldWidget = new Widget() { BackgroundImage = null, BackgroundImageSelected = null, Rect = new RectangleF(200, 200, 400, 90), Text = "",//Render() Click = delegate { menu.FormSelectWorld(menu.FormStartServer); }, FontSize = 20, }; widgets.Add(selectedWorldWidget); widgets.Add(new Widget() { BackgroundImage = menu.button4, BackgroundImageSelected = menu.button4sel, Rect = new RectangleF(500, 200, 300, 90), Text = "Select", Click = delegate { menu.FormSelectWorld(delegate { menu.FormStartServer(); }); }, FontSize = 20, }); //Connection options widgets.Add(new Widget() { BackgroundImage = null, BackgroundImageSelected = null, Rect = new RectangleF(200, 300, 400, 90), Text = "Server name: ", Click = delegate { }, FontSize = 20, }); widgets.Add(new Widget() { BackgroundImage = menu.button4, BackgroundImageSelected = menu.button4sel, Rect = new RectangleF(500, 300, 600, 90), IsTextbox = true, FontSize = 20, Text = "My server", }); widgets.Add(new Widget() { BackgroundImage = null, BackgroundImageSelected = null, Rect = new RectangleF(200, 400, 400, 90), Text = "Max players: ", Click = delegate { }, FontSize = 20, }); widgets.Add(new Widget() { BackgroundImage = menu.button4, BackgroundImageSelected = menu.button4sel, Rect = new RectangleF(500, 400, 600, 90), IsTextbox = true, IsNumeric = true, FontSize = 20, Text = "16", }); widgets.Add(new Widget() { BackgroundImage = null, BackgroundImageSelected = null, Rect = new RectangleF(200, 500, 400, 90), Text = "Password: "******"Public: ", Click = delegate { }, FontSize = 20, }); publicWidget = new Widget() { BackgroundImage = menu.button4, BackgroundImageSelected = menu.button4sel, Rect = new RectangleF(500, 600, 200, 90), Text = "",//Render() Click = delegate { serverpublic = !serverpublic; }, FontSize = 20, }; widgets.Add(publicWidget); widgets.Add(new Widget() { BackgroundImage = menu.button4, BackgroundImageSelected = menu.button4sel, Rect = new RectangleF(1200, 200, 300, 90), Text = "Show my IP", Click = delegate { }, FontSize = 20, }); //Bottom buttons widgets.Add(new Widget() { BackgroundImage = menu.button4, BackgroundImageSelected = menu.button4sel, Rect = new RectangleF(200, 1000, 400, 128), Text = serverstarted ? "Stop" : "Start", //Click = delegate { serverstarted = !serverstarted; FormStartMultiplayerServer(); }, Click = delegate { game.StartAndJoinLocalServer(menu.d_FormSelectWorld.selectedWorld.Value); } }); //widgets.Add(new Button() //{ // BackgroundImage = "button4.png", // BackgroundImageSelected = "button4_sel.png", // Rect = new RectangleF(600, 1000, 400, 128), // Text = "Play", // Click = delegate { FormGame(); }, //}); widgets.Add(new Widget() { BackgroundImage = menu.button4, BackgroundImageSelected = menu.button4sel, Rect = new RectangleF(1000, 1000, 400, 128), Text = "Cancel", Click = delegate { menu.FormMainMenu(); } }); }
public void Initialize() { widgets.Clear(); menu.AddBackground(widgets); menu.AddCaption(this, "Login"); //Captions widgets.Add(new Widget() { BackgroundImage = null, BackgroundImageSelected = null, Rect = new RectangleF(300, 200, 400, 128), Text = "Use account", }); widgets.Add(new Widget() { BackgroundImage = null, BackgroundImageSelected = null, Rect = new RectangleF(1100, 200, 400, 128), Text = "Create account", }); //TextBox Login widgets.Add(new Widget() { BackgroundImage = null, BackgroundImageSelected = null, Rect = new RectangleF(300 - 50, 400, 400, 90), Text = "Name: ", //Click = FormJoinMultiplayer, FontSize = 20, }); userTextbox = new Widget() { BackgroundImage = menu.button4, BackgroundImageSelected = menu.button4sel, Rect = new RectangleF(300 + 100, 400, 350, 90), Text = game.LoginName, FontSize = 20, IsTextbox = true, }; widgets.Add(userTextbox); widgets.Add(new Widget() { BackgroundImage = null, BackgroundImageSelected = null, Rect = new RectangleF(300 - 50, 400 + 100, 400, 90), Text = "Pass: "******"(leave empty to\n play as a guest)", FontSize = 20, Visible = true, TextColor = Color.Gray, }); widgets.Add(new Widget() { BackgroundImage = null, BackgroundImageSelected = null, Rect = new RectangleF(1050, 450, 400, 128), Text = "(click link to open website)", FontSize = 20, TextColor = Color.Gray, }); //Link Create Account string url = "http://fragmer.net/md/"; widgets.Add(new Widget() { BackgroundImage = null, BackgroundImageSelected = null, Rect = new RectangleF(1050, 350, 400, 128), Text = "&1" + url, Click = delegate { System.Diagnostics.Process.Start(url); }, }); invalidLoginWidget = new Widget() { BackgroundImage = null, BackgroundImageSelected = null, Rect = new RectangleF(300, 400 + 300, 350, 90), Text = "Invalid username or password.", FontSize = 20, Visible = false, TextColor = Color.Red, }; widgets.Add(invalidLoginWidget); //Buttons widgets.Add(new Widget() { BackgroundImage = menu.button4, BackgroundImageSelected = menu.button4sel, Rect = new RectangleF(300, 900, 400, 128), Text = "Login", Click = delegate { if (passwordTextbox.Text == "") { game.LoginGuest(userTextbox.Text); RememberPassword(); menu.FormJoinMultiplayer(); } bool success = game.LoginAccount(userTextbox.Text, passwordTextbox.Text); if (!success) { invalidLoginWidget.Visible = true; start = DateTime.UtcNow; } else { RememberPassword(); menu.FormJoinMultiplayer(); } }, }); widgets.Add(new Widget() { BackgroundImage = null, BackgroundImageSelected = null, Rect = new RectangleF(300 - 50, 600, 400, 90), Text = "Remember password: "******"",//Render() Click = delegate { rememberpassword = !rememberpassword; rememberPassword_CheckedChanged(); }, FontSize = 20, }; widgets.Add(rememberPasswordWidget); widgets.Add(new Widget() { BackgroundImage = menu.button4, BackgroundImageSelected = menu.button4sel, Rect = new RectangleF(800, 900, 400, 128), Text = "Cancel", Click = delegate { menu.typingfield = -1; menu.FormJoinMultiplayer(); }, }); LoadPassword(); }
private void InitializeWidgets() { widgets.Clear(); menu.AddBackground(widgets); int[] columnWidths = new int[] { 600, 130, 100, 250, 200 }; AddListboxRow(new[] { "Name", "Players", "Max", "Ip", "Version" }, 50, 290, columnWidths, -1, Color.White); if (servers != null && scrollbar != null) { for (int i = 0; i < serversPerScreen; i++) { int serverid = scrollbar.ScrollbarValue * serversPerScreen + i; if (serverid >= servers.Length) { break; } var s = servers[serverid]; AddListboxRow(new string[] { Trim(s.Name, 36), s.Users.ToString(), s.Max.ToString(), s.Ip, Trim(s.Version, 18) }, 50, 350 + i * 100, columnWidths, serverid, Color.White); AddListboxRow(new string[] { Trim(s.Players, 70) }, 50, 350 + i * 100 + 50, columnWidths, serverid, Color.Gray); } } menu.AddCaption(this, "Multiplayer"); widgets.Add(new Widget() { BackgroundImage = null, BackgroundImageSelected = null, Rect = new RectangleF(1050, 50, 400, 128), Text = "Playing as: " + (game.IsLoggedIn ? game.LoginName : "~" + game.LoginName), Click = delegate { }, selected = false, FontSize = 24, }); widgets.Add(new Widget() { BackgroundImage = menu.button4, BackgroundImageSelected = menu.button4sel, Rect = new RectangleF(100, 150, 300, 128), Text = "Refresh", Click = delegate { serverlisterror = false; StartRefreshing(); }, selected = false, FontSize = 24, }); refreshingLabel = new Widget() { BackgroundImage = null, BackgroundImageSelected = null, Rect = new RectangleF(400, 150, 300, 128), Text = "Refreshing...", Click = delegate { StartRefreshing(); }, selected = false, FontSize = 24, }; widgets.Add(refreshingLabel); serverListErrorWidget = new Widget() { BackgroundImage = null, BackgroundImageSelected = null, Rect = new RectangleF(400, 150, 300, 128), Text = "Can't connect to server list.", Click = delegate { StartRefreshing(); }, selected = false, FontSize = 24, Visible = serverlisterror, TextColor = Color.Red, }; widgets.Add(serverListErrorWidget); widgets.Add(new Widget() { BackgroundImage = menu.button4, BackgroundImageSelected = menu.button4sel, Rect = new RectangleF(1100, 150, 300, 128), Text = "Login", Click = delegate { menu.FormLogin(); }, selected = false, FontSize = 24, }); if (servers != null) { int screensCount = (int)Math.Ceiling((float)servers.Length / serversPerScreen); //scrollbar if (scrollbar == null) { scrollbar = new Widget() { //BackgroundImage = menu.button4, //BackgroundImageSelected = menu.button4sel, Rect = new RectangleF(1400, 350, 40, 600), Click = delegate { }, selected = false, IsScrollbar = true, }; } scrollbar.ScrollbarMax = screensCount - 1; } if (scrollbar != null) { widgets.Add(scrollbar); } widgets.Add(new Widget() { BackgroundImage = menu.button4, BackgroundImageSelected = menu.button4sel, Rect = new RectangleF(200, 1000, 400, 128), Text = "Connect", //todo: hash should be enough Click = delegate { game.JoinMultiplayer(servers[selectedServer].Hash); }, }); widgets.Add(new Widget() { BackgroundImage = menu.button4, BackgroundImageSelected = menu.button4sel, Rect = new RectangleF(600, 1000, 400, 128), Text = "Connect to IP", Click = menu.FormConnectToIp, }); widgets.Add(new Widget() { BackgroundImage = menu.button4, BackgroundImageSelected = menu.button4sel, Rect = new RectangleF(1000, 1000, 400, 128), Text = "Cancel", Click = menu.FormMainMenu, }); }
//public Options options; public void Initialize() { widgets.Clear(); menu.AddBackground(widgets); menu.AddCaption(this, "Game options"); string[] text = new string[] { "Graphics", "Keys", "Other" }; ThreadStart[] actions = new ThreadStart[] { FormGameOptionsGraphics, FormGameOptionsKeys, FormGameOptionsOther, }; for (int i = 0; i < 3; i++) { widgets.Add(new Widget() { BackgroundImage = menu.button4, BackgroundImageSelected = menu.button4sel, Rect = new RectangleF(100 + 500 * i, 200, 400, 128), Text = text[i], Click = actions[i], selected = gameoptionstype == i, }); } if (gameoptionstype == 0)// || gameoptionstype == 2) { string[] text1 = new string[] { "Shadows: " + (options.Shadows ? "ON" : "OFF"), "View distance: " + (options.DrawDistance), "Use server textures (restart): " + (options.UseServerTextures ? "ON" : "OFF"), "Font: " + options.Font, }; ThreadStart[] actions1 = new ThreadStart[] { delegate { options.Shadows = !options.Shadows; Initialize(); }, delegate { ToggleFog(); Initialize(); }, delegate { options.UseServerTextures = !options.UseServerTextures; Initialize(); }, delegate { if (options.Font == 0) { options.Font = 1; } else { options.Font = 0; Initialize(); } }, }; for (int i = 0; i < 3; i++) { widgets.Add(new Widget() { BackgroundImage = menu.button4, BackgroundImageSelected = menu.button4sel, Rect = new RectangleF(menu.ConstWidth / 2 - 800 / 2, 460 + i * 140, 800, 128), Text = text1[i], Click = actions1[i], }); } } if (gameoptionstype == 1) { int column = 0; int minus = 0; for (int i = 0; i < keyhelps.Length; i++) { int ii = i; //a copy for closure int defaultkey = keyhelps[i].DefaultKey; int key = defaultkey; if (options.Keys.ContainsKey(defaultkey)) { key = options.Keys[defaultkey]; } widgets.Add(new Widget() { BackgroundImage = menu.button4, BackgroundImageSelected = menu.button4sel, Rect = new RectangleF(80 + column * 360, 350 + i * 100 - minus, 340, 90), Text = keyhelps[i].Text + ": " + KeyName(key), FontSize = 15, Click = delegate { keyselectid = ii; }, }); if ((i + 1) % 6 == 0) { column++; minus += 100 * 6; } } } menu.AddOkCancel(this, menu.FormMainMenu, menu.FormMainMenu); }