UI/JumperSessionTimer.razor
@using Sandbox;
@using Sandbox.UI;
@inherits PanelComponent
<root class=@(IsOpen ? "open" : "closed")>
<label class="sessiontimetext" style="top:32px">Session Time</label>
<label class="sessiontimetext">@SessionTime</label>
</root>
@code
{
[Property] JumperDistanceRuler JumperDistanceRuler { get; set; }
private string SessionTime;
bool IsOpen { get; set; }
protected override void OnEnabled()
{
base.OnEnabled();
JumperDistanceRuler = Scene.GetAllComponents<JumperDistanceRuler>().FirstOrDefault();
}
protected override void OnUpdate()
{
if ( JumperDistanceRuler == null )
{
//Log.Warning("JumperSessiontimer - invalid distance ruler");
return;
}
SessionTime = TimeSpan.FromSeconds((JumperDistanceRuler.SessionTimer * 60).Clamp(0, float.MaxValue)).ToString(@"dd\:hh\:mm\:ss");
}
protected override int BuildHash()
{
IsOpen ^= Input.Pressed("slot2");
return HashCode.Combine(IsOpen, SessionTime);
}
}