1
0

SpaceVillainArcadeBoundUserInterface.cs 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using Robust.Client.GameObjects;
  2. using Robust.Client.UserInterface;
  3. using Robust.Shared.GameObjects;
  4. using Robust.Shared.ViewVariables;
  5. using static Content.Shared.Arcade.SharedSpaceVillainArcadeComponent;
  6. namespace Content.Client.Arcade.UI;
  7. public sealed class SpaceVillainArcadeBoundUserInterface : BoundUserInterface
  8. {
  9. [ViewVariables] private SpaceVillainArcadeMenu? _menu;
  10. public SpaceVillainArcadeBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey)
  11. {
  12. SendAction(PlayerAction.RequestData);
  13. }
  14. public void SendAction(PlayerAction action)
  15. {
  16. SendMessage(new SpaceVillainArcadePlayerActionMessage(action));
  17. }
  18. protected override void Open()
  19. {
  20. base.Open();
  21. _menu = this.CreateWindow<SpaceVillainArcadeMenu>();
  22. _menu.OnPlayerAction += SendAction;
  23. }
  24. protected override void ReceiveMessage(BoundUserInterfaceMessage message)
  25. {
  26. if (message is SpaceVillainArcadeDataUpdateMessage msg)
  27. _menu?.UpdateInfo(msg);
  28. }
  29. }