53 lines
1.7 KiB
C#
53 lines
1.7 KiB
C#
using Epic.OnlineServices;
|
|
using Epic.OnlineServices.Stats;
|
|
|
|
namespace RoR2;
|
|
|
|
public class EOSStatManager
|
|
{
|
|
public static class StatNames
|
|
{
|
|
public const string kFastestWeeklyRun = "FASTESTWEEKLYRUN";
|
|
}
|
|
|
|
private static StatsInterface Interface;
|
|
|
|
public EOSStatManager()
|
|
{
|
|
Interface = EOSPlatformManager.GetPlatformInterface().GetStatsInterface();
|
|
}
|
|
|
|
public static void IngestStat(IngestData[] statsToIngest, object callbackData = null, OnIngestStatCompleteCallback callback = null)
|
|
{
|
|
IngestStatOptions ingestStatOptions = default(IngestStatOptions);
|
|
ingestStatOptions.LocalUserId = EOSLoginManager.loggedInProductId;
|
|
ingestStatOptions.Stats = statsToIngest;
|
|
ingestStatOptions.TargetUserId = EOSLoginManager.loggedInProductId;
|
|
IngestStatOptions options = ingestStatOptions;
|
|
Interface.IngestStat(ref options, callbackData, callback);
|
|
}
|
|
|
|
public static void QueryStats(ref QueryStatsOptions queryStatsOptions, object callbackData = null, OnQueryStatsCompleteCallback callback = null)
|
|
{
|
|
Interface.QueryStats(ref queryStatsOptions, callbackData, callback);
|
|
}
|
|
|
|
public static Stat GetStat(string statName, ProductUserId targetUserId)
|
|
{
|
|
CopyStatByNameOptions copyStatByNameOptions = default(CopyStatByNameOptions);
|
|
copyStatByNameOptions.Name = statName;
|
|
copyStatByNameOptions.TargetUserId = targetUserId;
|
|
CopyStatByNameOptions options = copyStatByNameOptions;
|
|
Interface.CopyStatByName(ref options, out var outStat);
|
|
return outStat.Value;
|
|
}
|
|
|
|
public static uint GetStatsCount(ProductUserId targetUserId)
|
|
{
|
|
GetStatCountOptions getStatCountOptions = default(GetStatCountOptions);
|
|
getStatCountOptions.TargetUserId = targetUserId;
|
|
GetStatCountOptions options = getStatCountOptions;
|
|
return Interface.GetStatsCount(ref options);
|
|
}
|
|
}
|