using Content.Client.HUD; using Content.Shared.Input; using JetBrains.Annotations; using Robust.Client.GameObjects; using Robust.Shared.GameObjects; using Robust.Shared.Input.Binding; using Robust.Shared.IoC; namespace Content.Client.Inventory { [UsedImplicitly] public sealed class ClientInventorySystem : EntitySystem { [Dependency] private readonly IGameHud _gameHud = default!; public override void Initialize() { base.Initialize(); CommandBinds.Builder .Bind(ContentKeyFunctions.OpenInventoryMenu, InputCmdHandler.FromDelegate(_ => HandleOpenInventoryMenu())) .Register(); SubscribeLocalEvent((_, component, _) => component.PlayerAttached()); SubscribeLocalEvent((_, component, _) => component.PlayerDetached()); } public override void Shutdown() { CommandBinds.Unregister(); base.Shutdown(); } private void HandleOpenInventoryMenu() { _gameHud.InventoryButtonDown = !_gameHud.InventoryButtonDown; } } }