using QSB.Patches; using System.Reflection; namespace QSB.QuantumSync.Patches { public class ClientQuantumPatches : QSBPatch { public override QSBPatchTypes Type => QSBPatchTypes.OnNonServerClientConnect; public override void DoPatches() { QSBCore.Helper.HarmonyHelper.AddPrefix("ChangeQuantumState", typeof(ClientQuantumPatches), nameof(ReturnFalsePatch)); QSBCore.Helper.HarmonyHelper.AddPostfix("Start", typeof(ClientQuantumPatches), nameof(Moon_CollapseOnStart)); } public override void DoUnpatches() { QSBCore.Helper.HarmonyHelper.Unpatch("ChangeQuantumState"); QSBCore.Helper.HarmonyHelper.Unpatch("Start"); } public static void Moon_CollapseOnStart(QuantumMoon __instance) => __instance.GetType().GetMethod("SetSurfaceState", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(__instance, new object[] { -1 }); public static bool ReturnFalsePatch() => false; } }