From 623fde709ffe289f79d9794a025a61785910cb99 Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Sun, 25 Sep 2011 14:49:29 +1300 Subject: [PATCH] DirectConnectLogic in its own file --- OpenRA.Mods.RA/OpenRA.Mods.RA.csproj | 1 + .../Widgets/Logic/DirectConnectLogic.cs | 51 +++++++++++++++++++ .../Widgets/Logic/ServerBrowserLogic.cs | 37 -------------- 3 files changed, 52 insertions(+), 37 deletions(-) create mode 100644 OpenRA.Mods.RA/Widgets/Logic/DirectConnectLogic.cs diff --git a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj index 240d62f4f4..6178e15039 100644 --- a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj +++ b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj @@ -344,6 +344,7 @@ + diff --git a/OpenRA.Mods.RA/Widgets/Logic/DirectConnectLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/DirectConnectLogic.cs new file mode 100644 index 0000000000..5ed6729f94 --- /dev/null +++ b/OpenRA.Mods.RA/Widgets/Logic/DirectConnectLogic.cs @@ -0,0 +1,51 @@ +#region Copyright & License Information +/* + * Copyright 2007-2011 The OpenRA Developers (see AUTHORS) + * This file is part of OpenRA, which is free software. It is made + * available to you under the terms of the GNU General Public License + * as published by the Free Software Foundation. For more information, + * see COPYING. + */ +#endregion + +using System.Linq; +using OpenRA.Widgets; + +namespace OpenRA.Mods.RA.Widgets.Logic +{ + public class DirectConnectLogic + { + [ObjectCreator.UseCtor] + public DirectConnectLogic( [ObjectCreator.Param] Widget widget ) + { + var dc = widget.GetWidget("DIRECTCONNECT_BG"); + + dc.GetWidget("SERVER_ADDRESS").Text = Game.Settings.Player.LastServer; + + dc.GetWidget("JOIN_BUTTON").OnClick = () => + { + var address = dc.GetWidget("SERVER_ADDRESS").Text; + var cpts = address.Split(':').ToArray(); + if (cpts.Length < 1 || cpts.Length > 2) + return; + + int port; + if (cpts.Length != 2 || !int.TryParse(cpts[1], out port)) + port = 1234; + + Game.Settings.Player.LastServer = address; + Game.Settings.Save(); + + Widget.CloseWindow(); + Game.JoinServer(cpts[0], port); + }; + + dc.GetWidget("CANCEL_BUTTON").OnClick = () => + { + Widget.CloseWindow(); + Widget.OpenWindow("MAINMENU_BG"); + }; + } + } +} + diff --git a/OpenRA.Mods.RA/Widgets/Logic/ServerBrowserLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/ServerBrowserLogic.cs index abbf845a5b..a27c55bd7c 100644 --- a/OpenRA.Mods.RA/Widgets/Logic/ServerBrowserLogic.cs +++ b/OpenRA.Mods.RA/Widgets/Logic/ServerBrowserLogic.cs @@ -49,7 +49,6 @@ namespace OpenRA.Mods.RA.Widgets.Logic return ret; }; - var sl = bg.GetWidget("SERVER_LIST"); ServerTemplate = sl.GetWidget("SERVER_TEMPLATE"); @@ -160,41 +159,5 @@ namespace OpenRA.Mods.RA.Widgets.Logic return game.Mods.All( m => m.Contains('@')) && game.Mods.Select( m => Pair.New(m.Split('@')[0], m.Split('@')[1])) .All(kv => Game.CurrentMods.ContainsKey(kv.First) && AreVersionsCompatible(kv.Second, Game.CurrentMods[kv.First].Version)); } - - } - - public class DirectConnectLogic - { - [ObjectCreator.UseCtor] - public DirectConnectLogic( [ObjectCreator.Param] Widget widget ) - { - var dc = widget.GetWidget("DIRECTCONNECT_BG"); - - dc.GetWidget("SERVER_ADDRESS").Text = Game.Settings.Player.LastServer; - - dc.GetWidget("JOIN_BUTTON").OnClick = () => - { - var address = dc.GetWidget("SERVER_ADDRESS").Text; - var cpts = address.Split(':').ToArray(); - if (cpts.Length < 1 || cpts.Length > 2) - return; - - int port; - if (cpts.Length != 2 || !int.TryParse(cpts[1], out port)) - port = 1234; - - Game.Settings.Player.LastServer = address; - Game.Settings.Save(); - - Widget.CloseWindow(); - Game.JoinServer(cpts[0], port); - }; - - dc.GetWidget("CANCEL_BUTTON").OnClick = () => - { - Widget.CloseWindow(); - Widget.OpenWindow("MAINMENU_BG"); - }; - } } }