Add settings tab to TD lobby. Partially fixes #4770.
This commit is contained in:
@@ -12,6 +12,7 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using OpenRA.Graphics;
|
||||||
using OpenRA.Network;
|
using OpenRA.Network;
|
||||||
using OpenRA.Traits;
|
using OpenRA.Traits;
|
||||||
using OpenRA.Widgets;
|
using OpenRA.Widgets;
|
||||||
@@ -20,6 +21,8 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
|||||||
{
|
{
|
||||||
public class LobbyLogic
|
public class LobbyLogic
|
||||||
{
|
{
|
||||||
|
static readonly Action DoNothing = () => { };
|
||||||
|
|
||||||
readonly Action onStart;
|
readonly Action onStart;
|
||||||
readonly Action onExit;
|
readonly Action onExit;
|
||||||
readonly OrderManager orderManager;
|
readonly OrderManager orderManager;
|
||||||
@@ -86,7 +89,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
|||||||
}
|
}
|
||||||
|
|
||||||
[ObjectCreator.UseCtor]
|
[ObjectCreator.UseCtor]
|
||||||
internal LobbyLogic(Widget widget, World world, OrderManager orderManager,
|
internal LobbyLogic(Widget widget, World world, WorldRenderer worldRenderer, OrderManager orderManager,
|
||||||
Action onExit, Action onStart, bool skirmishMode)
|
Action onExit, Action onStart, bool skirmishMode)
|
||||||
{
|
{
|
||||||
lobby = widget;
|
lobby = widget;
|
||||||
@@ -164,7 +167,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
|||||||
Ui.OpenWindow("MAPCHOOSER_PANEL", new WidgetArgs()
|
Ui.OpenWindow("MAPCHOOSER_PANEL", new WidgetArgs()
|
||||||
{
|
{
|
||||||
{ "initialMap", preview.Uid },
|
{ "initialMap", preview.Uid },
|
||||||
{ "onExit", () => { } },
|
{ "onExit", DoNothing },
|
||||||
{ "onSelect", onSelect }
|
{ "onSelect", onSelect }
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@@ -469,9 +472,17 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
|||||||
|
|
||||||
var musicButton = lobby.GetOrNull<ButtonWidget>("MUSIC_BUTTON");
|
var musicButton = lobby.GetOrNull<ButtonWidget>("MUSIC_BUTTON");
|
||||||
if (musicButton != null)
|
if (musicButton != null)
|
||||||
musicButton.OnClick = () => Ui.OpenWindow("MUSIC_PANEL",
|
musicButton.OnClick = () => Ui.OpenWindow("MUSIC_PANEL", new WidgetArgs { { "onExit", DoNothing } });
|
||||||
new WidgetArgs { { "onExit", () => { } } });
|
|
||||||
|
|
||||||
|
var settingsButton = lobby.GetOrNull<ButtonWidget>("SETTINGS_BUTTON");
|
||||||
|
if (settingsButton != null)
|
||||||
|
{
|
||||||
|
settingsButton.OnClick = () => Ui.OpenWindow("SETTINGS_PANEL", new WidgetArgs
|
||||||
|
{
|
||||||
|
{ "onExit", DoNothing },
|
||||||
|
{ "worldRenderer", worldRenderer }
|
||||||
|
});
|
||||||
|
}
|
||||||
// Add a bot on the first lobbyinfo update
|
// Add a bot on the first lobbyinfo update
|
||||||
if (this.skirmishMode)
|
if (this.skirmishMode)
|
||||||
Game.LobbyInfoChanged += WidgetUtils.Once(() =>
|
Game.LobbyInfoChanged += WidgetUtils.Once(() =>
|
||||||
|
|||||||
@@ -161,10 +161,16 @@ Container@SERVER_LOBBY:
|
|||||||
Height:35
|
Height:35
|
||||||
Text:Leave Game
|
Text:Leave Game
|
||||||
Key: escape
|
Key: escape
|
||||||
Button@MUSIC_BUTTON:
|
Button@SETTINGS_BUTTON:
|
||||||
X:150
|
X:150
|
||||||
Y:499
|
Y:499
|
||||||
Width:140
|
Width:140
|
||||||
Height:35
|
Height:35
|
||||||
|
Text:Settings
|
||||||
|
Button@MUSIC_BUTTON:
|
||||||
|
X:300
|
||||||
|
Y:499
|
||||||
|
Width:140
|
||||||
|
Height:35
|
||||||
Text:Music
|
Text:Music
|
||||||
TooltipContainer@TOOLTIP_CONTAINER:
|
TooltipContainer@TOOLTIP_CONTAINER:
|
||||||
|
|||||||
Reference in New Issue
Block a user