ui/timer/timer.razor

A Razor UI component for a game timer. It displays minutes:seconds from a game.g.OverAt value and updates each frame when the game is active.

Networking
@using System
@inherits PanelComponent

<root> <div class="timer"> @t</div> </root>

@code
{

[Property] public game g {get;set;}
string t = "3:00";

protected override void OnUpdate()
{ if (!g.IsActive) return;
int m = (int)g.OverAt / 60;
int s = (int)g.OverAt % 60;

if (s > 9)
{t = $"{m}:{s}"; return;}
t = $"{m}:0{s}";
}

protected override int BuildHash() => HashCode.Combine(t);
}