Files
se-launcher/CringeBootstrap/Program.cs
pas2704 94fc8a55c0
All checks were successful
Build / Compute Version (push) Successful in 6s
Build / Build Nuget package (CringeBootstrap.Abstractions) (push) Successful in 4m4s
Build / Build Nuget package (NuGet) (push) Successful in 4m7s
Build / Build Nuget package (SharedCringe) (push) Successful in 4m5s
Build / Build Nuget package (CringePlugins) (push) Successful in 4m25s
Build / Build Launcher (push) Successful in 5m12s
Added options to disable launcher/plugin auto updates
Also ran cleanup
2025-06-06 01:35:09 -04:00

55 lines
1.6 KiB
C#

using System.Diagnostics;
using System.Reflection;
using System.Runtime.Loader;
using CringeBootstrap;
using CringeBootstrap.Abstractions;
using Velopack;
#if DEBUG
while (!Debugger.IsAttached)
Thread.Sleep(100);
#endif
VelopackApp.Build().Run();
if (args.Length == 0)
{
var path = Path.Join(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "CringeLauncher",
"current", "CringeBootstrap.exe");
Console.Write("Set your Launch Options under ");
Console.ForegroundColor = ConsoleColor.Cyan;
Console.Write("Space Engineers -> Properties -> Launch Options");
Console.ResetColor();
Console.WriteLine(" in steam and launch the game as usual");
Console.WriteLine();
Console.WriteLine();
Console.ForegroundColor = ConsoleColor.Gray;
Console.WriteLine($"\"{path}\" %command%");
Console.ResetColor();
Console.Read();
return;
}
#if DEBUG
AssemblyLoadContext.Default.Resolving += (loadContext, name) =>
{
Debug.WriteLine($"resolving {name} in {loadContext}");
return null;
};
#endif
var dir = Path.GetDirectoryName(args[0])!;
var context = new GameDirectoryAssemblyLoadContext(dir);
// a list of assemblies which are not in the game binaries but reference them
context.AddDependencyOverride("CringeLauncher");
context.AddDependencyOverride("CringePlugins");
context.AddDependencyOverride("EOSSDK");
var launcher = context.LoadFromAssemblyName(new AssemblyName("CringeLauncher"));
using var corePlugin = (ICorePlugin) launcher.CreateInstance("CringeLauncher.Launcher")!;
corePlugin.Initialize(args);
corePlugin.Run();