BorgBoundUserInterface.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using Content.Shared.Silicons.Borgs;
  2. using JetBrains.Annotations;
  3. using Robust.Client.GameObjects;
  4. using Robust.Client.UserInterface;
  5. namespace Content.Client.Silicons.Borgs;
  6. [UsedImplicitly]
  7. public sealed class BorgBoundUserInterface : BoundUserInterface
  8. {
  9. [ViewVariables]
  10. private BorgMenu? _menu;
  11. public BorgBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey)
  12. {
  13. }
  14. protected override void Open()
  15. {
  16. base.Open();
  17. _menu = this.CreateWindow<BorgMenu>();
  18. _menu.SetEntity(Owner);
  19. _menu.BrainButtonPressed += () =>
  20. {
  21. SendMessage(new BorgEjectBrainBuiMessage());
  22. };
  23. _menu.EjectBatteryButtonPressed += () =>
  24. {
  25. SendMessage(new BorgEjectBatteryBuiMessage());
  26. };
  27. _menu.NameChanged += name =>
  28. {
  29. SendMessage(new BorgSetNameBuiMessage(name));
  30. };
  31. _menu.RemoveModuleButtonPressed += module =>
  32. {
  33. SendMessage(new BorgRemoveModuleBuiMessage(EntMan.GetNetEntity(module)));
  34. };
  35. }
  36. protected override void UpdateState(BoundUserInterfaceState state)
  37. {
  38. base.UpdateState(state);
  39. if (state is not BorgBuiState msg)
  40. return;
  41. _menu?.UpdateState(msg);
  42. }
  43. }