From c7a55276e2e3712ab566f4bf38b03fbd9fa3e40c Mon Sep 17 00:00:00 2001 From: PhatPhuckDave Date: Sat, 19 Oct 2024 14:30:12 +0200 Subject: [PATCH] Fix issue where excavators do not properly excavate --- .../CaptainOfIndustry/CykaOfIndustry/Class1.cs | 4 ++++ .../CaptainOfIndustry/CykaOfIndustry/Patches.cs | 17 ++++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/Projects/CaptainOfIndustry/CykaOfIndustry/Class1.cs b/Projects/CaptainOfIndustry/CykaOfIndustry/Class1.cs index cebfd36..000700b 100644 --- a/Projects/CaptainOfIndustry/CykaOfIndustry/Class1.cs +++ b/Projects/CaptainOfIndustry/CykaOfIndustry/Class1.cs @@ -28,6 +28,8 @@ namespace CykaOfIndustry { public static ConfigEntry dumpDelayMultiplier; public static ConfigEntry transportSpeedMultiplier; public static ConfigEntry shipyardCargoMultiplier; + + public static ConfigEntry debugMode; public void Awake() { excavatorCapacityMultiplier = Config.Bind("General", "Excavator Capacity Multiplier", 1, @@ -63,6 +65,8 @@ namespace CykaOfIndustry { new ConfigDescription("Transport Speed Multiplier")); shipyardCargoMultiplier = Config.Bind("General", "Shipyard Cargo Multiplier", 1f, new ConfigDescription("Shipyard Cargo Multiplier")); + + debugMode = Config.Bind("General", "Debug Mode", false, new ConfigDescription("Debug Mode")); // shootingSpeedMultiplier.SettingChanged += (sender, args) => WeaponPropertiesManager.DoPatch(); // energyGenMultiplier.SettingChanged += (sender, args) => GeneratorPropertiesManager.DoPatch(); diff --git a/Projects/CaptainOfIndustry/CykaOfIndustry/Patches.cs b/Projects/CaptainOfIndustry/CykaOfIndustry/Patches.cs index efcde10..e4325e9 100644 --- a/Projects/CaptainOfIndustry/CykaOfIndustry/Patches.cs +++ b/Projects/CaptainOfIndustry/CykaOfIndustry/Patches.cs @@ -491,7 +491,22 @@ namespace CykaOfIndustry { .SetValue(originalMinedThicknessByDistance[__instance].Select(t => new ThicknessTilesF((int)(t.Value.ToFloat() * Main.excavatorMiningAreaMultiplier.Value))) .ToImmutableArray()); - // Console.WriteLine("IndustrialCyka: Excavator mined thickness: {0}", __instance.Prototype.MinedThicknessByDistance); + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: Excavator mined thickness: {0}", + __instance.Prototype.MinedThicknessByDistance); + + var trav2 = Traverse.Create(__instance.Prototype.MineTimings); + if (!originalMineTileIterations.ContainsKey(__instance.Prototype.MineTimings)) { + originalMineTileIterations.Add(__instance.Prototype.MineTimings, + trav2.Field("MineTileIterations").GetValue()); + } + + var newValue = (int)(originalMineTileIterations[__instance.Prototype.MineTimings] * + Main.excavatorMineTileIterationsMultiplier.Value); + trav2.Field("MineTileIterations").SetValue(newValue); + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: Excavator mine tile iterations 2: {0}", + trav2.Field("MineTileIterations").GetValue()); } } } \ No newline at end of file