mirror of
https://github.com/soarqin/DSP_Mods.git
synced 2025-12-09 00:13:36 +08:00
Work in progress
This commit is contained in:
@@ -1,6 +1,8 @@
|
|||||||
using BepInEx;
|
using System;
|
||||||
|
using BepInEx;
|
||||||
using BepInEx.Configuration;
|
using BepInEx.Configuration;
|
||||||
using HarmonyLib;
|
using HarmonyLib;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
namespace OverclockEverything;
|
namespace OverclockEverything;
|
||||||
|
|
||||||
@@ -22,6 +24,7 @@ public class Patch : BaseUnityPlugin
|
|||||||
private static int minerPowerConsumptionMultiplier = 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;
|
||||||
|
private static long powerSupplyAreaMultiplier = 2;
|
||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
@@ -49,6 +52,8 @@ public class Patch : BaseUnityPlugin
|
|||||||
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;
|
||||||
powerFuelConsumptionMultiplier = Config.Bind("Power", "FuelConsumptionMultiplier", powerFuelConsumptionMultiplier,
|
powerFuelConsumptionMultiplier = Config.Bind("Power", "FuelConsumptionMultiplier", powerFuelConsumptionMultiplier,
|
||||||
new ConfigDescription("Fuel consumption multiplier for all fuel-consuming power providers", new AcceptableValueRange<long>(1, 10))).Value;
|
new ConfigDescription("Fuel consumption multiplier for all fuel-consuming power providers", new AcceptableValueRange<long>(1, 10))).Value;
|
||||||
|
powerSupplyAreaMultiplier = Config.Bind("Power", "SupplyAreaMultiplier", powerSupplyAreaMultiplier,
|
||||||
|
new ConfigDescription("Connection length and supply area radius multiplier for power providers", new AcceptableValueRange<long>(1, 10))).Value;
|
||||||
Harmony.CreateAndPatchAll(typeof(Patch));
|
Harmony.CreateAndPatchAll(typeof(Patch));
|
||||||
Harmony.CreateAndPatchAll(typeof(BeltFix));
|
Harmony.CreateAndPatchAll(typeof(BeltFix));
|
||||||
}
|
}
|
||||||
@@ -56,33 +61,59 @@ public class Patch : BaseUnityPlugin
|
|||||||
private static void BoostSorter(int id)
|
private static void BoostSorter(int id)
|
||||||
{
|
{
|
||||||
var prefabDesc = LDB.items.Select(id).prefabDesc;
|
var prefabDesc = LDB.items.Select(id).prefabDesc;
|
||||||
|
if (prefabDesc.isInserter)
|
||||||
|
{
|
||||||
prefabDesc.inserterSTT *= sorterSpeedMultiplier;
|
prefabDesc.inserterSTT *= sorterSpeedMultiplier;
|
||||||
prefabDesc.idleEnergyPerTick *= sorterPowerConsumptionMultiplier;
|
prefabDesc.idleEnergyPerTick *= sorterPowerConsumptionMultiplier;
|
||||||
prefabDesc.workEnergyPerTick *= 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;
|
||||||
|
if (prefabDesc.isAssembler)
|
||||||
|
{
|
||||||
prefabDesc.assemblerSpeed *= assembleSpeedMultiplier;
|
prefabDesc.assemblerSpeed *= assembleSpeedMultiplier;
|
||||||
prefabDesc.idleEnergyPerTick *= assemblePowerConsumptionMultiplier;
|
prefabDesc.idleEnergyPerTick *= assemblePowerConsumptionMultiplier;
|
||||||
prefabDesc.workEnergyPerTick *= assemblePowerConsumptionMultiplier;
|
prefabDesc.workEnergyPerTick *= assemblePowerConsumptionMultiplier;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static void BoostMiner(int id)
|
private static void BoostMiner(int id)
|
||||||
{
|
{
|
||||||
var prefabDesc = LDB.items.Select(id).prefabDesc;
|
var prefabDesc = LDB.items.Select(id).prefabDesc;
|
||||||
|
if (prefabDesc.minerType != EMinerType.None)
|
||||||
|
{
|
||||||
prefabDesc.minerPeriod /= minerSpeedMultiplier;
|
prefabDesc.minerPeriod /= minerSpeedMultiplier;
|
||||||
prefabDesc.idleEnergyPerTick *= minerPowerConsumptionMultiplier;
|
prefabDesc.idleEnergyPerTick *= minerPowerConsumptionMultiplier;
|
||||||
prefabDesc.workEnergyPerTick *= minerPowerConsumptionMultiplier;
|
prefabDesc.workEnergyPerTick *= minerPowerConsumptionMultiplier;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static void BoostPower(int id)
|
private static void BoostPower(int id)
|
||||||
{
|
{
|
||||||
var prefabDesc = LDB.items.Select(id).prefabDesc;
|
var prefabDesc = LDB.items.Select(id).prefabDesc;
|
||||||
|
if (prefabDesc.isPowerGen || prefabDesc.isPowerExchanger)
|
||||||
|
{
|
||||||
prefabDesc.genEnergyPerTick *= powerGenerationMultiplier;
|
prefabDesc.genEnergyPerTick *= powerGenerationMultiplier;
|
||||||
prefabDesc.useFuelPerTick *= powerFuelConsumptionMultiplier;
|
prefabDesc.useFuelPerTick *= powerFuelConsumptionMultiplier;
|
||||||
if (prefabDesc.isPowerExchanger) prefabDesc.exchangeEnergyPerTick *= powerFuelConsumptionMultiplier;
|
if (prefabDesc.isPowerConsumer)
|
||||||
|
{
|
||||||
|
prefabDesc.idleEnergyPerTick *= powerGenerationMultiplier;
|
||||||
|
prefabDesc.workEnergyPerTick *= powerGenerationMultiplier;
|
||||||
|
}
|
||||||
|
if (prefabDesc.isPowerNode)
|
||||||
|
{
|
||||||
|
prefabDesc.powerConnectDistance =
|
||||||
|
Mathf.Floor(prefabDesc.powerConnectDistance) * prefabDesc.powerConnectDistance + 0.5f;
|
||||||
|
prefabDesc.powerCoverRadius =
|
||||||
|
Mathf.Floor(prefabDesc.powerCoverRadius) * prefabDesc.powerConnectDistance + 0.5f;
|
||||||
|
}
|
||||||
|
if (prefabDesc.isPowerExchanger)
|
||||||
|
{
|
||||||
|
prefabDesc.exchangeEnergyPerTick *= powerFuelConsumptionMultiplier;
|
||||||
|
}
|
||||||
if (prefabDesc.isAccumulator)
|
if (prefabDesc.isAccumulator)
|
||||||
{
|
{
|
||||||
prefabDesc.maxAcuEnergy *= powerGenerationMultiplier;
|
prefabDesc.maxAcuEnergy *= powerGenerationMultiplier;
|
||||||
@@ -90,8 +121,9 @@ public class Patch : BaseUnityPlugin
|
|||||||
prefabDesc.outputEnergyPerTick *= powerGenerationMultiplier;
|
prefabDesc.outputEnergyPerTick *= powerGenerationMultiplier;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[HarmonyPostfix, HarmonyPatch(typeof(VFPreload), "InvokeOnLoadWorkEnded")]
|
[HarmonyPostfix, HarmonyPriority(Priority.Last), HarmonyPatch(typeof(VFPreload), "InvokeOnLoadWorkEnded")]
|
||||||
private static void VFPreload_InvokeOnLoadWorkEnded_Postfix()
|
private static void VFPreload_InvokeOnLoadWorkEnded_Postfix()
|
||||||
{
|
{
|
||||||
// Belts
|
// Belts
|
||||||
|
|||||||
Reference in New Issue
Block a user