working on multiplayer
This commit is contained in:
50
Runtime/Engine/Code/Steam/SteamManager.cs
Normal file
50
Runtime/Engine/Code/Steam/SteamManager.cs
Normal file
@@ -0,0 +1,50 @@
|
||||
using System;
|
||||
using System.Threading;
|
||||
using Cysharp.Threading.Tasks;
|
||||
using R3;
|
||||
using RebootKit.Engine.Main;
|
||||
using RebootKit.Engine.Multiplayer;
|
||||
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;
|
||||
|
||||
public static INetworkTransport NetworkTransport { get; private set; } = new SteamNetworkTransport();
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
NetworkTransport.Initialize();
|
||||
|
||||
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...");
|
||||
|
||||
NetworkTransport.Shutdown();
|
||||
SteamClient.Shutdown();
|
||||
|
||||
IsInitialized = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user