Files
OldThink/Content.Client/UserInterface/EscapeMenu.cs

105 lines
3.4 KiB
C#
Raw Normal View History

using Robust.Client.Console;
2019-05-14 15:19:41 +02:00
using Robust.Client.Interfaces.Placement;
using Robust.Client.Interfaces.ResourceManagement;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.CustomControls;
using Robust.Shared.Interfaces.Configuration;
using Robust.Shared.Interfaces.Map;
using Robust.Shared.IoC;
using Robust.Shared.Localization;
2019-05-14 15:19:41 +02:00
using Robust.Shared.Prototypes;
namespace Content.Client.UserInterface
{
internal sealed class EscapeMenu : SS14Window
{
private readonly IClientConsole _console;
private readonly ITileDefinitionManager _tileDefinitionManager;
2019-05-14 15:19:41 +02:00
private readonly IPlacementManager _placementManager;
private readonly IPrototypeManager _prototypeManager;
private readonly IResourceCache _resourceCache;
private readonly IConfigurationManager _configSystem;
private readonly ILocalizationManager _localizationManager;
2019-05-14 15:19:41 +02:00
private BaseButton DisconnectButton;
2019-05-14 15:19:41 +02:00
private BaseButton QuitButton;
private BaseButton OptionsButton;
private OptionsMenu optionsMenu;
public EscapeMenu(IClientConsole console,
2019-05-14 15:19:41 +02:00
ITileDefinitionManager tileDefinitionManager,
IPlacementManager placementManager,
IPrototypeManager prototypeManager,
IResourceCache resourceCache,
IConfigurationManager configSystem, ILocalizationManager localizationManager)
2019-05-14 15:19:41 +02:00
{
_configSystem = configSystem;
_localizationManager = localizationManager;
2019-05-14 15:19:41 +02:00
_console = console;
_tileDefinitionManager = tileDefinitionManager;
2019-05-14 15:19:41 +02:00
_placementManager = placementManager;
_prototypeManager = prototypeManager;
_resourceCache = resourceCache;
IoCManager.InjectDependencies(this);
2019-05-14 15:19:41 +02:00
PerformLayout();
}
private void PerformLayout()
{
optionsMenu = new OptionsMenu(_configSystem);
2019-05-14 15:19:41 +02:00
Resizable = false;
Title = "Esc Menu";
2019-05-14 15:19:41 +02:00
var vBox = new VBoxContainer {SeparationOverride = 4};
2019-05-14 15:19:41 +02:00
Contents.AddChild(vBox);
OptionsButton = new Button {Text = _localizationManager.GetString("Options")};
2019-05-14 15:19:41 +02:00
OptionsButton.OnPressed += OnOptionsButtonClicked;
vBox.AddChild(OptionsButton);
DisconnectButton = new Button {Text = _localizationManager.GetString("Disconnect")};
DisconnectButton.OnPressed += OnDisconnectButtonClicked;
vBox.AddChild(DisconnectButton);
QuitButton = new Button {Text = _localizationManager.GetString("Quit Game")};
2019-05-14 15:19:41 +02:00
QuitButton.OnPressed += OnQuitButtonClicked;
vBox.AddChild(QuitButton);
}
private void OnQuitButtonClicked(BaseButton.ButtonEventArgs args)
{
_console.ProcessCommand("quit");
Dispose();
}
private void OnDisconnectButtonClicked(BaseButton.ButtonEventArgs args)
2019-05-14 15:19:41 +02:00
{
_console.ProcessCommand("disconnect");
Dispose();
}
private void OnOptionsButtonClicked(BaseButton.ButtonEventArgs args)
{
optionsMenu.OpenCentered();
}
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
if (disposing)
{
optionsMenu.Dispose();
}
}
public override void Close()
{
base.Close();
}
2019-05-14 15:19:41 +02:00
}
}