private void harmonyFix() { OvSpritebatchNew.initializePatch(instance); // PyUtils.initOverride("SObject", PyUtils.getTypeSDV("Object"),typeof(DrawFix1), new List<string>() { "draw", "drawInMenu", "drawWhenHeld", "drawAsProp" }); // PyUtils.initOverride("TemporaryAnimatedSprite", PyUtils.getTypeSDV("TemporaryAnimatedSprite"),typeof(DrawFix2), new List<string>() { "draw" }); instance.PatchAll(Assembly.GetExecutingAssembly()); instance.Patch(typeof(SaveGame).GetMethod("Load", BindingFlags.Static | BindingFlags.Public), prefix: new HarmonyMethod(typeof(PyTKMod).GetMethod("saveLoadedXMLFix", BindingFlags.Static | BindingFlags.Public))); PatchGeneratedSerializers(new Assembly[] { Assembly.GetExecutingAssembly() }); foreach (ConstructorInfo mc in typeof(GameLocation).GetConstructors()) { instance.Patch(mc, postfix: new HarmonyMethod(typeof(OvLocations).GetMethod("GameLocationConstructor", BindingFlags.Static | BindingFlags.Public))); } Helper.Events.GameLoop.DayStarted += GameLoop_DayStarted; if (Constants.TargetPlatform != GamePlatform.Android) { SetUpAssemblyPatch(instance, new XmlSerializer[] { SaveGame.farmerSerializer, SaveGame.locationSerializer, SaveGame.serializer }); } Helper.Events.GameLoop.GameLaunched += (s, e) => { Task.Run(() => { lock (waitForIt) PatchGeneratedSerializers(AppDomain.CurrentDomain.GetAssemblies().Where(a => a.FullName.Contains("Microsoft.GeneratedCode"))); }); }; setupLoadIntercepter(instance); }
private void harmonyFix() { OvSpritebatchNew.initializePatch(instance); // PyUtils.initOverride("SObject", PyUtils.getTypeSDV("Object"),typeof(DrawFix1), new List<string>() { "draw", "drawInMenu", "drawWhenHeld", "drawAsProp" }); // PyUtils.initOverride("TemporaryAnimatedSprite", PyUtils.getTypeSDV("TemporaryAnimatedSprite"),typeof(DrawFix2), new List<string>() { "draw" }); instance.PatchAll(Assembly.GetExecutingAssembly()); instance.Patch(typeof(SaveGame).GetMethod("Load", BindingFlags.Static | BindingFlags.Public), prefix: new HarmonyMethod(typeof(PyTKMod).GetMethod("saveLoadedXMLFix", BindingFlags.Static | BindingFlags.Public))); GenerateSerializers(); Helper.Events.GameLoop.DayStarted += (s, e) => saveWasLoaded = true; Helper.Events.GameLoop.ReturnedToTitle += (s, e) => saveWasLoaded = false; Helper.Events.GameLoop.DayStarted += GameLoop_DayStarted; }