Add buffer transfer rate patch
This commit is contained in:
@@ -14,6 +14,11 @@
|
|||||||
<s:Boolean x:Key="/Default/AddReferences/RecentPaths/=C_003A_005CUsers_005CAdministrator_005CSeafile_005CProjects_002DRider_005CRiderProjects_005CBepinex_005CProjects_005CCaptainOfIndustry_005Clibs_005CMafi_002Edll/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/AddReferences/RecentPaths/=C_003A_005CUsers_005CAdministrator_005CSeafile_005CProjects_002DRider_005CRiderProjects_005CBepinex_005CProjects_005CCaptainOfIndustry_005Clibs_005CMafi_002Edll/@EntryIndexedValue">True</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/AddReferences/RecentPaths/=C_003A_005CUsers_005CAdministrator_005CSeafile_005CProjects_002DRider_005CRiderProjects_005CBepinex_005CProjects_005CCaptainOfIndustry_005Clibs_005CMafi_002EModsAuthoringSupport_002Edll/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/AddReferences/RecentPaths/=C_003A_005CUsers_005CAdministrator_005CSeafile_005CProjects_002DRider_005CRiderProjects_005CBepinex_005CProjects_005CCaptainOfIndustry_005Clibs_005CMafi_002EModsAuthoringSupport_002Edll/@EntryIndexedValue">True</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/AddReferences/RecentPaths/=C_003A_005CUsers_005CAdministrator_005CSeafile_005CProjects_002DRider_005CRiderProjects_005CBepinex_005CProjects_005CCaptainOfIndustry_005Clibs_005CMafi_002EUnity_002Edll/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/AddReferences/RecentPaths/=C_003A_005CUsers_005CAdministrator_005CSeafile_005CProjects_002DRider_005CRiderProjects_005CBepinex_005CProjects_005CCaptainOfIndustry_005Clibs_005CMafi_002EUnity_002Edll/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/AddReferences/RecentPaths/=C_003A_005CUsers_005CAdministrator_005CSeafile_005CProjects_002DRider_005CRiderProjects_005CBepinex_005CProjects_005CCaptainOfIndustry_005Clibs_005CSirenix_002EOdinInspector_002EAttributes_002Edll/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/AddReferences/RecentPaths/=C_003A_005CUsers_005CAdministrator_005CSeafile_005CProjects_002DRider_005CRiderProjects_005CBepinex_005CProjects_005CCaptainOfIndustry_005Clibs_005CSirenix_002EOdinInspector_002ECompatibilityLayer_002Edll/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/AddReferences/RecentPaths/=C_003A_005CUsers_005CAdministrator_005CSeafile_005CProjects_002DRider_005CRiderProjects_005CBepinex_005CProjects_005CCaptainOfIndustry_005Clibs_005CSirenix_002ESerialization_002EConfig_002Edll/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/AddReferences/RecentPaths/=C_003A_005CUsers_005CAdministrator_005CSeafile_005CProjects_002DRider_005CRiderProjects_005CBepinex_005CProjects_005CCaptainOfIndustry_005Clibs_005CSirenix_002ESerialization_002Edll/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/AddReferences/RecentPaths/=C_003A_005CUsers_005CAdministrator_005CSeafile_005CProjects_002DRider_005CRiderProjects_005CBepinex_005CProjects_005CCaptainOfIndustry_005Clibs_005CSirenix_002EUtilities_002Edll/@EntryIndexedValue">True</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/AddReferences/RecentPaths/=C_003A_005CUsers_005CAdministrator_005CSeafile_005CProjects_002DRider_005CRiderProjects_005CBepinex_005CProjects_005CCaptainOfIndustry_005Clibs_005CUnityEngine_002ECoreModule_002Edll/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/AddReferences/RecentPaths/=C_003A_005CUsers_005CAdministrator_005CSeafile_005CProjects_002DRider_005CRiderProjects_005CBepinex_005CProjects_005CCaptainOfIndustry_005Clibs_005CUnityEngine_002ECoreModule_002Edll/@EntryIndexedValue">True</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/AddReferences/RecentPaths/=C_003A_005CUsers_005CAdministrator_005CSeafile_005CProjects_002DRider_005CRiderProjects_005CBepinex_005CProjects_005CCaptainOfIndustry_005Clibs_005CUnityEngine_002Edll/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/AddReferences/RecentPaths/=C_003A_005CUsers_005CAdministrator_005CSeafile_005CProjects_002DRider_005CRiderProjects_005CBepinex_005CProjects_005CCaptainOfIndustry_005Clibs_005CUnityEngine_002Edll/@EntryIndexedValue">True</s:Boolean>
|
||||||
<s:String x:Key="/Default/Environment/AssemblyExplorer/XmlDocument/@EntryValue"><AssemblyExplorer /></s:String>
|
<s:String x:Key="/Default/Environment/AssemblyExplorer/XmlDocument/@EntryValue"><AssemblyExplorer /></s:String>
|
||||||
|
@@ -64,6 +64,21 @@
|
|||||||
<Reference Include="Mafi.Unity">
|
<Reference Include="Mafi.Unity">
|
||||||
<HintPath>..\libs\Mafi.Unity.dll</HintPath>
|
<HintPath>..\libs\Mafi.Unity.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
<Reference Include="Sirenix.OdinInspector.Attributes">
|
||||||
|
<HintPath>..\libs\Sirenix.OdinInspector.Attributes.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Sirenix.OdinInspector.CompatibilityLayer">
|
||||||
|
<HintPath>..\libs\Sirenix.OdinInspector.CompatibilityLayer.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Sirenix.Serialization">
|
||||||
|
<HintPath>..\libs\Sirenix.Serialization.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Sirenix.Serialization.Config">
|
||||||
|
<HintPath>..\libs\Sirenix.Serialization.Config.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Sirenix.Utilities">
|
||||||
|
<HintPath>..\libs\Sirenix.Utilities.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="UnityEngine">
|
<Reference Include="UnityEngine">
|
||||||
<HintPath>..\libs\UnityEngine.dll</HintPath>
|
<HintPath>..\libs\UnityEngine.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
@@ -18,17 +18,19 @@ namespace CaptainOfIndustry {
|
|||||||
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;
|
||||||
public static ConfigEntry<float> vehicleSpeedMultiplier;
|
public static ConfigEntry<float> bufferCapacityMultiplier;
|
||||||
public static ConfigEntry<float> unityGenerationMultiplier;
|
public static ConfigEntry<float> unityGenerationMultiplier;
|
||||||
|
public static ConfigEntry<float> depotTransferSpeedMultiplier;
|
||||||
|
|
||||||
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"));
|
||||||
truckCapacityMultiplier = Config.Bind("General", "Truck Capacity Multiplier", 1, new ConfigDescription("Truck Capacity Multiplier"));
|
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"));
|
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"));
|
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"));
|
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"));
|
unityGenerationMultiplier = Config.Bind("General", "Unity Generation Multiplier", 1f, new ConfigDescription("Unity Generation Multiplier"));
|
||||||
|
depotTransferSpeedMultiplier = Config.Bind("General", "Depot Transfer Speed Multiplier", 1f, new ConfigDescription("Depot Transfer Speed 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();
|
||||||
|
@@ -1,13 +1,18 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
using System.Reflection.Emit;
|
||||||
using HarmonyLib;
|
using HarmonyLib;
|
||||||
using Mafi;
|
using Mafi;
|
||||||
|
using Mafi.Core.Buildings.Cargo;
|
||||||
|
using Mafi.Core.Buildings.Cargo.Modules;
|
||||||
using Mafi.Core.Buildings.Cargo.Ships.Modules;
|
using Mafi.Core.Buildings.Cargo.Ships.Modules;
|
||||||
using Mafi.Core.Buildings.Storages;
|
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;
|
||||||
using Mafi.Core.Entities.Static.Layout;
|
using Mafi.Core.Entities.Static.Layout;
|
||||||
|
using Mafi.Core.Factory.Machines;
|
||||||
using Mafi.Core.Map;
|
using Mafi.Core.Map;
|
||||||
using Mafi.Core.Population;
|
using Mafi.Core.Population;
|
||||||
using Mafi.Core.Products;
|
using Mafi.Core.Products;
|
||||||
@@ -16,30 +21,28 @@ using Mafi.Core.Prototypes;
|
|||||||
namespace CaptainOfIndustry {
|
namespace CaptainOfIndustry {
|
||||||
[HarmonyPatch]
|
[HarmonyPatch]
|
||||||
public class Patches {
|
public class Patches {
|
||||||
private static Traverse<Fix32> maxForwardsSpeedField;
|
|
||||||
|
|
||||||
[HarmonyPrefix]
|
[HarmonyPrefix]
|
||||||
[HarmonyPatch(typeof(ExcavatorProtoBuilder.ExcavatorProtoBuilderState), "SetCapacity")]
|
[HarmonyPatch(typeof(ExcavatorProtoBuilder.ExcavatorProtoBuilderState), "SetCapacity")]
|
||||||
static void excavatorCapacityMultiplier(ref int quantity) {
|
static void excavatorCapacityMultiplier(ref int quantity) {
|
||||||
// Console.WriteLine("IndustrialCyka: Old excavator capacity: {0}", quantity);
|
// Console.WriteLine("IndustrialCyka: Old excavator capacity: {0}", quantity);
|
||||||
quantity *= Main.excavatorCapacityMultiplier.Value;
|
quantity *= Main.excavatorCapacityMultiplier.Value;
|
||||||
Console.WriteLine("IndustrialCyka: Old excavator capacity: {0}", quantity);
|
// Console.WriteLine("IndustrialCyka: Old excavator capacity: {0}", quantity);
|
||||||
}
|
}
|
||||||
|
|
||||||
[HarmonyPrefix]
|
[HarmonyPrefix]
|
||||||
[HarmonyPatch(typeof(TruckProtoBuilder.TruckProtoBuilderState), "SetCapacity")]
|
[HarmonyPatch(typeof(TruckProtoBuilder.TruckProtoBuilderState), "SetCapacity")]
|
||||||
static void truckCapacityMultiplier(ref int quantity) {
|
static void truckCapacityMultiplier(ref int quantity) {
|
||||||
Console.WriteLine("IndustrialCyka: Old truck capacity: {0}", quantity);
|
// Console.WriteLine("IndustrialCyka: Old truck capacity: {0}", quantity);
|
||||||
quantity *= Main.truckCapacityMultiplier.Value;
|
quantity *= Main.truckCapacityMultiplier.Value;
|
||||||
Console.WriteLine("IndustrialCyka: New truck capacity: {0}", quantity);
|
// Console.WriteLine("IndustrialCyka: New truck capacity: {0}", quantity);
|
||||||
}
|
}
|
||||||
|
|
||||||
// [HarmonyPrefix]
|
// [HarmonyPrefix]
|
||||||
// [HarmonyPatch(typeof(StorageProtoBuilder.State), "SetCapacity")]
|
// [HarmonyPatch(typeof(StorageProtoBuilder.State), "SetCapacity")]
|
||||||
// static void storageCapacityMultiplier(ref int capacity) {
|
// static void storageCapacityMultiplier(ref int capacity) {
|
||||||
// Console.WriteLine("IndustrialCyka: Old storage capacity: {0}", capacity);
|
// // Console.WriteLine("IndustrialCyka: Old storage capacity: {0}", capacity);
|
||||||
// capacity = (int)(capacity * Main.storageCapacityMultiplier.Value);
|
// capacity = (int)(capacity * Main.storageCapacityMultiplier.Value);
|
||||||
// Console.WriteLine("IndustrialCyka: New storage capacity: {0}", capacity);
|
// // Console.WriteLine("IndustrialCyka: New storage capacity: {0}", capacity);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
[HarmonyPostfix]
|
[HarmonyPostfix]
|
||||||
@@ -49,18 +52,18 @@ namespace CaptainOfIndustry {
|
|||||||
typeof(CargoShipModuleProto.Gfx)
|
typeof(CargoShipModuleProto.Gfx)
|
||||||
})]
|
})]
|
||||||
static void cargoShipCapacityMultiplier(CargoShipModuleProto __instance) {
|
static void cargoShipCapacityMultiplier(CargoShipModuleProto __instance) {
|
||||||
Console.WriteLine("IndustrialCyka: Old ship capacity: {0}", __instance.Capacity.Value);
|
// Console.WriteLine("IndustrialCyka: Old ship capacity: {0}", __instance.Capacity.Value);
|
||||||
__instance.Capacity = new Quantity(__instance.Capacity.Value * Main.cargoShipCapacityMultiplier.Value);
|
__instance.Capacity = new Quantity(__instance.Capacity.Value * Main.cargoShipCapacityMultiplier.Value);
|
||||||
Console.WriteLine("IndustrialCyka: New ship capacity: {0}", __instance.Capacity.Value);
|
// Console.WriteLine("IndustrialCyka: New ship capacity: {0}", __instance.Capacity.Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
[HarmonyPrefix]
|
[HarmonyPrefix]
|
||||||
[HarmonyPatch(typeof(ExcavatorProtoBuilder.ExcavatorProtoBuilderState), "SetMinedThicknessByDistanceMeters")]
|
[HarmonyPatch(typeof(ExcavatorProtoBuilder.ExcavatorProtoBuilderState), "SetMinedThicknessByDistanceMeters")]
|
||||||
static void excavatorMiningAreaMultiplier(ref float[] thicknessMeters) {
|
static void excavatorMiningAreaMultiplier(ref float[] thicknessMeters) {
|
||||||
for (int i = 0; i < thicknessMeters.Length; i++) {
|
for (int i = 0; i < thicknessMeters.Length; i++) {
|
||||||
Console.WriteLine("IndustrialCyka: Old mining area: {0}", thicknessMeters[i]);
|
// Console.WriteLine("IndustrialCyka: Old mining area: {0}", thicknessMeters[i]);
|
||||||
thicknessMeters[i] *= Main.excavatorMiningAreaMultiplier.Value;
|
thicknessMeters[i] *= Main.excavatorMiningAreaMultiplier.Value;
|
||||||
Console.WriteLine("IndustrialCyka: New mining area: {0}", thicknessMeters[i]);
|
// Console.WriteLine("IndustrialCyka: New mining area: {0}", thicknessMeters[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -68,35 +71,35 @@ namespace CaptainOfIndustry {
|
|||||||
// [HarmonyPrefix]
|
// [HarmonyPrefix]
|
||||||
// [HarmonyPatch(typeof(DrivingEntity), "SetSpeedFactor")]
|
// [HarmonyPatch(typeof(DrivingEntity), "SetSpeedFactor")]
|
||||||
// static void vehicleSpeedMultiplier(ref Percent speedFactor) {
|
// static void vehicleSpeedMultiplier(ref Percent speedFactor) {
|
||||||
// Console.WriteLine("IndustrialCyka: Old speed: {0}", speedFactor.ToString());
|
// // Console.WriteLine("IndustrialCyka: Old speed: {0}", speedFactor.ToString());
|
||||||
// // typeof(Percent)
|
// // typeof(Percent)
|
||||||
// // .GetField("RawValue",BindingFlags.Instance|BindingFlags.NonPublic)
|
// // .GetField("RawValue",BindingFlags.Instance|BindingFlags.NonPublic)
|
||||||
// // .SetValue(speedFactor,speedFactor.ToFloat() / Main.vehicleSpeedMultiplier.Value);
|
// // .SetValue(speedFactor,speedFactor.ToFloat() / Main.vehicleSpeedMultiplier.Value);
|
||||||
// Percent newSpeedFactor = Percent.FromFloat(speedFactor.ToFloat() / Main.vehicleSpeedMultiplier.Value);
|
// Percent newSpeedFactor = Percent.FromFloat(speedFactor.ToFloat() / Main.vehicleSpeedMultiplier.Value);
|
||||||
// speedFactor = newSpeedFactor;
|
// speedFactor = newSpeedFactor;
|
||||||
// Console.WriteLine("IndustrialCyka: New speed: {1}", newSpeedFactor.RawValue.ToString());
|
// // Console.WriteLine("IndustrialCyka: New speed: {1}", newSpeedFactor.RawValue.ToString());
|
||||||
// }
|
// }
|
||||||
|
|
||||||
[HarmonyPostfix]
|
// [HarmonyPostfix]
|
||||||
[HarmonyPatch(typeof(SmoothDriver), "SetSpeedFactor")]
|
// [HarmonyPatch(typeof(SmoothDriver), "SetSpeedFactor")]
|
||||||
static void vehicleSpeedMultiplier(SmoothDriver __instance) {
|
// static void vehicleSpeedMultiplier(SmoothDriver __instance) {
|
||||||
Fix32 speedMulti = Fix32.FromFloat(Main.vehicleSpeedMultiplier.Value);
|
// Fix32 speedMulti = Fix32.FromFloat(Main.vehicleSpeedMultiplier.Value);
|
||||||
|
//
|
||||||
Traverse traverse = Traverse.Create(__instance);
|
// Traverse traverse = Traverse.Create(__instance);
|
||||||
Traverse maxForwardsSpeedField = traverse.Field("m_maxForwardsSpeed");
|
// Traverse maxForwardsSpeedField = traverse.Field("m_maxForwardsSpeed");
|
||||||
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(),
|
// // Console.WriteLine("IndustrialCyka: Old speeds: (F) {0}, (B) {1}, (A) {2}", maxForwardsSpeedField.GetValue(),
|
||||||
maxBackwardsSpeedField.GetValue(), maxAccelerationField.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(),
|
// // Console.WriteLine("IndustrialCyka: New speeds: (F) {0}, (B) {1}, (A) {2}", maxForwardsSpeedField.GetValue(),
|
||||||
maxBackwardsSpeedField.GetValue(), maxAccelerationField.GetValue());
|
// // maxBackwardsSpeedField.GetValue(), maxAccelerationField.GetValue());
|
||||||
}
|
// }
|
||||||
|
|
||||||
[HarmonyPostfix]
|
[HarmonyPostfix]
|
||||||
[HarmonyPatch(typeof(StorageBaseProto), MethodType.Constructor,
|
[HarmonyPatch(typeof(StorageBaseProto), MethodType.Constructor,
|
||||||
@@ -112,37 +115,125 @@ namespace CaptainOfIndustry {
|
|||||||
typeof(IEnumerable<Tag>)
|
typeof(IEnumerable<Tag>)
|
||||||
})]
|
})]
|
||||||
static void storageCapacityMultiplier(StorageProto __instance) {
|
static void storageCapacityMultiplier(StorageProto __instance) {
|
||||||
Console.WriteLine("IndustrialCyka: Old storage capacity: {0}", __instance.Capacity.Value);
|
// Console.WriteLine("IndustrialCyka: Old storage capacity: {0}", __instance.Capacity.Value);
|
||||||
Console.WriteLine("IndustrialCyka: Old storage transfer limit: {0}", __instance.TransferLimit.Value);
|
// Console.WriteLine("IndustrialCyka: Old storage transfer limit: {0}", __instance.TransferLimit.Value);
|
||||||
Traverse traverse = Traverse.Create(__instance);
|
Traverse traverse = Traverse.Create(__instance);
|
||||||
|
|
||||||
traverse.Field("Capacity").SetValue(new Quantity((int)(__instance.Capacity.Value * Main.storageCapacityMultiplier.Value)));
|
traverse.Field("Capacity")
|
||||||
|
.SetValue(new Quantity((int)(__instance.Capacity.Value * Main.storageCapacityMultiplier.Value)));
|
||||||
traverse.Field("TransferLimit").SetValue(new Quantity(10000));
|
traverse.Field("TransferLimit").SetValue(new Quantity(10000));
|
||||||
traverse.Field("TransferLimitDuration").SetValue(Duration.FromTicks(1));
|
traverse.Field("TransferLimitDuration").SetValue(Duration.FromTicks(1));
|
||||||
|
|
||||||
Console.WriteLine("IndustrialCyka: New storage capacity: {0}", __instance.Capacity.Value);
|
// Console.WriteLine("IndustrialCyka: New storage capacity: {0}", __instance.Capacity.Value);
|
||||||
Console.WriteLine("IndustrialCyka: New storage transfer limit: {0}", __instance.TransferLimit.Value);
|
// Console.WriteLine("IndustrialCyka: New storage transfer limit: {0}", __instance.TransferLimit.Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
[HarmonyPrefix]
|
[HarmonyPrefix]
|
||||||
[HarmonyPatch(typeof(UpointsManager), "GenerateUnity")]
|
[HarmonyPatch(typeof(UpointsManager), "GenerateUnity")]
|
||||||
static void unityGenerationMultiplier(Proto.ID categoryId, ref Upoints generated) {
|
static void unityGenerationMultiplier(Proto.ID categoryId, ref Upoints generated) {
|
||||||
Console.WriteLine("IndustrialCyka: Old generated {0} unity", generated.Value);
|
// Console.WriteLine("IndustrialCyka: Old generated {0} unity", generated.Value);
|
||||||
Fix32 multi = Fix32.FromFloat(Main.unityGenerationMultiplier.Value);
|
Fix32 multi = Fix32.FromFloat(Main.unityGenerationMultiplier.Value);
|
||||||
generated = new Upoints(generated.Value * multi);
|
generated = new Upoints(generated.Value * multi);
|
||||||
Console.WriteLine("IndustrialCyka: New generated {0} unity", generated.Value);
|
// Console.WriteLine("IndustrialCyka: New generated {0} unity", generated.Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HarmonyTranspiler]
|
||||||
|
[HarmonyPatch(typeof(Machine), "updateWorkOnRecipes")]
|
||||||
|
static IEnumerable<CodeInstruction> unityBooster(IEnumerable<CodeInstruction> instructions) {
|
||||||
|
Dictionary<int, OpCode> matchTable = new Dictionary<int, OpCode>();
|
||||||
|
matchTable[0] = OpCodes.Ldsfld;
|
||||||
|
matchTable[1] = OpCodes.Br;
|
||||||
|
matchTable[2] = OpCodes.Ldc_I4_2;
|
||||||
|
int matches = 0;
|
||||||
|
int totalMatch = matchTable.Count;
|
||||||
|
|
||||||
|
var codes = new List<CodeInstruction>(instructions);
|
||||||
|
for (int i = 0; i < codes.Count; i++) {
|
||||||
|
if (matches >= totalMatch) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (codes[i].opcode.Equals(matchTable[matches])) {
|
||||||
|
if (matches == totalMatch - 1) {
|
||||||
|
codes[i].opcode = OpCodes.Ldc_I4_6;
|
||||||
|
}
|
||||||
|
|
||||||
|
matches++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// for (int i = 0; i < codes.Count; i++) {
|
||||||
|
// Console.WriteLine(codes[i].ToString());
|
||||||
|
// }
|
||||||
|
|
||||||
|
return codes.AsEnumerable();
|
||||||
|
}
|
||||||
|
|
||||||
|
// static IEnumerable<CodeInstruction> Transpiler(IEnumerable<CodeInstruction> instructions)
|
||||||
|
// {
|
||||||
|
// var found = false;
|
||||||
|
// foreach (var instruction in instructions)
|
||||||
|
// {
|
||||||
|
// if (instruction.StoresField(f_someField))
|
||||||
|
// {
|
||||||
|
// yield return new CodeInstruction(OpCodes.Call, m_MyExtraMethod);
|
||||||
|
// found = true;
|
||||||
|
// }
|
||||||
|
// yield return instruction;
|
||||||
|
// }
|
||||||
|
// if (found is false)
|
||||||
|
// ReportError("Cannot find <Stdfld someField> in OriginalType.OriginalMethod");
|
||||||
|
// }
|
||||||
|
|
||||||
// Could not make this work either... idk why... Doesn't make sense...
|
// Could not make this work either... idk why... Doesn't make sense...
|
||||||
// [HarmonyPostfix]
|
// [HarmonyPostfix]
|
||||||
// [HarmonyPatch(typeof(SimpleVirtualResource), "MineResourceAt")]
|
// [HarmonyPatch(typeof(SimpleVirtualResource), "MineResourceAt")]
|
||||||
// static void infiniteGroundResources(SimpleVirtualResource __instance) {
|
// static void infiniteGroundResources(SimpleVirtualResource __instance) {
|
||||||
// Console.WriteLine("IndustrialCyka: Patching ground resources (Capacity)");
|
// // Console.WriteLine("IndustrialCyka: Patching ground resources (Capacity)");
|
||||||
// Traverse traverse = Traverse.Create(__instance);
|
// Traverse traverse = Traverse.Create(__instance);
|
||||||
// Traverse capacityField = traverse.Field("Capacity");
|
// Traverse capacityField = traverse.Field("Capacity");
|
||||||
// capacityField.SetValue(1000000000);
|
// capacityField.SetValue(1000000000);
|
||||||
// Traverse quantityField = traverse.Field("Quantity");
|
// Traverse quantityField = traverse.Field("Quantity");
|
||||||
// quantityField.SetValue(1000000000);
|
// quantityField.SetValue(1000000000);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
[HarmonyPrefix]
|
||||||
|
[HarmonyPatch(typeof(ProductBuffer), "ForceNewCapacityTo")]
|
||||||
|
static void bufferCapacityMultiplier(ref Quantity newCapacity) {
|
||||||
|
if (newCapacity.Value <= 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Quantity newNewCapacity = new Quantity((int)(newCapacity.Value * Main.bufferCapacityMultiplier.Value));
|
||||||
|
newCapacity = newNewCapacity;
|
||||||
|
}
|
||||||
|
|
||||||
|
[HarmonyPostfix]
|
||||||
|
[HarmonyPatch(typeof(CargoDepotModuleProto), MethodType.Constructor,
|
||||||
|
new[] {
|
||||||
|
typeof(CargoDepotModuleProto.ID),
|
||||||
|
typeof(Proto.Str),
|
||||||
|
typeof(EntityLayout),
|
||||||
|
typeof(ProductType),
|
||||||
|
typeof(Option<CargoDepotModuleProto>),
|
||||||
|
typeof(Quantity),
|
||||||
|
typeof(Quantity),
|
||||||
|
typeof(Duration),
|
||||||
|
typeof(Electricity),
|
||||||
|
typeof(bool),
|
||||||
|
typeof(Percent),
|
||||||
|
typeof(EntityCosts),
|
||||||
|
typeof(CargoDepotModuleProto.Gfx),
|
||||||
|
typeof(IEnumerable<Tag>),
|
||||||
|
})]
|
||||||
|
static void depotTransferSpeedMultiplier(CargoDepotModuleProto __instance) {
|
||||||
|
// Console.WriteLine("IndustrialCyka: Old storage capacity: {0}", __instance.Capacity.Value);
|
||||||
|
Traverse traverse = Traverse.Create(__instance);
|
||||||
|
|
||||||
|
traverse.Field("QuantityPerExchange")
|
||||||
|
.SetValue(new Quantity((int)(__instance.QuantityPerExchange.Value * Main.depotTransferSpeedMultiplier.Value)));
|
||||||
|
|
||||||
|
// Console.WriteLine("IndustrialCyka: New storage capacity: {0}", __instance.Capacity.Value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user