PowerMonitoringConsoleBoundUserInterface.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using Content.Shared.Power;
  2. using Robust.Client.UserInterface;
  3. namespace Content.Client.Power;
  4. public sealed class PowerMonitoringConsoleBoundUserInterface : BoundUserInterface
  5. {
  6. [ViewVariables]
  7. private PowerMonitoringWindow? _menu;
  8. public PowerMonitoringConsoleBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey) { }
  9. protected override void Open()
  10. {
  11. base.Open();
  12. _menu = this.CreateWindow<PowerMonitoringWindow>();
  13. _menu.SetEntity(Owner);
  14. _menu.SendPowerMonitoringConsoleMessageAction += SendPowerMonitoringConsoleMessage;
  15. }
  16. protected override void UpdateState(BoundUserInterfaceState state)
  17. {
  18. base.UpdateState(state);
  19. var castState = (PowerMonitoringConsoleBoundInterfaceState) state;
  20. EntMan.TryGetComponent<TransformComponent>(Owner, out var xform);
  21. _menu?.ShowEntites
  22. (castState.TotalSources,
  23. castState.TotalBatteryUsage,
  24. castState.TotalLoads,
  25. castState.AllEntries,
  26. castState.FocusSources,
  27. castState.FocusLoads,
  28. xform?.Coordinates);
  29. }
  30. public void SendPowerMonitoringConsoleMessage(NetEntity? netEntity, PowerMonitoringConsoleGroup group)
  31. {
  32. SendMessage(new PowerMonitoringConsoleMessage(netEntity, group));
  33. }
  34. }