1
0

AnomalyScannerMenu.xaml.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using Content.Client.Message;
  2. using Content.Client.UserInterface.Controls;
  3. using Robust.Client.AutoGenerated;
  4. using Robust.Client.UserInterface.XAML;
  5. using Robust.Shared.Timing;
  6. using Robust.Shared.Utility;
  7. namespace Content.Client.Anomaly.Ui;
  8. [GenerateTypedNameReferences]
  9. public sealed partial class AnomalyScannerMenu : FancyWindow
  10. {
  11. [Dependency] private readonly IGameTiming _timing = default!;
  12. public FormattedMessage LastMessage = new();
  13. public TimeSpan? NextPulseTime;
  14. public AnomalyScannerMenu()
  15. {
  16. RobustXamlLoader.Load(this);
  17. IoCManager.InjectDependencies(this);
  18. }
  19. public void UpdateMenu()
  20. {
  21. var msg = new FormattedMessage(LastMessage);
  22. if (NextPulseTime != null)
  23. {
  24. msg.PushNewline();
  25. msg.PushNewline();
  26. var time = NextPulseTime.Value - _timing.CurTime;
  27. var timestring = $"{time.Minutes:00}:{time.Seconds:00}";
  28. msg.AddMarkupOrThrow(Loc.GetString("anomaly-scanner-pulse-timer", ("time", timestring)));
  29. }
  30. TextDisplay.SetMarkup(msg.ToMarkup());
  31. }
  32. protected override void FrameUpdate(FrameEventArgs args)
  33. {
  34. base.FrameUpdate(args);
  35. if (NextPulseTime != null)
  36. UpdateMenu();
  37. }
  38. }