diff --git a/Projects/CaptainOfIndustry/CykaOfIndustry/Class1.cs b/Projects/CaptainOfIndustry/CykaOfIndustry/Class1.cs index 000700b..9ec7df2 100644 --- a/Projects/CaptainOfIndustry/CykaOfIndustry/Class1.cs +++ b/Projects/CaptainOfIndustry/CykaOfIndustry/Class1.cs @@ -28,7 +28,7 @@ namespace CykaOfIndustry { public static ConfigEntry dumpDelayMultiplier; public static ConfigEntry transportSpeedMultiplier; public static ConfigEntry shipyardCargoMultiplier; - + public static ConfigEntry autosaveInterval; public static ConfigEntry debugMode; public void Awake() { @@ -65,7 +65,8 @@ namespace CykaOfIndustry { new ConfigDescription("Transport Speed Multiplier")); shipyardCargoMultiplier = Config.Bind("General", "Shipyard Cargo Multiplier", 1f, new ConfigDescription("Shipyard Cargo Multiplier")); - + autosaveInterval = Config.Bind("General", "Autosave Interval", 1, + new ConfigDescription("Autosave Interval in minutes")); debugMode = Config.Bind("General", "Debug Mode", false, new ConfigDescription("Debug Mode")); // shootingSpeedMultiplier.SettingChanged += (sender, args) => WeaponPropertiesManager.DoPatch(); diff --git a/Projects/CaptainOfIndustry/CykaOfIndustry/Patches.cs b/Projects/CaptainOfIndustry/CykaOfIndustry/Patches.cs index 7758355..55f5a05 100644 --- a/Projects/CaptainOfIndustry/CykaOfIndustry/Patches.cs +++ b/Projects/CaptainOfIndustry/CykaOfIndustry/Patches.cs @@ -21,6 +21,7 @@ using Mafi.Core.Population; using Mafi.Core.Ports.Io; using Mafi.Core.Products; using Mafi.Core.Prototypes; +using Mafi.Core.SaveGame; using Mafi.Core.Terrain; using Mafi.Core.Vehicles.Excavators; using Mafi.Core.World.Entities; @@ -504,6 +505,21 @@ namespace CykaOfIndustry { Traverse.Create(__instance).Field("CargoCapacity").SetValue(new Quantity( (int)(__instance.CargoCapacity.Value * Main.shipyardCargoMultiplier.Value))); } + [HarmonyPostfix] + [HarmonyPatch(typeof(SaveManager), "isTimeForAutoSave")] + static void autosaveInterval(ref bool __result, SaveManager __instance) { + if (Main.autosaveInterval.Value <= 0) { + __result = false; + return; + } + + var trav = Traverse.Create(__instance); + var lastSaveTime = trav.Field("m_lastSaveTime").GetValue(); + var num = (Environment.TickCount - lastSaveTime).Abs() / 1000L; + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: Autosave interval: {0}", num); + __result = num > Main.autosaveInterval.Value; + } } [HarmonyPatch(typeof(Excavator), "MineMixedAt")]