Code format and add storage multiplier

This commit is contained in:
2024-04-17 15:07:38 +02:00
parent b076a85579
commit c1f259d0d5
2 changed files with 47 additions and 5 deletions

View File

@@ -19,6 +19,7 @@ namespace CaptainOfIndustry {
public static ConfigEntry<int> cargoShipCapacityMultiplier; public static ConfigEntry<int> cargoShipCapacityMultiplier;
public static ConfigEntry<float> excavatorMiningAreaMultiplier; public static ConfigEntry<float> excavatorMiningAreaMultiplier;
public static ConfigEntry<float> vehicleSpeedMultiplier; public static ConfigEntry<float> vehicleSpeedMultiplier;
public static ConfigEntry<float> storageCapacityMultiplier;
public void Awake() { public void Awake() {
excavatorCapacityMultiplier = Config.Bind("General", "Excavator Capacity Multiplier", 1, new ConfigDescription("Excavator Capacity Multiplier")); excavatorCapacityMultiplier = Config.Bind("General", "Excavator Capacity Multiplier", 1, new ConfigDescription("Excavator Capacity Multiplier"));
@@ -26,6 +27,7 @@ namespace CaptainOfIndustry {
cargoShipCapacityMultiplier = Config.Bind("General", "Cargo Ship Capacity Multiplier", 1, new ConfigDescription("Cargo Ship 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")); excavatorMiningAreaMultiplier = Config.Bind("General", "Excavator Mining Area Multiplier", 1f, new ConfigDescription("Excavator Mining Area Multiplier"));
vehicleSpeedMultiplier = Config.Bind("General", "Vehicle Speed Multiplier", 1f, new ConfigDescription("Vehicle Speed Multiplier")); vehicleSpeedMultiplier = Config.Bind("General", "Vehicle Speed Multiplier", 1f, new ConfigDescription("Vehicle Speed Multiplier"));
storageCapacityMultiplier = Config.Bind("General", "Storage Capacity Multiplier", 1f, new ConfigDescription("Storage Capacity Multiplier"));
// shootingSpeedMultiplier.SettingChanged += (sender, args) => WeaponPropertiesManager.DoPatch(); // shootingSpeedMultiplier.SettingChanged += (sender, args) => WeaponPropertiesManager.DoPatch();
// energyGenMultiplier.SettingChanged += (sender, args) => GeneratorPropertiesManager.DoPatch(); // energyGenMultiplier.SettingChanged += (sender, args) => GeneratorPropertiesManager.DoPatch();

View File

@@ -1,9 +1,13 @@
using System; using System;
using System.Collections.Generic;
using System.Reflection; using System.Reflection;
using HarmonyLib; using HarmonyLib;
using Mafi; using Mafi;
using Mafi.Core.Buildings.Cargo.Ships.Modules; using Mafi.Core.Buildings.Cargo.Ships.Modules;
using Mafi.Core.Buildings.Storages;
using Mafi.Core.Entities.Dynamic; using Mafi.Core.Entities.Dynamic;
using Mafi.Core.Entities.Static;
using Mafi.Core.Entities.Static.Layout;
using Mafi.Core.Map; using Mafi.Core.Map;
using Mafi.Core.Products; using Mafi.Core.Products;
using Mafi.Core.Prototypes; using Mafi.Core.Prototypes;
@@ -29,6 +33,14 @@ namespace CaptainOfIndustry {
Console.WriteLine("IndustrialCyka: New truck capacity: {0}", quantity); Console.WriteLine("IndustrialCyka: New truck capacity: {0}", quantity);
} }
// [HarmonyPrefix]
// [HarmonyPatch(typeof(StorageProtoBuilder.State), "SetCapacity")]
// static void storageCapacityMultiplier(ref int capacity) {
// Console.WriteLine("IndustrialCyka: Old storage capacity: {0}", capacity);
// capacity = (int)(capacity * Main.storageCapacityMultiplier.Value);
// Console.WriteLine("IndustrialCyka: New storage capacity: {0}", capacity);
// }
[HarmonyPostfix] [HarmonyPostfix]
[HarmonyPatch(typeof(CargoShipModuleProto), MethodType.Constructor, [HarmonyPatch(typeof(CargoShipModuleProto), MethodType.Constructor,
new[] { new[] {
@@ -74,13 +86,41 @@ namespace CaptainOfIndustry {
Traverse maxBackwardsSpeedField = traverse.Field("m_maxBackwardsSpeed"); Traverse maxBackwardsSpeedField = traverse.Field("m_maxBackwardsSpeed");
Traverse maxAccelerationField = traverse.Field("m_maxAcceleration"); Traverse maxAccelerationField = traverse.Field("m_maxAcceleration");
Console.WriteLine("IndustrialCyka: Old speeds: (F) {0}, (B) {1}, (A) {2}", maxForwardsSpeedField.GetValue(), maxBackwardsSpeedField.GetValue(), maxAccelerationField.GetValue()); Console.WriteLine("IndustrialCyka: Old speeds: (F) {0}, (B) {1}, (A) {2}", maxForwardsSpeedField.GetValue(),
maxBackwardsSpeedField.GetValue(), maxAccelerationField.GetValue());
maxForwardsSpeedField.SetValue((Fix32)maxForwardsSpeedField.GetValue() * speedMulti); maxForwardsSpeedField.SetValue((Fix32)maxForwardsSpeedField.GetValue() * speedMulti);
maxBackwardsSpeedField.SetValue((Fix32)maxBackwardsSpeedField.GetValue() * speedMulti); maxBackwardsSpeedField.SetValue((Fix32)maxBackwardsSpeedField.GetValue() * speedMulti);
maxAccelerationField.SetValue((Fix32)maxAccelerationField.GetValue() * speedMulti); maxAccelerationField.SetValue((Fix32)maxAccelerationField.GetValue() * speedMulti);
Console.WriteLine("IndustrialCyka: New speeds: (F) {0}, (B) {1}, (A) {2}", maxForwardsSpeedField.GetValue(), maxBackwardsSpeedField.GetValue(), maxAccelerationField.GetValue()); Console.WriteLine("IndustrialCyka: New speeds: (F) {0}, (B) {1}, (A) {2}", maxForwardsSpeedField.GetValue(),
maxBackwardsSpeedField.GetValue(), maxAccelerationField.GetValue());
}
[HarmonyPostfix]
[HarmonyPatch(typeof(StorageBaseProto), MethodType.Constructor,
new[] {
typeof(StaticEntityProto.ID),
typeof(Proto.Str),
typeof(EntityLayout),
typeof(Quantity),
typeof(EntityCosts),
typeof(LayoutEntityProto.Gfx),
typeof(Quantity),
typeof(Duration),
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);
Traverse traverse = Traverse.Create(__instance);
traverse.Field("Capacity").SetValue(new Quantity((int)(__instance.Capacity.Value * Main.storageCapacityMultiplier.Value)));
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);
} }
// Could not make this work either... idk why... Doesn't make sense... // Could not make this work either... idk why... Doesn't make sense...