1
0
mirror of https://github.com/soarqin/DSP_Mods.git synced 2025-12-09 04:13:32 +08:00

Work in progress

This commit is contained in:
2022-12-02 02:02:18 +08:00
parent 46e0d1f971
commit 5d9363cd74

View File

@@ -15,8 +15,11 @@ public class Patch : BaseUnityPlugin
2, 5, 10 2, 5, 10
}; };
private static int sorterSpeedMultiplier = 2; private static int sorterSpeedMultiplier = 2;
private static int sorterPowerConsumptionMultiplier = 2;
private static int assembleSpeedMultiplier = 2; private static int assembleSpeedMultiplier = 2;
private static int powerConsumptionMultiplier = 2; private static int assemblePowerConsumptionMultiplier = 2;
private static int minerSpeedMultiplier = 2;
private static int minerPowerConsumptionMultiplier = 2;
private static long powerGenerationMultiplier = 4; private static long powerGenerationMultiplier = 4;
private static long powerFuelConsumptionMultiplier = 1; private static long powerFuelConsumptionMultiplier = 1;
@@ -32,9 +35,15 @@ public class Patch : BaseUnityPlugin
new ConfigDescription("Speed for Belt Mk.III", new AcceptableValueRange<uint>(1, 10))).Value; new ConfigDescription("Speed for Belt Mk.III", new AcceptableValueRange<uint>(1, 10))).Value;
sorterSpeedMultiplier = Config.Bind("Sorter", "SpeedMultiplier", sorterSpeedMultiplier, sorterSpeedMultiplier = Config.Bind("Sorter", "SpeedMultiplier", sorterSpeedMultiplier,
new ConfigDescription("Speed multiplier for Sorters", new AcceptableValueRange<int>(1, 5))).Value; new ConfigDescription("Speed multiplier for Sorters", new AcceptableValueRange<int>(1, 5))).Value;
sorterPowerConsumptionMultiplier = Config.Bind("Sorter", "PowerConsumptionMultiplier", sorterPowerConsumptionMultiplier,
new ConfigDescription("Power consumption multiplier for Smelters and Assembling Machines", new AcceptableValueRange<int>(1, 100))).Value;
assembleSpeedMultiplier = Config.Bind("Assemble", "SpeedMultiplier", assembleSpeedMultiplier, assembleSpeedMultiplier = Config.Bind("Assemble", "SpeedMultiplier", assembleSpeedMultiplier,
new ConfigDescription("Speed multiplier for Smelters and Assembling Machines", new AcceptableValueRange<int>(1, 10))).Value; new ConfigDescription("Speed multiplier for Smelters and Assembling Machines", new AcceptableValueRange<int>(1, 10))).Value;
powerConsumptionMultiplier = Config.Bind("Assemble", "PowerConsumptionMultiplier", powerConsumptionMultiplier, assemblePowerConsumptionMultiplier = Config.Bind("Assemble", "PowerConsumptionMultiplier", assemblePowerConsumptionMultiplier,
new ConfigDescription("Power consumption multiplier for Smelters and Assembling Machines", new AcceptableValueRange<int>(1, 100))).Value;
minerSpeedMultiplier = Config.Bind("Miner", "SpeedMultiplier", minerSpeedMultiplier,
new ConfigDescription("Speed multiplier for Smelters and Assembling Machines", new AcceptableValueRange<int>(1, 10))).Value;
minerPowerConsumptionMultiplier = Config.Bind("Miner", "PowerConsumptionMultiplier", minerPowerConsumptionMultiplier,
new ConfigDescription("Power consumption multiplier for Smelters and Assembling Machines", new AcceptableValueRange<int>(1, 100))).Value; new ConfigDescription("Power consumption multiplier for Smelters and Assembling Machines", new AcceptableValueRange<int>(1, 100))).Value;
powerGenerationMultiplier = Config.Bind("Power", "GenerationMultiplier", powerGenerationMultiplier, powerGenerationMultiplier = Config.Bind("Power", "GenerationMultiplier", powerGenerationMultiplier,
new ConfigDescription("Power generation multiplier for all power providers", new AcceptableValueRange<long>(1, 10))).Value; new ConfigDescription("Power generation multiplier for all power providers", new AcceptableValueRange<long>(1, 10))).Value;
@@ -44,12 +53,28 @@ public class Patch : BaseUnityPlugin
Harmony.CreateAndPatchAll(typeof(BeltFix)); Harmony.CreateAndPatchAll(typeof(BeltFix));
} }
private static void BoostSorter(int id)
{
var prefabDesc = LDB.items.Select(id).prefabDesc;
prefabDesc.inserterSTT *= sorterSpeedMultiplier;
prefabDesc.idleEnergyPerTick *= sorterPowerConsumptionMultiplier;
prefabDesc.workEnergyPerTick *= sorterPowerConsumptionMultiplier;
}
private static void BoostAssembler(int id) private static void BoostAssembler(int id)
{ {
var prefabDesc = LDB.items.Select(id).prefabDesc; var prefabDesc = LDB.items.Select(id).prefabDesc;
prefabDesc.assemblerSpeed *= assembleSpeedMultiplier; prefabDesc.assemblerSpeed *= assembleSpeedMultiplier;
prefabDesc.idleEnergyPerTick *= powerConsumptionMultiplier; prefabDesc.idleEnergyPerTick *= assemblePowerConsumptionMultiplier;
prefabDesc.workEnergyPerTick *= powerConsumptionMultiplier; prefabDesc.workEnergyPerTick *= assemblePowerConsumptionMultiplier;
}
private static void BoostMiner(int id)
{
var prefabDesc = LDB.items.Select(id).prefabDesc;
prefabDesc.minerPeriod /= minerSpeedMultiplier;
prefabDesc.idleEnergyPerTick *= minerPowerConsumptionMultiplier;
prefabDesc.workEnergyPerTick *= minerPowerConsumptionMultiplier;
} }
private static void BoostPower(int id) private static void BoostPower(int id)
@@ -57,6 +82,13 @@ public class Patch : BaseUnityPlugin
var prefabDesc = LDB.items.Select(id).prefabDesc; var prefabDesc = LDB.items.Select(id).prefabDesc;
prefabDesc.genEnergyPerTick *= powerGenerationMultiplier; prefabDesc.genEnergyPerTick *= powerGenerationMultiplier;
prefabDesc.useFuelPerTick *= powerFuelConsumptionMultiplier; prefabDesc.useFuelPerTick *= powerFuelConsumptionMultiplier;
if (prefabDesc.isPowerExchanger) prefabDesc.exchangeEnergyPerTick *= powerFuelConsumptionMultiplier;
if (prefabDesc.isAccumulator)
{
prefabDesc.maxAcuEnergy *= powerGenerationMultiplier;
prefabDesc.inputEnergyPerTick *= powerGenerationMultiplier;
prefabDesc.outputEnergyPerTick *= powerGenerationMultiplier;
}
} }
[HarmonyPostfix, HarmonyPatch(typeof(VFPreload), "InvokeOnLoadWorkEnded")] [HarmonyPostfix, HarmonyPatch(typeof(VFPreload), "InvokeOnLoadWorkEnded")]
@@ -68,9 +100,9 @@ public class Patch : BaseUnityPlugin
LDB.items.Select(2003).prefabDesc.beltSpeed = (int)beltSpeed[2]; LDB.items.Select(2003).prefabDesc.beltSpeed = (int)beltSpeed[2];
// Sorters // Sorters
LDB.items.Select(2011).prefabDesc.inserterSTT /= sorterSpeedMultiplier; BoostSorter(2011);
LDB.items.Select(2012).prefabDesc.inserterSTT /= sorterSpeedMultiplier; BoostSorter(2012);
LDB.items.Select(2013).prefabDesc.inserterSTT /= sorterSpeedMultiplier; BoostSorter(2013);
// Smelters // Smelters
BoostAssembler(2302); BoostAssembler(2302);
@@ -87,6 +119,15 @@ public class Patch : BaseUnityPlugin
// Collider // Collider
BoostAssembler(2310); BoostAssembler(2310);
// Mining Machine
BoostMiner(2301);
// Advanced Mining Machine
BoostMiner(2316);
// Water Pump
BoostMiner(2306);
// Oil Extractor
BoostMiner(2307);
// Thermal // Thermal
BoostPower(2204); BoostPower(2204);
// Fusion // Fusion
@@ -99,5 +140,9 @@ public class Patch : BaseUnityPlugin
BoostPower(2205); BoostPower(2205);
// Geothermal // Geothermal
BoostPower(2213); BoostPower(2213);
// Energy Exchanger
BoostPower(2209);
// Ray Receiver
BoostPower(2208);
} }
} }