Maybe fix capacity now
This commit is contained in:
@@ -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,
|
||||||
|
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Reference in New Issue
Block a user