Add debug logs

This commit is contained in:
2024-10-19 14:33:11 +02:00
parent c7a55276e2
commit d0b0a45f3a

View File

@@ -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<Tag>)
})]
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<Tag>),
})]
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<Tag>),
})]
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<int>("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<Tag>),
})]
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<Excavator, Quantity> originalCapacity = new Dictionary<Excavator, Quantity>();
public static Dictionary<Excavator, ImmutableArray<ThicknessTilesF>> originalMinedThicknessByDistance =
new Dictionary<Excavator, ImmutableArray<ThicknessTilesF>>();
public static Dictionary<ExcavatorProto.Timings, int> originalMineTileIterations =
new Dictionary<ExcavatorProto.Timings, int>();
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,