Files
tbd-station-14/Content.Client/Info/RulesPopup.xaml.cs
2022-02-16 18:23:23 +11:00

70 lines
1.5 KiB
C#

using System;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
using Robust.Shared.Localization;
using Robust.Shared.Timing;
namespace Content.Client.Info;
[GenerateTypedNameReferences]
public sealed partial class RulesPopup : Control
{
private float _timer;
public float Timer
{
get => _timer;
set
{
WaitLabel.Text = Loc.GetString("ui-rules-wait", ("time", MathF.Floor(value)));
_timer = value;
}
}
public event Action? OnQuitPressed;
public event Action? OnAcceptPressed;
public RulesPopup()
{
RobustXamlLoader.Load(this);
AcceptButton.OnPressed += OnAcceptButtonPressed;
QuitButton.OnPressed += OnQuitButtonPressed;
}
private void OnQuitButtonPressed(BaseButton.ButtonEventArgs obj)
{
OnQuitPressed?.Invoke();
Dispose();
}
private void OnAcceptButtonPressed(BaseButton.ButtonEventArgs obj)
{
Parent?.RemoveChild(this);
OnAcceptPressed?.Invoke();
Dispose();
}
protected override void FrameUpdate(FrameEventArgs args)
{
base.FrameUpdate(args);
if (!AcceptButton.Disabled)
return;
if (Timer > 0.0)
{
if (Timer - args.DeltaSeconds < 0)
Timer = 0;
else
Timer -= args.DeltaSeconds;
}
else
{
AcceptButton.Disabled = false;
}
}
}