| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- using Content.Shared.RCD;
- using Content.Shared.RCD.Components;
- using JetBrains.Annotations;
- using Robust.Client.Graphics;
- using Robust.Client.Input;
- using Robust.Client.UserInterface;
- using Robust.Shared.Prototypes;
- namespace Content.Client.RCD;
- [UsedImplicitly]
- public sealed class RCDMenuBoundUserInterface : BoundUserInterface
- {
- [Dependency] private readonly IClyde _displayManager = default!;
- [Dependency] private readonly IInputManager _inputManager = default!;
- private RCDMenu? _menu;
- public RCDMenuBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey)
- {
- IoCManager.InjectDependencies(this);
- }
- protected override void Open()
- {
- base.Open();
- _menu = this.CreateWindow<RCDMenu>();
- _menu.SetEntity(Owner);
- _menu.SendRCDSystemMessageAction += SendRCDSystemMessage;
- // Open the menu, centered on the mouse
- var vpSize = _displayManager.ScreenSize;
- _menu.OpenCenteredAt(_inputManager.MouseScreenPosition.Position / vpSize);
- }
- public void SendRCDSystemMessage(ProtoId<RCDPrototype> protoId)
- {
- // A predicted message cannot be used here as the RCD UI is closed immediately
- // after this message is sent, which will stop the server from receiving it
- SendMessage(new RCDSystemMessage(protoId));
- }
- }
|