diff --git a/Content.Client/UserInterface/GameHud.cs b/Content.Client/UserInterface/GameHud.cs index cb3e8169e9..1df2b16405 100644 --- a/Content.Client/UserInterface/GameHud.cs +++ b/Content.Client/UserInterface/GameHud.cs @@ -11,6 +11,9 @@ using Robust.Shared.Maths; namespace Content.Client.UserInterface { + /// + /// Responsible for laying out the default game HUD. + /// public interface IGameHud { Control RootControl { get; } @@ -20,12 +23,12 @@ namespace Content.Client.UserInterface void Initialize(); } - /// - /// Responsible for laying out the default game HUD. - /// internal sealed class GameHud : IGameHud { + private HBoxContainer _topButtonsContainer; private TopButton _buttonEscapeMenu; + private TopButton _buttonInventoryMenu; + private TopButton _buttonCraftingMenu; #pragma warning disable 649 [Dependency] private readonly IResourceCache _resourceCache; @@ -34,21 +37,46 @@ namespace Content.Client.UserInterface public void Initialize() { - RootControl = new Control(); + RootControl = new Control {MouseFilter = Control.MouseFilterMode.Ignore}; RootControl.SetAnchorPreset(Control.LayoutPreset.Wide); var escapeTexture = _resourceCache.GetTexture("/Textures/UserInterface/hamburger.svg.96dpi.png"); + _topButtonsContainer = new HBoxContainer + { + SeparationOverride = 4 + }; + + RootControl.AddChild(_topButtonsContainer); + _topButtonsContainer.SetAnchorAndMarginPreset(Control.LayoutPreset.TopLeft, margin: 10); + + // TODO: Pull key names here from the actual key binding config. + // Escape _buttonEscapeMenu = new TopButton(escapeTexture, "esc") { ToolTip = _localizationManager.GetString("Open escape menu.") }; - _buttonEscapeMenu.OnToggled += args => EscapeButtonToggled?.Invoke(args.Pressed); + _topButtonsContainer.AddChild(_buttonEscapeMenu); - RootControl.AddChild(_buttonEscapeMenu); - _buttonEscapeMenu.SetAnchorAndMarginPreset(Control.LayoutPreset.TopLeft, margin: 10); + // Inventory + _buttonInventoryMenu = new TopButton(escapeTexture, "i") + { + ToolTip = _localizationManager.GetString("Open inventory menu.") + }; + + _topButtonsContainer.AddChild(_buttonInventoryMenu); + + // Crafting + _buttonCraftingMenu = new TopButton(escapeTexture, "g") + { + ToolTip = _localizationManager.GetString("Open crafting menu.") + }; + + _topButtonsContainer.AddChild(_buttonCraftingMenu); + + _buttonEscapeMenu.OnToggled += args => EscapeButtonToggled?.Invoke(args.Pressed); } public Control RootControl { get; private set; }