namespace Sandbox
{
///
/// We might have multiple rich presence systems running (Steam, Discord, ...)
///
internal interface IRichPresenceSystem
{
public void Poll();
}
///
/// Rich Presence System - polls rich presence state periodically.
/// All in one place so we don't update rich presence in 100 places
///
internal static class RichPresenceSystem
{
///
/// The current rich presence system
///
static IRichPresenceSystem Current { get; set; } = new SteamRichPresenceSystem();
static RealTimeUntil TimeUntilNextPoll = 0;
///
/// Called by ClientDll Tick to poll active rich presence systems
///
internal static void Tick()
{
if ( TimeUntilNextPoll )
{
Current.Poll();
// Poll every 5 seconds
TimeUntilNextPoll = 5;
}
}
}
}