From d0b0a45f3a9adf3cc993980bdfcea27d82162dad Mon Sep 17 00:00:00 2001 From: PhatPhuckDave Date: Sat, 19 Oct 2024 14:33:11 +0200 Subject: [PATCH] Add debug logs --- .../CykaOfIndustry/Patches.cs | 99 ++++++++++++++----- 1 file changed, 72 insertions(+), 27 deletions(-) diff --git a/Projects/CaptainOfIndustry/CykaOfIndustry/Patches.cs b/Projects/CaptainOfIndustry/CykaOfIndustry/Patches.cs index e4325e9..8517e30 100644 --- a/Projects/CaptainOfIndustry/CykaOfIndustry/Patches.cs +++ b/Projects/CaptainOfIndustry/CykaOfIndustry/Patches.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Reflection; using System.Reflection.Emit; using HarmonyLib; using Mafi; @@ -24,7 +23,6 @@ using Mafi.Core.Products; using Mafi.Core.Prototypes; using Mafi.Core.Terrain; using Mafi.Core.Vehicles.Excavators; -using Mafi.Core.Vehicles.Jobs; using Mafi.Core.World.Entities; namespace CykaOfIndustry { @@ -33,36 +31,46 @@ namespace CykaOfIndustry { [HarmonyPrefix] [HarmonyPatch(typeof(ExcavatorProtoBuilder.ExcavatorProtoBuilderState), "SetCapacity")] static void excavatorCapacityMultiplier(ref int quantity) { -// Console.WriteLine("IndustrialCyka: Old excavator capacity: {0}", quantity); + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: Old excavator capacity {0}", quantity); quantity *= Main.excavatorCapacityMultiplier.Value; -// Console.WriteLine("IndustrialCyka: Old excavator capacity: {0}", quantity); + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: New excavator capacity {0}", quantity); } [HarmonyPrefix] [HarmonyPatch(typeof(ExcavatorProtoBuilder.ExcavatorProtoBuilderState), "SetMinedThicknessByDistanceMeters")] static void excavatorMiningAreaMultiplier(ref float[] thicknessMeters) { for (int i = 0; i < thicknessMeters.Length; i++) { -// Console.WriteLine("IndustrialCyka: Old mining area: {0}", thicknessMeters[i]); + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: Old mining area {0}", thicknessMeters[i]); thicknessMeters[i] *= Main.excavatorMiningAreaMultiplier.Value; -// Console.WriteLine("IndustrialCyka: New mining area: {0}", thicknessMeters[i]); + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: New mining area {0}", thicknessMeters[i]); } } [HarmonyPrefix] [HarmonyPatch(typeof(ExcavatorProtoBuilder.ExcavatorProtoBuilderState), "SetMaxMiningDistance")] static void excavatorReachMultiplier(ref RelTile1i minMiningDistance, ref RelTile1i maxMiningDistance) { - Console.WriteLine("Min distance: {0}, max distance: {1}", minMiningDistance, maxMiningDistance); + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: Old min mining distance {0}, max mining distance {1}", + minMiningDistance, maxMiningDistance); minMiningDistance = new RelTile1i((int)(minMiningDistance.Value * Main.excavatorMinReachMultiplier.Value)); maxMiningDistance = new RelTile1i((int)(maxMiningDistance.Value * Main.excavatorMaxReachMultiplier.Value)); - Console.WriteLine("Min distance: {0}, max distance: {1}", minMiningDistance, maxMiningDistance); + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: New min mining distance {0}, max mining distance {1}", + minMiningDistance, maxMiningDistance); } [HarmonyPrefix] [HarmonyPatch(typeof(TruckProtoBuilder.TruckProtoBuilderState), "SetCapacity")] static void truckCapacityMultiplier(ref int quantity) { -// Console.WriteLine("IndustrialCyka: Old truck capacity: {0}", quantity); + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: Old truck capacity {0}", quantity); quantity *= Main.truckCapacityMultiplier.Value; -// Console.WriteLine("IndustrialCyka: New truck capacity: {0}", quantity); + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: New truck capacity {0}", quantity); } // [HarmonyPrefix] @@ -80,9 +88,11 @@ namespace CykaOfIndustry { typeof(CargoShipModuleProto.Gfx) })] static void cargoShipCapacityMultiplier(CargoShipModuleProto __instance) { -// Console.WriteLine("IndustrialCyka: Old ship capacity: {0}", __instance.Capacity.Value); + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: Old ship capacity {0}", __instance.Capacity); __instance.Capacity = new Quantity(__instance.Capacity.Value * Main.cargoShipCapacityMultiplier.Value); -// Console.WriteLine("IndustrialCyka: New ship capacity: {0}", __instance.Capacity.Value); + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: New ship capacity {0}", __instance.Capacity); } // No workey... idk how it's supposed to work, speed is always 1 or 100% @@ -133,8 +143,10 @@ namespace CykaOfIndustry { typeof(IEnumerable) })] static void storageCapacityMultiplier(StorageProto __instance) { -// Console.WriteLine("IndustrialCyka: Old storage capacity: {0}", __instance.Capacity.Value); -// Console.WriteLine("IndustrialCyka: Old storage transfer limit: {0}", __instance.TransferLimit.Value); + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: Old storage capacity {0}", __instance.Capacity); + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: Old storage transfer limit {0}", __instance.TransferLimit); Traverse traverse = Traverse.Create(__instance); traverse.Field("Capacity") @@ -142,17 +154,21 @@ namespace CykaOfIndustry { traverse.Field("TransferLimit").SetValue(new Quantity(10000)); traverse.Field("TransferLimitDuration").SetValue(Duration.FromTicks(1)); -// Console.WriteLine("IndustrialCyka: New storage capacity: {0}", __instance.Capacity.Value); -// Console.WriteLine("IndustrialCyka: New storage transfer limit: {0}", __instance.TransferLimit.Value); + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: New storage capacity {0}", __instance.Capacity); + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: New storage transfer limit {0}", __instance.TransferLimit); } [HarmonyPrefix] [HarmonyPatch(typeof(UpointsManager), "GenerateUnity")] static void unityGenerationMultiplier(Proto.ID categoryId, ref Upoints generated) { -// Console.WriteLine("IndustrialCyka: Old generated {0} unity", generated.Value); + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: Old generated {0} unity", generated.Value); Fix32 multi = Fix32.FromFloat(Main.unityGenerationMultiplier.Value); generated = new Upoints(generated.Value * multi); -// Console.WriteLine("IndustrialCyka: New generated {0} unity", generated.Value); + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: New generated {0} unity", generated.Value); } [HarmonyTranspiler] @@ -206,8 +222,12 @@ namespace CykaOfIndustry { return; } + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: Old buffer capacity {0}", newCapacity); Quantity newNewCapacity = new Quantity((int)(newCapacity.Value * Main.bufferCapacityMultiplier.Value)); newCapacity = newNewCapacity; + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: New buffer capacity {0}", newCapacity); } [HarmonyPostfix] @@ -229,14 +249,16 @@ namespace CykaOfIndustry { typeof(IEnumerable), })] static void depotTransferSpeedMultiplier(CargoDepotModuleProto __instance) { - // Console.WriteLine("IndustrialCyka: Old storage capacity: {0}", __instance.Capacity.Value); + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: Old depot transfer speed {0}", __instance.QuantityPerExchange); Traverse traverse = Traverse.Create(__instance); traverse.Field("QuantityPerExchange") .SetValue(new Quantity((int)(__instance.QuantityPerExchange.Value * Main.depotTransferSpeedMultiplier.Value))); -// Console.WriteLine("IndustrialCyka: New storage capacity: {0}", __instance.Capacity.Value); + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: New depot transfer speed {0}", __instance.QuantityPerExchange); } [HarmonyPostfix] @@ -258,7 +280,9 @@ namespace CykaOfIndustry { typeof(IEnumerable), })] static void worldMineSpeedMultiplier(WorldMapMineProto __instance) { - // Console.WriteLine("Before: {0}", __instance.ProducedProductPerStep.Quantity.Value); + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: Old world mine speed {0}", + __instance.ProducedProductPerStep.Quantity); ProductQuantity newProductQuantity = new ProductQuantity(__instance.ProducedProductPerStep.Product, new Quantity((int)(__instance.ProducedProductPerStep.Quantity.Value * Main.worldMineSpeedMultiplier.Value))); @@ -266,7 +290,9 @@ namespace CykaOfIndustry { Traverse.Create(__instance) .Field("ProducedProductPerStep") .SetValue(newProductQuantity); - // Console.WriteLine("After: {0}", __instance.ProducedProductPerStep.Quantity.Value); + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: New world mine speed {0}", + __instance.ProducedProductPerStep.Quantity); } [HarmonyPostfix] @@ -297,9 +323,8 @@ namespace CykaOfIndustry { int newLevelsPerUpgrade = 10; int newMaxLevel = (int)Math.Ceiling((double)maxLevel / newLevelsPerUpgrade) * newLevelsPerUpgrade; - // Console.WriteLine("Level: {0}, MaxLevel: {1}, LevelsPerUpgrade: {2}", level, maxLevel, levelsPerUpgrade); - // Console.WriteLine("NewMaxLevel: {0}", newMaxLevel); - + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: Old max level {0}, new max level {1}", maxLevel, newMaxLevel); traverse.Field("MaxLevel").SetValue(newMaxLevel); traverse.Field("LevelsPerUpgrade").SetValue(newLevelsPerUpgrade); } @@ -341,6 +366,8 @@ namespace CykaOfIndustry { if (codes[i].opcode.Equals(matchTable[matches])) { if (matches == totalMatch - 1) { + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: Patching world mine level increment"); codes[i + 4].opcode = OpCodes.Add; codes[i + 5].opcode = OpCodes.Brtrue_S; break; @@ -370,8 +397,12 @@ namespace CykaOfIndustry { typeof(SettlementHousingModuleProto.Gfx), })] static void housingCapacityMultiplier(SettlementHousingModuleProto __instance) { + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: Old housing capacity {0}", __instance.Capacity); Traverse.Create(__instance).Field("Capacity").Value = (int)(__instance.Capacity * Main.housingCapacityMultiplier.Value); + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: New housing capacity {0}", __instance.Capacity); } [HarmonyPostfix] @@ -390,9 +421,13 @@ namespace CykaOfIndustry { typeof(IEnumerable), })] static void dumpDelayMultiplier(StackerProto __instance) { + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: Old dumpDelay {0}", __instance.DumpDelay); Duration newDelay = new Duration(Math.Max((int)(__instance.DumpDelay.Ticks * Main.dumpDelayMultiplier.Value), 1)); Traverse.Create(__instance).Field("DumpDelay").SetValue(newDelay); + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: New dumpDelay {0}", __instance.DumpDelay); } [HarmonyPrefix] @@ -435,9 +470,14 @@ namespace CykaOfIndustry { if (IoPort.MAX_TRANSFER_PER_TICK.Value < 10000) typeof(IoPort).GetField("MAX_TRANSFER_PER_TICK").SetValue(null, new Quantity(10000)); + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: Old maxQuantityPerTransportedProduct {0}", + maxQuantityPerTransportedProduct); maxQuantityPerTransportedProduct *= 1000; maxQuantityPerTransportedProduct = maxQuantityPerTransportedProduct.Min(new Quantity(10000)); - Console.WriteLine("maxQuantityPerTransportedProduct {0}", maxQuantityPerTransportedProduct); + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: New maxQuantityPerTransportedProduct {0}", + maxQuantityPerTransportedProduct); speedPerTick *= 10; transportedProductsSpacing = speedPerTick; @@ -469,9 +509,13 @@ namespace CykaOfIndustry { [HarmonyPatch(typeof(Excavator), "MineMixedAt")] public class MineMixedAtPatch { public static Dictionary originalCapacity = new Dictionary(); + public static Dictionary> originalMinedThicknessByDistance = new Dictionary>(); + public static Dictionary originalMineTileIterations = + new Dictionary(); + static void Prefix(ref Excavator __instance) { if (!originalCapacity.ContainsKey(__instance)) { originalCapacity.Add(__instance, __instance.Prototype.Capacity); @@ -480,7 +524,8 @@ namespace CykaOfIndustry { var trav = Traverse.Create(__instance.Prototype); trav.Field("Capacity") .SetValue(new Quantity(originalCapacity[__instance].Value * Main.excavatorCapacityMultiplier.Value)); - // Console.WriteLine("IndustrialCyka: Excavator capacity: {0}", __instance.Prototype.Capacity.Value); + if (Main.debugMode.Value) + Console.WriteLine("IndustrialCyka: Excavator capacity: {0}", __instance.Prototype.Capacity.Value); if (!originalMinedThicknessByDistance.ContainsKey(__instance)) { originalMinedThicknessByDistance.Add(__instance,