CrewMonitoringBoundUserInterface.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using Content.Shared.Medical.CrewMonitoring;
  2. using Robust.Client.UserInterface;
  3. namespace Content.Client.Medical.CrewMonitoring;
  4. public sealed class CrewMonitoringBoundUserInterface : BoundUserInterface
  5. {
  6. [ViewVariables]
  7. private CrewMonitoringWindow? _menu;
  8. public CrewMonitoringBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey)
  9. {
  10. }
  11. protected override void Open()
  12. {
  13. base.Open();
  14. EntityUid? gridUid = null;
  15. var stationName = string.Empty;
  16. if (EntMan.TryGetComponent<TransformComponent>(Owner, out var xform))
  17. {
  18. gridUid = xform.GridUid;
  19. if (EntMan.TryGetComponent<MetaDataComponent>(gridUid, out var metaData))
  20. {
  21. stationName = metaData.EntityName;
  22. }
  23. }
  24. _menu = this.CreateWindow<CrewMonitoringWindow>();
  25. _menu.Set(stationName, gridUid);
  26. }
  27. protected override void UpdateState(BoundUserInterfaceState state)
  28. {
  29. base.UpdateState(state);
  30. switch (state)
  31. {
  32. case CrewMonitoringState st:
  33. EntMan.TryGetComponent<TransformComponent>(Owner, out var xform);
  34. _menu?.ShowSensors(st.Sensors, Owner, xform?.Coordinates);
  35. break;
  36. }
  37. }
  38. }