working on multiplayer

This commit is contained in:
2025-06-24 14:45:45 +02:00
parent b1050f627b
commit 5a813f212c
67 changed files with 499 additions and 127 deletions

View 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;
}
}
}