r2mods/ilspy_dump/ror2_csproj/RoR2/EOSPlatformManager.cs

112 lines
2.8 KiB
C#
Raw Normal View History

2024-10-04 07:26:37 +00:00
using System;
using Epic.OnlineServices;
using Epic.OnlineServices.Logging;
using Epic.OnlineServices.Platform;
using UnityEngine;
namespace RoR2;
public class EOSPlatformManager : PlatformManager
{
private static PlatformInterface _platformInterface;
private string _productName = Application.productName;
private string _productVersion = Application.version;
private string _productId = "3bf8fc77540f41b5bb253d9563eec679";
private string _sandboxId = "0dfcaeede0214b80b597f08fd7d64b1b";
private string _deploymentId = "f2ca672e660a4792a17b124291408566";
private string _clientId;
private string _clientSecret;
private EOSLibraryManager libManager;
public EOSPlatformManager()
{
libManager = new EOSLibraryManager();
InitializePlatformInterface();
SetupLogging();
CreatePlatformInterface();
}
public override void InitializePlatformManager()
{
RoR2Application.onShutDown = (Action)Delegate.Combine(RoR2Application.onShutDown, new Action(Shutdown));
RoR2Application.onUpdate += UpdatePlatformManager;
}
public static PlatformInterface GetPlatformInterface()
{
if (_platformInterface == null)
{
throw new Exception("_platformInterface has not been set. Initialize EOSPlatformManager before attempting to access _platformInterface.");
}
return _platformInterface;
}
private void InitializePlatformInterface()
{
InitializeOptions initializeOptions = default(InitializeOptions);
initializeOptions.ProductName = _productName;
initializeOptions.ProductVersion = _productVersion;
InitializeOptions options = initializeOptions;
Result result = PlatformInterface.Initialize(ref options);
if (result != 0 && result != Result.AlreadyConfigured)
{
throw new Exception("Failed to initialize platform: " + result);
}
}
private void SetupLogging()
{
LoggingInterface.SetLogLevel(LogCategory.AllCategories, LogLevel.VeryVerbose);
LoggingInterface.SetCallback(delegate(ref LogMessage logMessage)
{
System.Console.WriteLine(logMessage.Message);
});
}
private void CreatePlatformInterface()
{
Options options = default(Options);
options.ProductId = _productId;
options.SandboxId = _sandboxId;
options.DeploymentId = _deploymentId;
options.ClientCredentials = new ClientCredentials
{
ClientId = "xyza7891fuF5aodDdJ1ITnkYeRbyJbnT",
ClientSecret = "QMwgx1LJIkRt25iA9YjXldcMD/8aAeQTke7a5FVU3no"
};
Options options2 = options;
_platformInterface = PlatformInterface.Create(ref options2);
if (_platformInterface == null)
{
throw new Exception("Failed to create platform");
}
}
private void Shutdown()
{
if (_platformInterface != null)
{
_platformInterface.Release();
_platformInterface = null;
PlatformInterface.Shutdown();
}
libManager.Shutdown();
}
protected override void UpdatePlatformManager()
{
if (_platformInterface != null)
{
_platformInterface.Tick();
}
}
}