1
0

IntercomBoundUserInterface.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using Content.Shared.Radio;
  2. using Content.Shared.Radio.Components;
  3. using JetBrains.Annotations;
  4. using Robust.Client.GameObjects;
  5. using Robust.Client.UserInterface;
  6. namespace Content.Client.Radio.Ui;
  7. [UsedImplicitly]
  8. public sealed class IntercomBoundUserInterface : BoundUserInterface
  9. {
  10. [ViewVariables]
  11. private IntercomMenu? _menu;
  12. public IntercomBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey)
  13. {
  14. }
  15. protected override void Open()
  16. {
  17. base.Open();
  18. _menu = this.CreateWindow<IntercomMenu>();
  19. if (EntMan.TryGetComponent(Owner, out IntercomComponent? intercom))
  20. {
  21. _menu.Update((Owner, intercom));
  22. }
  23. _menu.OnMicPressed += enabled =>
  24. {
  25. SendMessage(new ToggleIntercomMicMessage(enabled));
  26. };
  27. _menu.OnSpeakerPressed += enabled =>
  28. {
  29. SendMessage(new ToggleIntercomSpeakerMessage(enabled));
  30. };
  31. _menu.OnChannelSelected += channel =>
  32. {
  33. SendMessage(new SelectIntercomChannelMessage(channel));
  34. };
  35. }
  36. public void Update(Entity<IntercomComponent> ent)
  37. {
  38. _menu?.Update(ent);
  39. }
  40. }