
All checks were successful
Build / Compute Version (push) Successful in 4s
Build / Build Nuget package (CringeBootstrap.Abstractions) (push) Successful in 2m47s
Build / Build Nuget package (CringePlugins) (push) Successful in 5m31s
Build / Build Nuget package (NuGet) (push) Successful in 6m2s
Build / Build Nuget package (SharedCringe) (push) Successful in 7m25s
Build / Build Launcher (push) Successful in 9m11s
30 lines
1.0 KiB
C#
30 lines
1.0 KiB
C#
using System.Collections.Concurrent;
|
|
using System.Collections.Immutable;
|
|
using System.Reflection;
|
|
using HarmonyLib;
|
|
using VRage.Scripting;
|
|
|
|
namespace CringeLauncher.Patches;
|
|
|
|
[HarmonyPatch]
|
|
public static class ScriptCompilerInitializationPatch
|
|
{
|
|
private static MethodInfo TargetMethod()
|
|
{
|
|
return AccessTools.Method(Type.GetType("VRage.Scripting.MyVRageScriptingInternal, VRage.Scripting", true),
|
|
"Initialize");
|
|
}
|
|
|
|
private static bool Prefix(Thread updateThread, Type[] referencedTypes, string[] symbols)
|
|
{
|
|
MyModWatchdog.Init(updateThread);
|
|
MyScriptCompiler.Static.AddImplicitIngameNamespacesFromTypes(referencedTypes);
|
|
MyScriptCompiler.Static.AddConditionalCompilationSymbols(symbols);
|
|
|
|
using var batch = MyScriptCompiler.Static.Whitelist.OpenBatch();
|
|
batch.AllowTypes(MyWhitelistTarget.ModApi, typeof(ConcurrentQueue<>));
|
|
batch.AllowNamespaceOfTypes(MyWhitelistTarget.Both, typeof(ImmutableArray));
|
|
|
|
return false;
|
|
}
|
|
} |