Start working on those top left buttons in the UI draft.

This commit is contained in:
Pieter-Jan Briers
2019-07-14 23:02:45 +02:00
parent 837a906538
commit cdcafbada6
8 changed files with 218 additions and 23 deletions

View File

@@ -9,6 +9,7 @@ using Robust.Shared.Input;
using Robust.Shared.Interfaces.Configuration;
using Robust.Shared.Interfaces.Map;
using Robust.Shared.IoC;
using Robust.Shared.Players;
using Robust.Shared.Prototypes;
namespace Content.Client
@@ -16,14 +17,15 @@ namespace Content.Client
internal sealed class EscapeMenuOwner : IEscapeMenuOwner
{
#pragma warning disable 649
[Dependency] private readonly IStateManager _stateManager;
[Dependency] private readonly IClientConsole _clientConsole;
[Dependency] private readonly ITileDefinitionManager _tileDefinitionManager;
[Dependency] private readonly IConfigurationManager _configurationManager;
[Dependency] private readonly IInputManager _inputManager;
[Dependency] private readonly IPlacementManager _placementManager;
[Dependency] private readonly IPrototypeManager _prototypeManager;
[Dependency] private readonly IResourceCache _resourceCache;
[Dependency] private readonly IConfigurationManager _configurationManager;
[Dependency] private readonly IInputManager _inputManager;
[Dependency] private readonly IStateManager _stateManager;
[Dependency] private readonly ITileDefinitionManager _tileDefinitionManager;
[Dependency] private readonly IGameHud _gameHud;
#pragma warning restore 649
private EscapeMenu _escapeMenu;
@@ -31,6 +33,8 @@ namespace Content.Client
public void Initialize()
{
_stateManager.OnStateChanged += StateManagerOnOnStateChanged;
_gameHud.EscapeButtonToggled += _setOpenValue;
}
private void StateManagerOnOnStateChanged(StateChangedEventArgs obj)
@@ -44,26 +48,11 @@ namespace Content.Client
Visible = false
};
_escapeMenu.OnClose += () => _gameHud.EscapeButtonDown = false;
_escapeMenu.AddToScreen();
var escapeMenuCommand = InputCmdHandler.FromDelegate(session =>
{
if (_escapeMenu.Visible)
{
if (_escapeMenu.IsAtFront())
{
_escapeMenu.Visible = false;
}
else
{
_escapeMenu.MoveToFront();
}
}
else
{
_escapeMenu.OpenCentered();
}
});
var escapeMenuCommand = InputCmdHandler.FromDelegate(Enabled);
_inputManager.SetInputCommand(EngineKeyFunctions.EscapeMenu, escapeMenuCommand);
}
@@ -76,6 +65,39 @@ namespace Content.Client
_inputManager.SetInputCommand(EngineKeyFunctions.EscapeMenu, null);
}
}
private void Enabled(ICommonSession session)
{
if (_escapeMenu.Visible)
{
if (_escapeMenu.IsAtFront())
{
_setOpenValue(false);
}
else
{
_escapeMenu.MoveToFront();
}
}
else
{
_setOpenValue(true);
}
}
private void _setOpenValue(bool value)
{
if (value)
{
_gameHud.EscapeButtonDown = true;
_escapeMenu.OpenCentered();
}
else
{
_gameHud.EscapeButtonDown = false;
_escapeMenu.Visible = false;
}
}
}
public interface IEscapeMenuOwner