v1.3.0.1 (Epic Store release)

This commit is contained in:
Regalis11
2024-03-28 18:34:33 +02:00
parent 81ca8637be
commit 3791670c42
269 changed files with 13160 additions and 2966 deletions
@@ -0,0 +1,45 @@
namespace Barotrauma;
public static partial class EosInterface
{
public enum AchievementUnlockError
{
Unknown,
InvalidUser,
EosNotInitialized,
TimedOut,
InvalidParameters,
NotFound
}
public enum IngestStatError
{
Unknown,
InvalidUser,
EosNotInitialized,
TimedOut,
InvalidParameters,
NotFound
}
public enum QueryStatsError
{
Unknown,
InvalidUser,
EosNotInitialized,
TimedOut,
InvalidParameters,
NotFound
}
public enum QueryAchievementsError
{
Unknown,
InvalidUser,
InvalidProductUserID,
EosNotInitialized,
TimedOut,
InvalidParameters,
NotFound
}
}
@@ -0,0 +1,55 @@
using System.Collections.Immutable;
using System.Threading.Tasks;
namespace Barotrauma;
public static partial class EosInterface
{
public static class Achievements
{
private static Implementation? LoadedImplementation => Core.LoadedImplementation;
public static async Task<Result<uint, AchievementUnlockError>> UnlockAchievements(
params Identifier[] achievementIds)
=> LoadedImplementation.IsInitialized()
? await LoadedImplementation.UnlockAchievements(achievementIds)
: Result.Failure(AchievementUnlockError.EosNotInitialized);
public static async Task<Result<Unit, IngestStatError>> IngestStats(
params (AchievementStat Stat, int IngestAmount)[] stats)
=> LoadedImplementation.IsInitialized()
? await LoadedImplementation.IngestStats(stats)
: Result.Failure(IngestStatError.EosNotInitialized);
public static Task<Result<ImmutableDictionary<AchievementStat, int>, QueryStatsError>> QueryStats(
params AchievementStat[] stats)
=> QueryStats(stats.ToImmutableArray());
public static async Task<Result<ImmutableDictionary<AchievementStat, int>, QueryStatsError>> QueryStats(
ImmutableArray<AchievementStat> stats)
=> LoadedImplementation.IsInitialized()
? await LoadedImplementation.QueryStats(stats)
: Result.Failure(QueryStatsError.EosNotInitialized);
public static async Task<Result<ImmutableDictionary<Identifier, double>, QueryAchievementsError>>
QueryPlayerAchievements()
=> LoadedImplementation.IsInitialized()
? await LoadedImplementation.QueryPlayerAchievements()
: Result.Failure(QueryAchievementsError.EosNotInitialized);
}
internal abstract partial class Implementation
{
public abstract Task<Result<uint, AchievementUnlockError>> UnlockAchievements(
params Identifier[] achievementIds);
public abstract Task<Result<Unit, IngestStatError>> IngestStats(
params (AchievementStat Stat, int IngestAmount)[] stats);
public abstract Task<Result<ImmutableDictionary<AchievementStat, int>, QueryStatsError>> QueryStats(
ImmutableArray<AchievementStat> stats);
public abstract Task<Result<ImmutableDictionary<Identifier, double>, QueryAchievementsError>>
QueryPlayerAchievements();
}
}