Maybe fix capacity now

This commit is contained in:
2024-10-19 00:01:43 +02:00
parent ef58960245
commit 1a81695349
2 changed files with 19 additions and 1 deletions

View File

@@ -14,6 +14,7 @@ namespace CykaOfIndustry {
private const string pluginVersion = "1.0.0"; private const string pluginVersion = "1.0.0";
public static ConfigEntry<int> excavatorCapacityMultiplier; public static ConfigEntry<int> excavatorCapacityMultiplier;
public static ConfigEntry<float> excavatorMineTileIterationsMultiplier;
public static ConfigEntry<int> truckCapacityMultiplier; public static ConfigEntry<int> truckCapacityMultiplier;
public static ConfigEntry<int> cargoShipCapacityMultiplier; public static ConfigEntry<int> cargoShipCapacityMultiplier;
public static ConfigEntry<float> excavatorMiningAreaMultiplier; public static ConfigEntry<float> excavatorMiningAreaMultiplier;
@@ -31,6 +32,9 @@ namespace CykaOfIndustry {
public void Awake() { public void Awake() {
excavatorCapacityMultiplier = Config.Bind("General", "Excavator Capacity Multiplier", 1, excavatorCapacityMultiplier = Config.Bind("General", "Excavator Capacity Multiplier", 1,
new ConfigDescription("Excavator Capacity Multiplier")); new ConfigDescription("Excavator Capacity Multiplier"));
excavatorMineTileIterationsMultiplier = Config.Bind("General", "Excavator Mine Tile Iterations Multiplier",
1f,
new ConfigDescription("Excavator Mine Tile Iterations Multiplier"));
truckCapacityMultiplier = Config.Bind("General", "Truck Capacity Multiplier", 1, truckCapacityMultiplier = Config.Bind("General", "Truck Capacity Multiplier", 1,
new ConfigDescription("Truck Capacity Multiplier")); new ConfigDescription("Truck Capacity Multiplier"));
cargoShipCapacityMultiplier = Config.Bind("General", "Cargo Ship Capacity Multiplier", 1, cargoShipCapacityMultiplier = Config.Bind("General", "Cargo Ship Capacity Multiplier", 1,

View File

@@ -24,6 +24,7 @@ using Mafi.Core.Products;
using Mafi.Core.Prototypes; using Mafi.Core.Prototypes;
using Mafi.Core.Terrain; using Mafi.Core.Terrain;
using Mafi.Core.Vehicles.Excavators; using Mafi.Core.Vehicles.Excavators;
using Mafi.Core.Vehicles.Jobs;
using Mafi.Core.World.Entities; using Mafi.Core.World.Entities;
namespace CykaOfIndustry { namespace CykaOfIndustry {
@@ -468,6 +469,8 @@ namespace CykaOfIndustry {
[HarmonyPatch(typeof(Excavator), "MineMixedAt")] [HarmonyPatch(typeof(Excavator), "MineMixedAt")]
public class MineMixedAtPatch { public class MineMixedAtPatch {
public static Dictionary<Excavator, Quantity> originalCapacity = new Dictionary<Excavator, Quantity>(); public static Dictionary<Excavator, Quantity> originalCapacity = new Dictionary<Excavator, Quantity>();
public static Dictionary<Excavator, ImmutableArray<ThicknessTilesF>> originalMinedThicknessByDistance =
new Dictionary<Excavator, ImmutableArray<ThicknessTilesF>>();
static void Prefix(ref Excavator __instance) { static void Prefix(ref Excavator __instance) {
if (!originalCapacity.ContainsKey(__instance)) { if (!originalCapacity.ContainsKey(__instance)) {
@@ -477,7 +480,18 @@ namespace CykaOfIndustry {
var trav = Traverse.Create(__instance.Prototype); var trav = Traverse.Create(__instance.Prototype);
trav.Field("Capacity") trav.Field("Capacity")
.SetValue(new Quantity(originalCapacity[__instance].Value * Main.excavatorCapacityMultiplier.Value)); .SetValue(new Quantity(originalCapacity[__instance].Value * Main.excavatorCapacityMultiplier.Value));
Console.WriteLine("IndustrialCyka: Excavator capacity: {0}", __instance.Prototype.Capacity.Value); // Console.WriteLine("IndustrialCyka: Excavator capacity: {0}", __instance.Prototype.Capacity.Value);
if (!originalMinedThicknessByDistance.ContainsKey(__instance)) {
originalMinedThicknessByDistance.Add(__instance,
trav.Field("MinedThicknessByDistance").GetValue<ImmutableArray<ThicknessTilesF>>());
}
trav.Field("MinedThicknessByDistance")
.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);
} }
} }
} }