using System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Logging; using BepInEx.Unity.IL2CPP; using HarmonyLib; using Il2CppInterop.Runtime.InteropTypes.Arrays; using LevelGeneration; using Microsoft.CodeAnalysis; using SNetwork; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETCoreApp,Version=v6.0", FrameworkDisplayName = ".NET 6.0")] [assembly: AssemblyCompany("NoCrankNoStart")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+d2fc3aaedd7473db0d43e8d9842442970145c860")] [assembly: AssemblyProduct("NoCrankNoStart")] [assembly: AssemblyTitle("NoCrankNoStart")] [assembly: AssemblyVersion("1.0.0.0")] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } } namespace NoCrankNoStart { internal static class DinoLogger { private static ManualLogSource logger = Logger.CreateLogSource("NoCrankNoStart"); public static void Log(string format, params object[] args) { Log(string.Format(format, args)); } public static void Log(string str) { if (logger != null) { logger.Log((LogLevel)8, (object)str); } } public static void Warning(string format, params object[] args) { Warning(string.Format(format, args)); } public static void Warning(string str) { if (logger != null) { logger.Log((LogLevel)4, (object)str); } } public static void Error(string format, params object[] args) { Error(string.Format(format, args)); } public static void Error(string str) { if (logger != null) { logger.Log((LogLevel)2, (object)str); } } public static void Debug(string format, params object[] args) { Debug(string.Format(format, args)); } public static void Debug(string str) { if (logger != null) { logger.Log((LogLevel)32, (object)str); } } } [BepInPlugin("hirnukuono.NoCrankNoStart", "NoCrankNoStart", "1.0.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] internal sealed class EntryPoint : BasePlugin { public const string MODNAME = "NoCrankNoStart"; public override void Load() { //IL_0005: Unknown result type (might be due to invalid IL or missing references) new Harmony("NoCrankNoStart").PatchAll(); ((BasePlugin)this).Log.LogMessage((object)"Loaded NoCrankNoStart"); } } [HarmonyPatch] internal static class TerminalPatch { [HarmonyPatch(typeof(LG_ComputerTerminal), "OnStateChange")] [HarmonyWrapSafe] [HarmonyPostfix] private static void Post_StateChange(LG_ComputerTerminal __instance, pComputerTerminalState newState) { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Invalid comparison between Unknown and I4 //IL_0068: Unknown result type (might be due to invalid IL or missing references) foreach (TERM_Command item in (Il2CppArrayBase)(object)newState.RemovedCommands) { if ((int)item == 30) { return; } } if (newState.TryHideCommand((TERM_Command)30)) { newState.TryAddTerminalCommandRule((TERM_Command)30, (TERM_CommandRule)2); if (SNet.IsMaster) { __instance.m_stateReplicator.State = newState; } else { __instance.m_stateReplicator.m_statePacket_Dropin.Send(newState, __instance.m_stateReplicator.m_channelType); } } } } }