using Content.Shared._EstacaoPirata.Cards.Hand; using Content.Shared.RCD; using JetBrains.Annotations; using Robust.Client.Graphics; using Robust.Client.Input; using Robust.Shared.Prototypes; namespace Content.Client._EstacaoPirata.Cards.Hand.UI; [UsedImplicitly] public sealed class CardHandMenuBoundUserInterface : BoundUserInterface { [Dependency] private readonly IClyde _displayManager = default!; [Dependency] private readonly IInputManager _inputManager = default!; private CardHandMenu? _menu; public CardHandMenuBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey) { IoCManager.InjectDependencies(this); } protected override void Open() { base.Open(); _menu = new(Owner, this); _menu.OnClose += Close; // Open the menu, centered on the mouse var vpSize = _displayManager.ScreenSize; _menu.OpenCenteredAt(_inputManager.MouseScreenPosition.Position / vpSize); } public void SendCardHandDrawMessage(NetEntity e) => SendMessage(new CardHandDrawMessage(e)); protected override void Dispose(bool disposing) { base.Dispose(disposing); if (!disposing) return; _menu?.Dispose(); } }