mirror of
https://github.com/Facepunch/sbox-public.git
synced 2025-12-23 22:48:07 -05:00
* Stop generating solutions via -test flag add -generatesolution * Add TestAppSystem remove Application.InitUnitTest Avoids some hacks and also makes sure our tests are as close to a real AppSystem as possible. * Add shutdown unit test shuts down an re-inits the engine * Properly dispose native resources hold by managed during shutdown Should fix a bunch of crashes * Fix filesystem and networking tests * StandaloneTest does proper Game Close * Make sure package tests clean up properly * Make sure menu scene and resources are released on shutdown * Report leaked scenes on shutdown * Ensure DestroyImmediate is not used on scenes * Fix unmounting in unit tests not clearing native refs * Force destroy native resource on ResourceLib Clear
46 lines
1.2 KiB
C#
46 lines
1.2 KiB
C#
using Sandbox.Engine;
|
|
using System;
|
|
using System.Diagnostics;
|
|
using System.Linq;
|
|
|
|
namespace Sandbox;
|
|
|
|
public static class Launcher
|
|
{
|
|
public static int Main()
|
|
{
|
|
if ( HasCommandLineSwitch( "-generatesolution" ) )
|
|
{
|
|
NetCore.InitializeInterop( Environment.CurrentDirectory );
|
|
Bootstrap.InitMinimal( Environment.CurrentDirectory );
|
|
Project.InitializeBuiltIn( false ).GetAwaiter().GetResult();
|
|
Project.GenerateSolution().GetAwaiter().GetResult();
|
|
Managed.SandboxEngine.NativeInterop.Free();
|
|
EngineFileSystem.Shutdown();
|
|
return 0;
|
|
}
|
|
|
|
if ( !HasCommandLineSwitch( "-project" ) && !HasCommandLineSwitch( "-test" ) )
|
|
{
|
|
// we pass the command line, so we can pass it on to the sbox-launcher (for -game etc)
|
|
ProcessStartInfo info = new ProcessStartInfo( "sbox-launcher.exe", Environment.CommandLine );
|
|
info.UseShellExecute = true;
|
|
info.CreateNoWindow = true;
|
|
info.WorkingDirectory = System.Environment.CurrentDirectory;
|
|
|
|
Process.Start( info );
|
|
return 0;
|
|
}
|
|
|
|
var appSystem = new EditorAppSystem();
|
|
appSystem.Run();
|
|
|
|
return 0;
|
|
}
|
|
|
|
private static bool HasCommandLineSwitch( string switchName )
|
|
{
|
|
return Environment.GetCommandLineArgs().Any( arg => arg.Equals( switchName, StringComparison.OrdinalIgnoreCase ) );
|
|
}
|
|
}
|