More shipyard cargo

This commit is contained in:
2024-05-31 20:15:03 +02:00
parent 9e923c4c87
commit 0619976965
2 changed files with 541 additions and 521 deletions

View File

@@ -26,6 +26,7 @@ namespace CaptainOfIndustry {
public static ConfigEntry<float> housingCapacityMultiplier; public static ConfigEntry<float> housingCapacityMultiplier;
public static ConfigEntry<float> dumpDelayMultiplier; public static ConfigEntry<float> dumpDelayMultiplier;
public static ConfigEntry<float> transportSpeedMultiplier; public static ConfigEntry<float> transportSpeedMultiplier;
public static ConfigEntry<float> shipyardCargoMultiplier;
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"));
@@ -42,6 +43,7 @@ namespace CaptainOfIndustry {
housingCapacityMultiplier = Config.Bind("General", "Housing Capacity Multiplier", 1f, new ConfigDescription("Housing Capacity Multiplier")); housingCapacityMultiplier = Config.Bind("General", "Housing Capacity Multiplier", 1f, new ConfigDescription("Housing Capacity Multiplier"));
dumpDelayMultiplier = Config.Bind("General", "Dump Delay Multiplier", 1f, new ConfigDescription("Dump Delay Multiplier")); dumpDelayMultiplier = Config.Bind("General", "Dump Delay Multiplier", 1f, new ConfigDescription("Dump Delay Multiplier"));
transportSpeedMultiplier = Config.Bind("General", "Transport Speed Multiplier", 1f, new ConfigDescription("Transport Speed Multiplier")); transportSpeedMultiplier = Config.Bind("General", "Transport Speed Multiplier", 1f, new ConfigDescription("Transport Speed Multiplier"));
shipyardCargoMultiplier = Config.Bind("General", "Shipyard Cargo Multiplier", 1f, new ConfigDescription("Shipyard Cargo 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

@@ -10,6 +10,7 @@ using Mafi.Core;
using Mafi.Core.Buildings.Cargo.Modules; using Mafi.Core.Buildings.Cargo.Modules;
using Mafi.Core.Buildings.Cargo.Ships.Modules; using Mafi.Core.Buildings.Cargo.Ships.Modules;
using Mafi.Core.Buildings.Settlements; using Mafi.Core.Buildings.Settlements;
using Mafi.Core.Buildings.Shipyard;
using Mafi.Core.Buildings.Storages; using Mafi.Core.Buildings.Storages;
using Mafi.Core.Entities; using Mafi.Core.Entities;
using Mafi.Core.Entities.Dynamic; using Mafi.Core.Entities.Dynamic;
@@ -371,7 +372,6 @@ namespace CaptainOfIndustry {
(int)(__instance.Capacity * Main.housingCapacityMultiplier.Value); (int)(__instance.Capacity * Main.housingCapacityMultiplier.Value);
} }
[HarmonyPostfix] [HarmonyPostfix]
[HarmonyPatch(typeof(StackerProto), MethodType.Constructor, new[] { [HarmonyPatch(typeof(StackerProto), MethodType.Constructor, new[] {
typeof(StaticEntityProto.ID), typeof(StaticEntityProto.ID),
@@ -393,7 +393,6 @@ namespace CaptainOfIndustry {
Traverse.Create(__instance).Field("DumpDelay").SetValue(newDelay); Traverse.Create(__instance).Field("DumpDelay").SetValue(newDelay);
} }
[HarmonyPrefix] [HarmonyPrefix]
[HarmonyPatch(typeof(TransportProto), MethodType.Constructor, new[] { [HarmonyPatch(typeof(TransportProto), MethodType.Constructor, new[] {
typeof(StaticEntityProto.ID), typeof(StaticEntityProto.ID),
@@ -444,5 +443,24 @@ namespace CaptainOfIndustry {
canBeBuried = true; canBeBuried = true;
maxPillarSupportRadius = new RelTile1i(8); maxPillarSupportRadius = new RelTile1i(8);
} }
[HarmonyPostfix]
[HarmonyPatch(typeof(ShipyardProto), MethodType.Constructor, new[] {
typeof(StaticEntityProto.ID),
typeof(Proto.Str),
typeof(EntityLayout),
typeof(EntityCosts),
typeof(bool),
typeof(Quantity),
typeof(Option<ShipyardProto>),
typeof(ImmutableArray<ImmutableArray<RectangleTerrainArea2iRelative>>),
typeof(StackerProto.Gfx),
typeof(ImmutableArray<String>),
typeof(bool),
})]
static void shipyardCargoMultiplier(ShipyardProto __instance) {
Traverse.Create(__instance).Field("CargoCapacity").SetValue(new Quantity(
(int)(__instance.CargoCapacity.Value * Main.shipyardCargoMultiplier.Value)));
}
} }
} }