Example #1
0
        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);
        }
Example #2
0
        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;
        }