40 lines
1.3 KiB
C#
40 lines
1.3 KiB
C#
using Robust.Client.AutoGenerated;
|
|
using Robust.Client.Graphics;
|
|
using Robust.Client.UserInterface.Controls;
|
|
using Robust.Client.UserInterface.XAML;
|
|
|
|
namespace Content.Client.Info.PlaytimeStats;
|
|
|
|
[GenerateTypedNameReferences]
|
|
public sealed partial class PlaytimeStatsEntry : ContainerButton
|
|
{
|
|
public TimeSpan Playtime { get; private set; } // new TimeSpan property
|
|
|
|
public PlaytimeStatsEntry(string role, TimeSpan playtime, StyleBox styleBox)
|
|
{
|
|
RobustXamlLoader.Load(this);
|
|
|
|
RoleLabel.Text = role;
|
|
Playtime = playtime; // store the TimeSpan value directly
|
|
PlaytimeLabel.Text = ConvertTimeSpanToHoursMinutes(playtime); // convert to string for display
|
|
BackgroundColorPanel.PanelOverride = styleBox;
|
|
}
|
|
|
|
private static string ConvertTimeSpanToHoursMinutes(TimeSpan timeSpan)
|
|
{
|
|
var hours = (int)timeSpan.TotalHours;
|
|
var minutes = timeSpan.Minutes;
|
|
|
|
var formattedTimeLoc = Loc.GetString("ui-playtime-time-format", ("hours", hours), ("minutes", minutes));
|
|
return formattedTimeLoc;
|
|
}
|
|
|
|
public void UpdateShading(StyleBoxFlat styleBox)
|
|
{
|
|
BackgroundColorPanel.PanelOverride = styleBox;
|
|
}
|
|
public string? PlaytimeText => PlaytimeLabel.Text;
|
|
|
|
public string? RoleText => RoleLabel.Text;
|
|
}
|