Add excavator range patches
This commit is contained in:
@@ -17,6 +17,8 @@ namespace CaptainOfIndustry {
|
||||
public static ConfigEntry<int> truckCapacityMultiplier;
|
||||
public static ConfigEntry<int> cargoShipCapacityMultiplier;
|
||||
public static ConfigEntry<float> excavatorMiningAreaMultiplier;
|
||||
public static ConfigEntry<float> excavatorMinReachMultiplier;
|
||||
public static ConfigEntry<float> excavatorMaxReachMultiplier;
|
||||
public static ConfigEntry<float> bufferCapacityMultiplier;
|
||||
public static ConfigEntry<float> unityGenerationMultiplier;
|
||||
public static ConfigEntry<float> depotTransferSpeedMultiplier;
|
||||
@@ -28,6 +30,8 @@ namespace CaptainOfIndustry {
|
||||
truckCapacityMultiplier = Config.Bind("General", "Truck Capacity Multiplier", 1, new ConfigDescription("Truck Capacity Multiplier"));
|
||||
cargoShipCapacityMultiplier = Config.Bind("General", "Cargo Ship Capacity Multiplier", 1, new ConfigDescription("Cargo Ship Capacity Multiplier"));
|
||||
excavatorMiningAreaMultiplier = Config.Bind("General", "Excavator Mining Area Multiplier", 1f, new ConfigDescription("Excavator Mining Area Multiplier"));
|
||||
excavatorMinReachMultiplier = Config.Bind("General", "Excavator Min Reach Multiplier", 1f, new ConfigDescription("Excavator Min Reach Multiplier"));
|
||||
excavatorMaxReachMultiplier = Config.Bind("General", "Excavator Max Reach Multiplier", 1f, new ConfigDescription("Excavator Max Reach Multiplier"));
|
||||
bufferCapacityMultiplier = Config.Bind("General", "Buffer Capacity Multiplier", 1f, new ConfigDescription("Buffer Capacity Multiplier"));
|
||||
storageCapacityMultiplier = Config.Bind("General", "Storage Capacity Multiplier", 1f, new ConfigDescription("Storage Capacity Multiplier"));
|
||||
unityGenerationMultiplier = Config.Bind("General", "Unity Generation Multiplier", 1f, new ConfigDescription("Unity Generation Multiplier"));
|
||||
|
@@ -31,6 +31,42 @@ namespace CaptainOfIndustry {
|
||||
// Console.WriteLine("IndustrialCyka: Old 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]);
|
||||
thicknessMeters[i] *= Main.excavatorMiningAreaMultiplier.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);
|
||||
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);
|
||||
}
|
||||
|
||||
static void excavatorPatch(WorldMapMineProto __instance) {
|
||||
Traverse traverse = Traverse.Create(__instance);
|
||||
|
||||
// int level = traverse.Field("Level").GetValue<int>();
|
||||
int maxLevel = traverse.Field("MaxLevel").GetValue<int>();
|
||||
// int levelsPerUpgrade = traverse.Field("LevelsPerUpgrade").GetValue<int>();
|
||||
|
||||
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);
|
||||
|
||||
traverse.Field("MaxLevel").SetValue(newMaxLevel);
|
||||
traverse.Field("LevelsPerUpgrade").SetValue(newLevelsPerUpgrade);
|
||||
}
|
||||
|
||||
[HarmonyPrefix]
|
||||
[HarmonyPatch(typeof(TruckProtoBuilder.TruckProtoBuilderState), "SetCapacity")]
|
||||
static void truckCapacityMultiplier(ref int quantity) {
|
||||
@@ -59,16 +95,6 @@ namespace CaptainOfIndustry {
|
||||
// Console.WriteLine("IndustrialCyka: New ship capacity: {0}", __instance.Capacity.Value);
|
||||
}
|
||||
|
||||
[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]);
|
||||
thicknessMeters[i] *= Main.excavatorMiningAreaMultiplier.Value;
|
||||
// Console.WriteLine("IndustrialCyka: New mining area: {0}", thicknessMeters[i]);
|
||||
}
|
||||
}
|
||||
|
||||
// No workey... idk how it's supposed to work, speed is always 1 or 100%
|
||||
// [HarmonyPrefix]
|
||||
// [HarmonyPatch(typeof(DrivingEntity), "SetSpeedFactor")]
|
||||
|
Reference in New Issue
Block a user