Restore separated server creation dialog.
This also adds details about advertising and configuration.
This commit is contained in:
@@ -26,9 +26,6 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
{
|
||||
static readonly Action DoNothing = () => { };
|
||||
|
||||
enum PanelType { Browser, CreateServer }
|
||||
PanelType panel = PanelType.Browser;
|
||||
|
||||
readonly Color incompatibleVersionColor;
|
||||
readonly Color incompatibleProtectedGameColor;
|
||||
readonly Color protectedGameColor;
|
||||
@@ -85,19 +82,14 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
incompatibleGameStartedColor = ChromeMetrics.Get<Color>("IncompatibleGameStartedColor");
|
||||
|
||||
LoadBrowserPanel(widget);
|
||||
LoadCreateServerPanel(widget);
|
||||
|
||||
// Filter and refresh buttons act on the browser panel,
|
||||
// but remain visible (disabled) on the other panels
|
||||
var refreshButton = widget.Get<ButtonWidget>("REFRESH_BUTTON");
|
||||
refreshButton.IsDisabled = () => searchStatus == SearchStatus.Fetching || panel != PanelType.Browser;
|
||||
refreshButton.IsDisabled = () => searchStatus == SearchStatus.Fetching;
|
||||
|
||||
var filtersButton = widget.Get<DropDownButtonWidget>("FILTERS_DROPDOWNBUTTON");
|
||||
filtersButton.IsDisabled = () => searchStatus == SearchStatus.Fetching || panel != PanelType.Browser;
|
||||
|
||||
var browserTab = widget.Get<ButtonWidget>("BROWSER_TAB");
|
||||
browserTab.IsHighlighted = () => panel == PanelType.Browser;
|
||||
browserTab.OnClick = () => panel = PanelType.Browser;
|
||||
filtersButton.IsDisabled = () => searchStatus == SearchStatus.Fetching;
|
||||
|
||||
var directConnectButton = widget.Get<ButtonWidget>("DIRECTCONNECT_BUTTON");
|
||||
directConnectButton.OnClick = () =>
|
||||
@@ -111,9 +103,15 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
});
|
||||
};
|
||||
|
||||
var createServerTab = widget.Get<ButtonWidget>("CREATE_TAB");
|
||||
createServerTab.IsHighlighted = () => panel == PanelType.CreateServer;
|
||||
createServerTab.OnClick = () => panel = PanelType.CreateServer;
|
||||
var createServerButton = widget.Get<ButtonWidget>("CREATE_BUTTON");
|
||||
createServerButton.OnClick = () =>
|
||||
{
|
||||
Ui.OpenWindow("MULTIPLAYER_CREATESERVER_PANEL", new WidgetArgs
|
||||
{
|
||||
{ "openLobby", OpenLobby },
|
||||
{ "onExit", DoNothing }
|
||||
});
|
||||
};
|
||||
|
||||
widget.Get<ButtonWidget>("BACK_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); };
|
||||
|
||||
@@ -154,7 +152,6 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
void LoadBrowserPanel(Widget widget)
|
||||
{
|
||||
var browserPanel = Game.LoadWidget(null, "MULTIPLAYER_BROWSER_PANEL", widget.Get("TOP_PANELS_ROOT"), new WidgetArgs());
|
||||
browserPanel.IsVisible = () => panel == PanelType.Browser;
|
||||
|
||||
serverList = browserPanel.Get<ScrollPanelWidget>("SERVER_LIST");
|
||||
headerTemplate = serverList.Get<ScrollItemWidget>("HEADER_TEMPLATE");
|
||||
@@ -275,18 +272,6 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
}
|
||||
}
|
||||
|
||||
void LoadCreateServerPanel(Widget widget)
|
||||
{
|
||||
var createServerPanel = Game.LoadWidget(null, "MULTIPLAYER_CREATESERVER_PANEL",
|
||||
widget.Get("TOP_PANELS_ROOT"), new WidgetArgs
|
||||
{
|
||||
{ "openLobby", OpenLobby },
|
||||
{ "onExit", DoNothing }
|
||||
});
|
||||
|
||||
createServerPanel.IsVisible = () => panel == PanelType.CreateServer;
|
||||
}
|
||||
|
||||
string PlayersLabel(GameServer game)
|
||||
{
|
||||
return "{0}{1}{2}".F(
|
||||
@@ -553,15 +538,6 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
});
|
||||
}
|
||||
|
||||
void OpenCreateServerPanel()
|
||||
{
|
||||
Ui.OpenWindow("CREATESERVER_PANEL", new WidgetArgs
|
||||
{
|
||||
{ "openLobby", OpenLobby },
|
||||
{ "onExit", DoNothing }
|
||||
});
|
||||
}
|
||||
|
||||
void Join(GameServer server)
|
||||
{
|
||||
if (server == null || !server.IsJoinable)
|
||||
|
||||
@@ -10,16 +10,20 @@
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using OpenRA.Network;
|
||||
using OpenRA.Widgets;
|
||||
|
||||
namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
{
|
||||
public class ServerCreationLogic : ChromeLogic
|
||||
{
|
||||
Widget panel;
|
||||
Action onCreate;
|
||||
Action onExit;
|
||||
readonly Widget panel;
|
||||
readonly LabelWidget noticesLabelA, noticesLabelB, noticesLabelC;
|
||||
readonly Action onCreate;
|
||||
readonly Action onExit;
|
||||
MapPreview preview = MapCache.UnknownMap;
|
||||
bool advertiseOnline;
|
||||
|
||||
@@ -33,6 +37,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
var settings = Game.Settings;
|
||||
preview = modData.MapCache[modData.MapCache.ChooseInitialMap(Game.Settings.Server.Map, Game.CosmeticRandom)];
|
||||
|
||||
panel.Get<ButtonWidget>("BACK_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); };
|
||||
panel.Get<ButtonWidget>("CREATE_BUTTON").OnClick = CreateAndJoin;
|
||||
|
||||
var mapButton = panel.GetOrNull<ButtonWidget>("MAP_BUTTON");
|
||||
@@ -53,12 +58,29 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
|
||||
panel.Get<MapPreviewWidget>("MAP_PREVIEW").Preview = () => preview;
|
||||
|
||||
var mapTitle = panel.Get<LabelWidget>("MAP_NAME");
|
||||
if (mapTitle != null)
|
||||
var titleLabel = panel.GetOrNull<LabelWithTooltipWidget>("MAP_TITLE");
|
||||
if (titleLabel != null)
|
||||
{
|
||||
var font = Game.Renderer.Fonts[mapTitle.Font];
|
||||
var title = new CachedTransform<MapPreview, string>(m => WidgetUtils.TruncateText(m.Title, mapTitle.Bounds.Width, font));
|
||||
mapTitle.GetText = () => title.Update(preview);
|
||||
var font = Game.Renderer.Fonts[titleLabel.Font];
|
||||
var title = new CachedTransform<MapPreview, string>(m => WidgetUtils.TruncateText(m.Title, titleLabel.Bounds.Width, font));
|
||||
titleLabel.GetText = () => title.Update(preview);
|
||||
titleLabel.GetTooltipText = () => preview.Title;
|
||||
}
|
||||
|
||||
var typeLabel = panel.GetOrNull<LabelWidget>("MAP_TYPE");
|
||||
if (typeLabel != null)
|
||||
{
|
||||
var type = new CachedTransform<MapPreview, string>(m => m.Categories.FirstOrDefault() ?? "");
|
||||
typeLabel.GetText = () => type.Update(preview);
|
||||
}
|
||||
|
||||
var authorLabel = panel.GetOrNull<LabelWidget>("MAP_AUTHOR");
|
||||
if (authorLabel != null)
|
||||
{
|
||||
var font = Game.Renderer.Fonts[authorLabel.Font];
|
||||
var author = new CachedTransform<MapPreview, string>(
|
||||
m => WidgetUtils.TruncateText("Created by {0}".F(m.Author), authorLabel.Bounds.Width, font));
|
||||
authorLabel.GetText = () => author.Update(preview);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,11 +103,80 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
|
||||
var advertiseCheckbox = panel.Get<CheckboxWidget>("ADVERTISE_CHECKBOX");
|
||||
advertiseCheckbox.IsChecked = () => advertiseOnline;
|
||||
advertiseCheckbox.OnClick = () => advertiseOnline ^= true;
|
||||
advertiseCheckbox.OnClick = () =>
|
||||
{
|
||||
advertiseOnline ^= true;
|
||||
BuildNotices();
|
||||
};
|
||||
|
||||
var passwordField = panel.GetOrNull<PasswordFieldWidget>("PASSWORD");
|
||||
if (passwordField != null)
|
||||
passwordField.Text = Game.Settings.Server.Password;
|
||||
|
||||
noticesLabelA = panel.GetOrNull<LabelWidget>("NOTICES_HEADER_A");
|
||||
noticesLabelB = panel.GetOrNull<LabelWidget>("NOTICES_HEADER_B");
|
||||
noticesLabelC = panel.GetOrNull<LabelWidget>("NOTICES_HEADER_C");
|
||||
|
||||
var noticesNoUPnP = panel.GetOrNull("NOTICES_NO_UPNP");
|
||||
if (noticesNoUPnP != null)
|
||||
{
|
||||
noticesNoUPnP.IsVisible = () => advertiseOnline &&
|
||||
(UPnP.Status == UPnPStatus.NotSupported || UPnP.Status == UPnPStatus.Disabled);
|
||||
|
||||
var settingsA = noticesNoUPnP.GetOrNull("SETTINGS_A");
|
||||
if (settingsA != null)
|
||||
settingsA.IsVisible = () => UPnP.Status == UPnPStatus.Disabled;
|
||||
|
||||
var settingsB = noticesNoUPnP.GetOrNull("SETTINGS_B");
|
||||
if (settingsB != null)
|
||||
settingsB.IsVisible = () => UPnP.Status == UPnPStatus.Disabled;
|
||||
}
|
||||
|
||||
var noticesUPnP = panel.GetOrNull("NOTICES_UPNP");
|
||||
if (noticesUPnP != null)
|
||||
noticesUPnP.IsVisible = () => advertiseOnline && UPnP.Status == UPnPStatus.Enabled;
|
||||
|
||||
var noticesLAN = panel.GetOrNull("NOTICES_LAN");
|
||||
if (noticesLAN != null)
|
||||
noticesLAN.IsVisible = () => !advertiseOnline;
|
||||
|
||||
BuildNotices();
|
||||
}
|
||||
|
||||
void BuildNotices()
|
||||
{
|
||||
if (noticesLabelA == null || noticesLabelB == null || noticesLabelC == null)
|
||||
return;
|
||||
|
||||
if (advertiseOnline)
|
||||
{
|
||||
noticesLabelA.Text = "Internet Server (UPnP ";
|
||||
var aWidth = Game.Renderer.Fonts[noticesLabelA.Font].Measure(noticesLabelA.Text).X;
|
||||
noticesLabelA.Bounds.Width = aWidth;
|
||||
|
||||
var status = UPnP.Status;
|
||||
noticesLabelB.Text = status == UPnPStatus.Enabled ? "Enabled" :
|
||||
status == UPnPStatus.NotSupported ? "Not Supported" : "Disabled";
|
||||
|
||||
noticesLabelB.TextColor = status == UPnPStatus.Enabled ? ChromeMetrics.Get<Color>("UPnPEnabledColor") :
|
||||
status == UPnPStatus.NotSupported ? ChromeMetrics.Get<Color>("UPnPNotSupportedColor") :
|
||||
ChromeMetrics.Get<Color>("UPnPDisabledColor");
|
||||
|
||||
var bWidth = Game.Renderer.Fonts[noticesLabelB.Font].Measure(noticesLabelB.Text).X;
|
||||
noticesLabelB.Bounds.X = noticesLabelA.Bounds.Right;
|
||||
noticesLabelB.Bounds.Width = bWidth;
|
||||
noticesLabelB.Visible = true;
|
||||
|
||||
noticesLabelC.Text = "):";
|
||||
noticesLabelC.Bounds.X = noticesLabelB.Bounds.Right;
|
||||
noticesLabelC.Visible = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
noticesLabelA.Text = "Local Server:";
|
||||
noticesLabelB.Visible = false;
|
||||
noticesLabelC.Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
void CreateAndJoin()
|
||||
@@ -131,6 +222,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
return;
|
||||
}
|
||||
|
||||
Ui.CloseWindow();
|
||||
ConnectionLogic.Connect(IPAddress.Loopback.ToString(), Game.Settings.Server.ListenPort, password, onCreate, onExit);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,98 +1,226 @@
|
||||
Container@MULTIPLAYER_CREATESERVER_PANEL:
|
||||
Logic: ServerCreationLogic
|
||||
Width: PARENT_RIGHT
|
||||
Height: PARENT_BOTTOM
|
||||
X: (WINDOW_RIGHT - WIDTH) / 2
|
||||
Y: (WINDOW_BOTTOM - HEIGHT - 15) / 2
|
||||
Width: 530
|
||||
Height: 314
|
||||
Children:
|
||||
Label@TITLE:
|
||||
Y: 5
|
||||
Width: 582
|
||||
Height: 25
|
||||
Text: Create Server
|
||||
Width: PARENT_RIGHT
|
||||
Y: 0-25
|
||||
Font: BigBold
|
||||
Contrast: true
|
||||
Align: Center
|
||||
Font: Bold
|
||||
ScrollPanel:
|
||||
Y: 30
|
||||
Width: 582
|
||||
Height: 249
|
||||
Text: Create Server
|
||||
Background@bg:
|
||||
Width: PARENT_RIGHT
|
||||
Height: PARENT_BOTTOM - 35
|
||||
Background: panel-black
|
||||
Children:
|
||||
Container:
|
||||
X: 185
|
||||
Y: 25
|
||||
Children:
|
||||
Label@SERVER_NAME_LABEL:
|
||||
Y: 14
|
||||
Width: 95
|
||||
Height: 25
|
||||
Align: Right
|
||||
Text: Server Name:
|
||||
TextField@SERVER_NAME:
|
||||
X: 100
|
||||
Y: 15
|
||||
Width: 215
|
||||
MaxLength: 50
|
||||
Height: 25
|
||||
Text: My OpenRA Server
|
||||
Label@PASSWORD_LABEL:
|
||||
Y: 49
|
||||
Width: 95
|
||||
Height: 25
|
||||
Align: Right
|
||||
Text: Password:
|
||||
PasswordField@PASSWORD:
|
||||
X: 100
|
||||
Y: 50
|
||||
Width: 145
|
||||
MaxLength: 20
|
||||
Height: 25
|
||||
Label@AFTER_PASSWORD_LABEL:
|
||||
X: 255
|
||||
Y: 49
|
||||
Width: 95
|
||||
Height: 25
|
||||
Align: Left
|
||||
Text: (optional)
|
||||
Label@LISTEN_PORT_LABEL:
|
||||
Y: 84
|
||||
Width: 95
|
||||
Height: 25
|
||||
Align: Right
|
||||
Text: Port:
|
||||
TextField@LISTEN_PORT:
|
||||
X: 100
|
||||
Y: 85
|
||||
Width: 50
|
||||
Height: 25
|
||||
MaxLength: 5
|
||||
Text: 1234
|
||||
Label@EXTERNAL_PORT_LABEL:
|
||||
X: 170
|
||||
Y: 84
|
||||
Width: 90
|
||||
Height: 25
|
||||
Align: Right
|
||||
Text: External Port:
|
||||
TextField@EXTERNAL_PORT:
|
||||
X: 265
|
||||
Y: 85
|
||||
Width: 50
|
||||
MaxLength: 5
|
||||
Height: 25
|
||||
Text: 1234
|
||||
Checkbox@ADVERTISE_CHECKBOX:
|
||||
X: 100
|
||||
Y: 135
|
||||
Width: 150
|
||||
Height: 20
|
||||
Font: Regular
|
||||
Text: Advertise Online
|
||||
Container@SIDEBAR:
|
||||
X: PARENT_RIGHT - WIDTH
|
||||
Y: 30
|
||||
Width: 174
|
||||
Height: 280
|
||||
Children:
|
||||
Background@MAP_BG:
|
||||
Label@SERVER_NAME_LABEL:
|
||||
Y: 14
|
||||
Width: 105
|
||||
Height: 25
|
||||
Align: Right
|
||||
Text: Server Name:
|
||||
TextField@SERVER_NAME:
|
||||
X: 110
|
||||
Y: 15
|
||||
Width: 215
|
||||
MaxLength: 50
|
||||
Height: 25
|
||||
Text: My OpenRA Server
|
||||
Label@PASSWORD_LABEL:
|
||||
Y: 49
|
||||
Width: 105
|
||||
Height: 25
|
||||
Align: Right
|
||||
Text: Password:
|
||||
PasswordField@PASSWORD:
|
||||
X: 110
|
||||
Y: 50
|
||||
Width: 145
|
||||
MaxLength: 20
|
||||
Height: 25
|
||||
Label@AFTER_PASSWORD_LABEL:
|
||||
X: 265
|
||||
Y: 49
|
||||
Width: 105
|
||||
Height: 25
|
||||
Align: Left
|
||||
Text: (optional)
|
||||
Label@LISTEN_PORT_LABEL:
|
||||
Y: 84
|
||||
Width: 105
|
||||
Height: 25
|
||||
Align: Right
|
||||
Text: Port:
|
||||
TextField@LISTEN_PORT:
|
||||
X: 110
|
||||
Y: 85
|
||||
Width: 50
|
||||
Height: 25
|
||||
MaxLength: 5
|
||||
Text: 1234
|
||||
Checkbox@ADVERTISE_CHECKBOX:
|
||||
X: 15
|
||||
Y: 121
|
||||
Width: 150
|
||||
Height: 20
|
||||
Font: Regular
|
||||
Text: Advertise Online
|
||||
Label@EXTERNAL_PORT_LABEL:
|
||||
X: 180
|
||||
Y: 119
|
||||
Width: 90
|
||||
Height: 25
|
||||
Align: Right
|
||||
Text: External Port:
|
||||
TextField@EXTERNAL_PORT:
|
||||
X: 275
|
||||
Y: 120
|
||||
Width: 50
|
||||
MaxLength: 5
|
||||
Height: 25
|
||||
Text: 1234
|
||||
Label@NOTICES_HEADER_A:
|
||||
X: 15
|
||||
Y: 165
|
||||
Height: 25
|
||||
Align: Left
|
||||
Font: Bold
|
||||
Label@NOTICES_HEADER_B:
|
||||
X: 15
|
||||
Y: 165
|
||||
Height: 25
|
||||
Align: Left
|
||||
Font: Bold
|
||||
Label@NOTICES_HEADER_C:
|
||||
X: 15
|
||||
Y: 165
|
||||
Height: 25
|
||||
Align: Left
|
||||
Font: Bold
|
||||
Container@NOTICES_LAN:
|
||||
X: 20
|
||||
Y: 185
|
||||
Width: PARENT_RIGHT
|
||||
Height: PARENT_BOTTOM
|
||||
Children:
|
||||
Label@ADVERTISING:
|
||||
Width: 305
|
||||
Height: 25
|
||||
Font: Tiny
|
||||
Align: Left
|
||||
Text: - Game will be advertised to the Local Area Network only.
|
||||
Label@FIREWALL:
|
||||
Y: 12
|
||||
Width: 305
|
||||
Height: 25
|
||||
Font: Tiny
|
||||
Align: Left
|
||||
Text: - You must manually configure your firewall to allow connections.
|
||||
Label@PORTFORWARD_A:
|
||||
Y: 24
|
||||
Width: 305
|
||||
Height: 25
|
||||
Font: Tiny
|
||||
Align: Left
|
||||
Text: - Players can connect using Direct IP from the Internet if you
|
||||
Label@PORTFORWARD_B:
|
||||
X: 7
|
||||
Y: 36
|
||||
Width: 295
|
||||
Height: 25
|
||||
Font: Tiny
|
||||
Align: Left
|
||||
Text: manually configure port forwarding on your router.
|
||||
Container@NOTICES_NO_UPNP:
|
||||
X: 20
|
||||
Y: 185
|
||||
Width: PARENT_RIGHT
|
||||
Height: PARENT_BOTTOM
|
||||
Children:
|
||||
Label@ADVERTISING:
|
||||
Width: 305
|
||||
Height: 25
|
||||
Font: Tiny
|
||||
Align: Left
|
||||
Text: - Game will be advertised to the Local Area Network and Internet.
|
||||
Label@FIREWALL:
|
||||
Y: 12
|
||||
Width: 305
|
||||
Height: 25
|
||||
Font: Tiny
|
||||
Align: Left
|
||||
Text: - You must manually configure your firewall to allow connections.
|
||||
Label@PORTFORWARD_A:
|
||||
Y: 24
|
||||
Width: 305
|
||||
Height: 25
|
||||
Font: Tiny
|
||||
Align: Left
|
||||
Text: - You must manually configure your router to allow and forward
|
||||
Label@PORTFORWARD_B:
|
||||
X: 7
|
||||
Y: 36
|
||||
Width: 295
|
||||
Height: 25
|
||||
Font: Tiny
|
||||
Align: Left
|
||||
Text: connections from the External Port to your local IP and Port.
|
||||
Label@SETTINGS_A:
|
||||
Y: 48
|
||||
Width: 305
|
||||
Height: 25
|
||||
Font: Tiny
|
||||
Align: Left
|
||||
Text: - You can enable UPnP (if supported by your router) in the
|
||||
Label@SETTINGS_B:
|
||||
X: 7
|
||||
Y: 60
|
||||
Width: 295
|
||||
Height: 25
|
||||
Font: Tiny
|
||||
Align: Left
|
||||
Text: Advanced tab of the OpenRA settings menu.
|
||||
Container@NOTICES_UPNP:
|
||||
X: 20
|
||||
Y: 185
|
||||
Width: PARENT_RIGHT
|
||||
Height: PARENT_BOTTOM
|
||||
Children:
|
||||
Label@ADVERTISING:
|
||||
Width: 305
|
||||
Height: 25
|
||||
Font: Tiny
|
||||
Align: Left
|
||||
Text: - Game will be advertised to the Local Area Network and Internet.
|
||||
Label@FIREWALL:
|
||||
Y: 12
|
||||
Width: 305
|
||||
Height: 25
|
||||
Font: Tiny
|
||||
Align: Left
|
||||
Text: - You must manually configure your firewall to allow connections.
|
||||
Label@PORTFORWARD_A:
|
||||
Y: 24
|
||||
Width: 305
|
||||
Height: 25
|
||||
Font: Tiny
|
||||
Align: Left
|
||||
Text: - OpenRA will use UPnP to automaticaly configure port forwarding.
|
||||
Label@SETTINGS_A:
|
||||
Y: 36
|
||||
Width: 305
|
||||
Height: 25
|
||||
Font: Tiny
|
||||
Align: Left
|
||||
Text: - You can disable UPnP in the OpenRA settings menu.
|
||||
Background@MAP_BG:
|
||||
X: PARENT_RIGHT - 189
|
||||
Y: 15
|
||||
Width: 174
|
||||
Height: 174
|
||||
Background: panel-gray
|
||||
Children:
|
||||
@@ -101,22 +229,47 @@ Container@MULTIPLAYER_CREATESERVER_PANEL:
|
||||
Y: 1
|
||||
Width: PARENT_RIGHT - 2
|
||||
Height: PARENT_RIGHT - 2
|
||||
Label@MAP_NAME:
|
||||
Y: 172
|
||||
Width: PARENT_RIGHT
|
||||
LabelWithTooltip@MAP_TITLE:
|
||||
X: PARENT_RIGHT - 189
|
||||
Y: 187
|
||||
Width: 174
|
||||
Height: 25
|
||||
Font: Bold
|
||||
Align: Center
|
||||
Button@MAP_BUTTON:
|
||||
X: PARENT_RIGHT - WIDTH
|
||||
Y: 284 - 30
|
||||
Width: 174
|
||||
Height: 25
|
||||
Text: Choose Map
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
TooltipTemplate: SIMPLE_TOOLTIP
|
||||
Label@MAP_TYPE:
|
||||
X: PARENT_RIGHT - 189
|
||||
Y: 202
|
||||
Width: 174
|
||||
Height: 25
|
||||
Font: TinyBold
|
||||
Align: Center
|
||||
IgnoreMouseOver: true
|
||||
Label@MAP_AUTHOR:
|
||||
X: PARENT_RIGHT - 189
|
||||
Y: 215
|
||||
Width: 174
|
||||
Height: 25
|
||||
Font: Tiny
|
||||
Align: Center
|
||||
Button@MAP_BUTTON:
|
||||
X: PARENT_RIGHT - 189
|
||||
Y: PARENT_BOTTOM - 40
|
||||
Width: 174
|
||||
Height: 25
|
||||
Text: Change Map
|
||||
Button@BACK_BUTTON:
|
||||
Key: return
|
||||
Y: PARENT_BOTTOM - 36
|
||||
Width: 140
|
||||
Height: 35
|
||||
Text: Back
|
||||
Button@CREATE_BUTTON:
|
||||
Key: return
|
||||
X: PARENT_RIGHT - WIDTH
|
||||
Y: 284
|
||||
Width: 174
|
||||
Height: 25
|
||||
Y: PARENT_BOTTOM - 36
|
||||
Width: 140
|
||||
Height: 35
|
||||
Text: Create
|
||||
TooltipContainer@TOOLTIP_CONTAINER:
|
||||
@@ -30,22 +30,16 @@ Container@MULTIPLAYER_PANEL:
|
||||
Height: 25
|
||||
Text: Refresh
|
||||
Button@DIRECTCONNECT_BUTTON:
|
||||
X: 277
|
||||
X: 387
|
||||
Y: 284
|
||||
Width: 100
|
||||
Height: 25
|
||||
Text: Direct IP
|
||||
Button@BROWSER_TAB:
|
||||
X: 382
|
||||
Y: 278
|
||||
Width: 105
|
||||
Height: 31
|
||||
Text: Browse
|
||||
Button@CREATE_TAB:
|
||||
Button@CREATE_BUTTON:
|
||||
X: 492
|
||||
Y: 278
|
||||
Y: 284
|
||||
Width: 105
|
||||
Height: 31
|
||||
Height: 25
|
||||
Text: Create
|
||||
Container@TOP_PANELS_ROOT:
|
||||
X: 15
|
||||
|
||||
@@ -1,124 +1,274 @@
|
||||
Container@MULTIPLAYER_CREATESERVER_PANEL:
|
||||
Background@MULTIPLAYER_CREATESERVER_PANEL:
|
||||
Logic: ServerCreationLogic
|
||||
Width: PARENT_RIGHT
|
||||
Height: PARENT_BOTTOM
|
||||
X: (WINDOW_RIGHT - WIDTH)/2
|
||||
Y: (WINDOW_BOTTOM - HEIGHT)/2
|
||||
Width: 530
|
||||
Height: 345
|
||||
Children:
|
||||
Label@TITLE:
|
||||
Y: 5
|
||||
Width: 582
|
||||
Y: 15
|
||||
Width: PARENT_RIGHT
|
||||
Height: 25
|
||||
Text: Create Server
|
||||
Align: Center
|
||||
Font: Bold
|
||||
ScrollPanel:
|
||||
Y: 30
|
||||
Width: 583
|
||||
Height: PARENT_BOTTOM - 30
|
||||
Label@SERVER_NAME_LABEL:
|
||||
Y: 44
|
||||
Width: 105
|
||||
Height: 25
|
||||
Align: Right
|
||||
Text: Server Name:
|
||||
TextField@SERVER_NAME:
|
||||
X: 110
|
||||
Y: 45
|
||||
Width: 215
|
||||
MaxLength: 50
|
||||
Height: 25
|
||||
Text: My OpenRA Server
|
||||
Label@PASSWORD_LABEL:
|
||||
Y: 79
|
||||
Width: 105
|
||||
Height: 25
|
||||
Align: Right
|
||||
Text: Password:
|
||||
PasswordField@PASSWORD:
|
||||
X: 110
|
||||
Y: 80
|
||||
Width: 145
|
||||
MaxLength: 20
|
||||
Height: 25
|
||||
Label@AFTER_PASSWORD_LABEL:
|
||||
X: 265
|
||||
Y: 79
|
||||
Width: 95
|
||||
Height: 25
|
||||
Align: Left
|
||||
Text: (optional)
|
||||
Label@LISTEN_PORT_LABEL:
|
||||
Y: 114
|
||||
Width: 105
|
||||
Height: 25
|
||||
Align: Right
|
||||
Text: Port:
|
||||
TextField@LISTEN_PORT:
|
||||
X: 110
|
||||
Y: 115
|
||||
Width: 50
|
||||
Height: 25
|
||||
MaxLength: 5
|
||||
Text: 1234
|
||||
Checkbox@ADVERTISE_CHECKBOX:
|
||||
X: 20
|
||||
Y: 151
|
||||
Width: 150
|
||||
Height: 20
|
||||
Font: Regular
|
||||
Text: Advertise Online
|
||||
Label@EXTERNAL_PORT_LABEL:
|
||||
X: 180
|
||||
Y: 149
|
||||
Width: 90
|
||||
Height: 25
|
||||
Align: Right
|
||||
Text: External Port:
|
||||
TextField@EXTERNAL_PORT:
|
||||
X: 275
|
||||
Y: 150
|
||||
Width: 50
|
||||
MaxLength: 5
|
||||
Height: 25
|
||||
Text: 1234
|
||||
Label@NOTICES_HEADER_A:
|
||||
X: 20
|
||||
Y: 185
|
||||
Height: 25
|
||||
Align: Left
|
||||
Font: Bold
|
||||
Label@NOTICES_HEADER_B:
|
||||
X: 20
|
||||
Y: 185
|
||||
Height: 25
|
||||
Align: Left
|
||||
Font: Bold
|
||||
Label@NOTICES_HEADER_C:
|
||||
X: 20
|
||||
Y: 185
|
||||
Height: 25
|
||||
Align: Left
|
||||
Font: Bold
|
||||
Container@NOTICES_LAN:
|
||||
X: 25
|
||||
Y: 205
|
||||
Width: PARENT_RIGHT
|
||||
Height: PARENT_BOTTOM
|
||||
Children:
|
||||
Container:
|
||||
X: 185
|
||||
Y: 30
|
||||
Children:
|
||||
Label@SERVER_NAME_LABEL:
|
||||
Y: 14
|
||||
Width: 95
|
||||
Height: 25
|
||||
Align: Right
|
||||
Text: Server Name:
|
||||
TextField@SERVER_NAME:
|
||||
X: 100
|
||||
Y: 15
|
||||
Width: 215
|
||||
MaxLength: 50
|
||||
Height: 25
|
||||
Text: My OpenRA Server
|
||||
Label@PASSWORD_LABEL:
|
||||
Y: 49
|
||||
Width: 95
|
||||
Height: 25
|
||||
Align: Right
|
||||
Text: Password:
|
||||
PasswordField@PASSWORD:
|
||||
X: 100
|
||||
Y: 50
|
||||
Width: 145
|
||||
MaxLength: 20
|
||||
Height: 25
|
||||
Label@AFTER_PASSWORD_LABEL:
|
||||
X: 255
|
||||
Y: 49
|
||||
Width: 95
|
||||
Height: 25
|
||||
Align: Left
|
||||
Text: (optional)
|
||||
Label@LISTEN_PORT_LABEL:
|
||||
Y: 84
|
||||
Width: 95
|
||||
Height: 25
|
||||
Align: Right
|
||||
Text: Port:
|
||||
TextField@LISTEN_PORT:
|
||||
X: 100
|
||||
Y: 85
|
||||
Width: 50
|
||||
Height: 25
|
||||
MaxLength: 5
|
||||
Text: 1234
|
||||
Label@EXTERNAL_PORT_LABEL:
|
||||
X: 170
|
||||
Y: 84
|
||||
Width: 90
|
||||
Height: 25
|
||||
Align: Right
|
||||
Text: External Port:
|
||||
TextField@EXTERNAL_PORT:
|
||||
X: 265
|
||||
Y: 85
|
||||
Width: 50
|
||||
MaxLength: 5
|
||||
Height: 25
|
||||
Text: 1234
|
||||
Checkbox@ADVERTISE_CHECKBOX:
|
||||
X: 100
|
||||
Y: 135
|
||||
Width: 150
|
||||
Height: 20
|
||||
Font: Regular
|
||||
Text: Advertise Online
|
||||
Container@SIDEBAR:
|
||||
X: PARENT_RIGHT - WIDTH
|
||||
Y: 30
|
||||
Width: 174
|
||||
Height: 280
|
||||
Children:
|
||||
Background@MAP_BG:
|
||||
Width: PARENT_RIGHT
|
||||
Height: 174
|
||||
Background: dialog3
|
||||
Children:
|
||||
MapPreview@MAP_PREVIEW:
|
||||
X: 1
|
||||
Y: 1
|
||||
Width: PARENT_RIGHT - 2
|
||||
Height: PARENT_RIGHT - 2
|
||||
Label@MAP_NAME:
|
||||
Y: 172
|
||||
Width: PARENT_RIGHT
|
||||
Label@ADVERTISING:
|
||||
Width: 305
|
||||
Height: 25
|
||||
Font: Bold
|
||||
Align: Center
|
||||
Button@MAP_BUTTON:
|
||||
X: PARENT_RIGHT - WIDTH
|
||||
Y: 240
|
||||
Font: Tiny
|
||||
Align: Left
|
||||
Text: - Game will be advertised to the Local Area Network only.
|
||||
Label@FIREWALL:
|
||||
Y: 12
|
||||
Width: 305
|
||||
Height: 25
|
||||
Font: Tiny
|
||||
Align: Left
|
||||
Text: - You must manually configure your firewall to allow connections.
|
||||
Label@PORTFORWARD_A:
|
||||
Y: 24
|
||||
Width: 305
|
||||
Height: 25
|
||||
Font: Tiny
|
||||
Align: Left
|
||||
Text: - Players can connect using Direct IP from the Internet if you
|
||||
Label@PORTFORWARD_B:
|
||||
X: 7
|
||||
Y: 36
|
||||
Width: 295
|
||||
Height: 25
|
||||
Font: Tiny
|
||||
Align: Left
|
||||
Text: manually configure port forwarding on your router.
|
||||
Container@NOTICES_NO_UPNP:
|
||||
X: 25
|
||||
Y: 205
|
||||
Width: PARENT_RIGHT
|
||||
Height: PARENT_BOTTOM
|
||||
Children:
|
||||
Label@ADVERTISING:
|
||||
Width: 305
|
||||
Height: 25
|
||||
Font: Tiny
|
||||
Align: Left
|
||||
Text: - Game will be advertised to the Local Area Network and Internet.
|
||||
Label@FIREWALL:
|
||||
Y: 12
|
||||
Width: 305
|
||||
Height: 25
|
||||
Font: Tiny
|
||||
Align: Left
|
||||
Text: - You must manually configure your firewall to allow connections.
|
||||
Label@PORTFORWARD_A:
|
||||
Y: 24
|
||||
Width: 305
|
||||
Height: 25
|
||||
Font: Tiny
|
||||
Align: Left
|
||||
Text: - You must manually configure your router to allow and forward
|
||||
Label@PORTFORWARD_B:
|
||||
X: 7
|
||||
Y: 36
|
||||
Width: 295
|
||||
Height: 25
|
||||
Font: Tiny
|
||||
Align: Left
|
||||
Text: connections from the External Port to your local IP and Port.
|
||||
Label@SETTINGS_A:
|
||||
Y: 48
|
||||
Width: 305
|
||||
Height: 25
|
||||
Font: Tiny
|
||||
Align: Left
|
||||
Text: - You can enable UPnP (if supported by your router) in the
|
||||
Label@SETTINGS_B:
|
||||
X: 7
|
||||
Y: 60
|
||||
Width: 295
|
||||
Height: 25
|
||||
Font: Tiny
|
||||
Align: Left
|
||||
Text: Advanced tab of the OpenRA settings menu.
|
||||
Container@NOTICES_UPNP:
|
||||
X: 25
|
||||
Y: 205
|
||||
Width: PARENT_RIGHT
|
||||
Height: PARENT_BOTTOM
|
||||
Children:
|
||||
Label@ADVERTISING:
|
||||
Width: 305
|
||||
Height: 25
|
||||
Font: Tiny
|
||||
Align: Left
|
||||
Text: - Game will be advertised to the Local Area Network and Internet.
|
||||
Label@FIREWALL:
|
||||
Y: 12
|
||||
Width: 305
|
||||
Height: 25
|
||||
Font: Tiny
|
||||
Align: Left
|
||||
Text: - You must manually configure your firewall to allow connections.
|
||||
Label@PORTFORWARD_A:
|
||||
Y: 24
|
||||
Width: 305
|
||||
Height: 25
|
||||
Font: Tiny
|
||||
Align: Left
|
||||
Text: - OpenRA will use UPnP to automaticaly configure port forwarding.
|
||||
Label@SETTINGS_A:
|
||||
Y: 36
|
||||
Width: 305
|
||||
Height: 25
|
||||
Font: Tiny
|
||||
Align: Left
|
||||
Text: - You can disable UPnP in the OpenRA settings menu.
|
||||
Background@MAP_BG:
|
||||
X: PARENT_RIGHT - 194
|
||||
Y: 45
|
||||
Width: 174
|
||||
Height: 174
|
||||
Background: dialog3
|
||||
Children:
|
||||
MapPreview@MAP_PREVIEW:
|
||||
X: 1
|
||||
Y: 1
|
||||
Width: PARENT_RIGHT - 2
|
||||
Height: PARENT_RIGHT - 2
|
||||
LabelWithTooltip@MAP_TITLE:
|
||||
X: PARENT_RIGHT - 194
|
||||
Y: 217
|
||||
Width: 174
|
||||
Height: 25
|
||||
Text: Choose Map
|
||||
Font: Bold
|
||||
Align: Center
|
||||
TooltipContainer: TOOLTIP_CONTAINER
|
||||
TooltipTemplate: SIMPLE_TOOLTIP
|
||||
Label@MAP_TYPE:
|
||||
X: PARENT_RIGHT - 194
|
||||
Y: 232
|
||||
Width: 174
|
||||
Height: 25
|
||||
Font: TinyBold
|
||||
Align: Center
|
||||
IgnoreMouseOver: true
|
||||
Label@MAP_AUTHOR:
|
||||
X: PARENT_RIGHT - 194
|
||||
Y: 245
|
||||
Width: 174
|
||||
Height: 25
|
||||
Font: Tiny
|
||||
Align: Center
|
||||
Button@MAP_BUTTON:
|
||||
X: PARENT_RIGHT - 194
|
||||
Y: 268
|
||||
Width: 174
|
||||
Height: 25
|
||||
Text: Change Map
|
||||
Font: Bold
|
||||
Button@BACK_BUTTON:
|
||||
X: PARENT_RIGHT - 194
|
||||
Y: PARENT_BOTTOM - 45
|
||||
Width: 174
|
||||
Height: 25
|
||||
Text: Back
|
||||
Font: Bold
|
||||
Key: escape
|
||||
Button@CREATE_BUTTON:
|
||||
Key: return
|
||||
X: PARENT_RIGHT - WIDTH
|
||||
Y: PARENT_BOTTOM - 25
|
||||
X: 20
|
||||
Y: PARENT_BOTTOM - 45
|
||||
Width: 174
|
||||
Height: 25
|
||||
Text: Create
|
||||
Font: Bold
|
||||
TooltipContainer@TOOLTIP_CONTAINER:
|
||||
@@ -27,24 +27,17 @@ Background@MULTIPLAYER_PANEL:
|
||||
Text: Refresh
|
||||
Font: Bold
|
||||
Button@DIRECTCONNECT_BUTTON:
|
||||
X: 288
|
||||
X: 398
|
||||
Y: PARENT_BOTTOM - HEIGHT - 20
|
||||
Width: 100
|
||||
Height: 25
|
||||
Text: Direct IP
|
||||
Font: Bold
|
||||
Button@BROWSER_TAB:
|
||||
X: 393
|
||||
Button@CREATE_BUTTON:
|
||||
X: 503
|
||||
Y: PARENT_BOTTOM - HEIGHT - 20
|
||||
Width: 105
|
||||
Height: 31
|
||||
Text: Browse
|
||||
Font: Bold
|
||||
Button@CREATE_TAB:
|
||||
X: 498
|
||||
Y: PARENT_BOTTOM - HEIGHT - 20
|
||||
Width: 105
|
||||
Height: 31
|
||||
Width: 100
|
||||
Height: 25
|
||||
Text: Create
|
||||
Font: Bold
|
||||
Container@TOP_PANELS_ROOT:
|
||||
|
||||
@@ -38,3 +38,6 @@ Metrics:
|
||||
TextfieldColorInvalid: FFC0C0
|
||||
TextfieldFont: Regular
|
||||
WaitingGameColor: 00FF00
|
||||
UPnPDisabledColor: FFFFFF
|
||||
UPnPEnabledColor: 00FF00
|
||||
UPnPNotSupportedColor: FF0000
|
||||
Reference in New Issue
Block a user