Files
RebootKit/Runtime/Engine/Code/Steam/SteamManager.cs
2025-06-30 21:27:55 +02:00

44 lines
1.3 KiB
C#

using System;
using System.Threading;
using Cysharp.Threading.Tasks;
using R3;
using RebootKit.Engine.Main;
using Steamworks;
using Logger = RebootKit.Engine.Foundation.Logger;
namespace RebootKit.Engine.Steam {
static class SteamManager {
static readonly Logger s_Logger = new Logger(nameof(SteamManager));
public static bool IsInitialized { get; private set; } = false;
internal static async UniTask InitializeAsync(CancellationToken cancellationToken = default) {
s_Logger.Info("Initializing Steam Manager...");
IsInitialized = false;
try {
SteamClient.Init(RR.EngineConfig.steamAppID, true);
} catch (Exception ex) {
s_Logger.Error($"Failed to initialize Steam Client: {ex.Message}");
return;
}
IsInitialized = true;
await UniTask.Yield(cancellationToken);
}
internal static void Shutdown() {
if (!IsInitialized) {
s_Logger.Error("Steam Manager is not initialized. Skipping operation.");
return;
}
s_Logger.Info("Shutting down Steam Manager...");
SteamClient.Shutdown();
IsInitialized = false;
}
}
}