RulesPopup.xaml.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. using Robust.Client.AutoGenerated;
  2. using Robust.Client.UserInterface;
  3. using Robust.Client.UserInterface.Controls;
  4. using Robust.Client.UserInterface.XAML;
  5. using Robust.Shared.Timing;
  6. namespace Content.Client.Info;
  7. [GenerateTypedNameReferences]
  8. public sealed partial class RulesPopup : Control
  9. {
  10. private float _timer;
  11. public float Timer
  12. {
  13. get => _timer;
  14. set
  15. {
  16. WaitLabel.Text = Loc.GetString("ui-rules-wait", ("time", MathF.Floor(value)));
  17. _timer = value;
  18. }
  19. }
  20. public event Action? OnQuitPressed;
  21. public event Action? OnAcceptPressed;
  22. public RulesPopup()
  23. {
  24. RobustXamlLoader.Load(this);
  25. AcceptButton.OnPressed += OnAcceptButtonPressed;
  26. QuitButton.OnPressed += OnQuitButtonPressed;
  27. }
  28. private void OnQuitButtonPressed(BaseButton.ButtonEventArgs obj)
  29. {
  30. OnQuitPressed?.Invoke();
  31. }
  32. private void OnAcceptButtonPressed(BaseButton.ButtonEventArgs obj)
  33. {
  34. OnAcceptPressed?.Invoke();
  35. }
  36. protected override void FrameUpdate(FrameEventArgs args)
  37. {
  38. base.FrameUpdate(args);
  39. if (!AcceptButton.Disabled)
  40. return;
  41. if (Timer > 0.0)
  42. {
  43. if (Timer - args.DeltaSeconds < 0)
  44. Timer = 0;
  45. else
  46. Timer -= args.DeltaSeconds;
  47. }
  48. else
  49. {
  50. AcceptButton.Disabled = false;
  51. }
  52. }
  53. }