mirror of
https://github.com/soarqin/DSP_Mods.git
synced 2025-12-08 23:33:33 +08:00
Work in progress
This commit is contained in:
@@ -1,5 +1,4 @@
|
|||||||
using System;
|
using BepInEx;
|
||||||
using BepInEx;
|
|
||||||
using BepInEx.Configuration;
|
using BepInEx.Configuration;
|
||||||
using HarmonyLib;
|
using HarmonyLib;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@@ -58,71 +57,6 @@ 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;
|
|
||||||
if (prefabDesc.isInserter)
|
|
||||||
{
|
|
||||||
prefabDesc.inserterSTT *= sorterSpeedMultiplier;
|
|
||||||
prefabDesc.idleEnergyPerTick *= sorterPowerConsumptionMultiplier;
|
|
||||||
prefabDesc.workEnergyPerTick *= sorterPowerConsumptionMultiplier;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void BoostAssembler(int id)
|
|
||||||
{
|
|
||||||
var prefabDesc = LDB.items.Select(id).prefabDesc;
|
|
||||||
if (prefabDesc.isAssembler)
|
|
||||||
{
|
|
||||||
prefabDesc.assemblerSpeed *= assembleSpeedMultiplier;
|
|
||||||
prefabDesc.idleEnergyPerTick *= assemblePowerConsumptionMultiplier;
|
|
||||||
prefabDesc.workEnergyPerTick *= assemblePowerConsumptionMultiplier;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void BoostMiner(int id)
|
|
||||||
{
|
|
||||||
var prefabDesc = LDB.items.Select(id).prefabDesc;
|
|
||||||
if (prefabDesc.minerType != EMinerType.None)
|
|
||||||
{
|
|
||||||
prefabDesc.minerPeriod /= minerSpeedMultiplier;
|
|
||||||
prefabDesc.idleEnergyPerTick *= minerPowerConsumptionMultiplier;
|
|
||||||
prefabDesc.workEnergyPerTick *= minerPowerConsumptionMultiplier;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void BoostPower(int id)
|
|
||||||
{
|
|
||||||
var prefabDesc = LDB.items.Select(id).prefabDesc;
|
|
||||||
if (prefabDesc.isPowerGen || prefabDesc.isPowerExchanger)
|
|
||||||
{
|
|
||||||
prefabDesc.genEnergyPerTick *= powerGenerationMultiplier;
|
|
||||||
prefabDesc.useFuelPerTick *= 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)
|
|
||||||
{
|
|
||||||
prefabDesc.maxAcuEnergy *= powerGenerationMultiplier;
|
|
||||||
prefabDesc.inputEnergyPerTick *= powerGenerationMultiplier;
|
|
||||||
prefabDesc.outputEnergyPerTick *= powerGenerationMultiplier;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[HarmonyPostfix, HarmonyPriority(Priority.Last), HarmonyPatch(typeof(VFPreload), "InvokeOnLoadWorkEnded")]
|
[HarmonyPostfix, HarmonyPriority(Priority.Last), HarmonyPatch(typeof(VFPreload), "InvokeOnLoadWorkEnded")]
|
||||||
private static void VFPreload_InvokeOnLoadWorkEnded_Postfix()
|
private static void VFPreload_InvokeOnLoadWorkEnded_Postfix()
|
||||||
{
|
{
|
||||||
@@ -131,50 +65,54 @@ public class Patch : BaseUnityPlugin
|
|||||||
LDB.items.Select(2002).prefabDesc.beltSpeed = (int)beltSpeed[1];
|
LDB.items.Select(2002).prefabDesc.beltSpeed = (int)beltSpeed[1];
|
||||||
LDB.items.Select(2003).prefabDesc.beltSpeed = (int)beltSpeed[2];
|
LDB.items.Select(2003).prefabDesc.beltSpeed = (int)beltSpeed[2];
|
||||||
|
|
||||||
// Sorters
|
foreach (var proto in LDB.items.dataArray)
|
||||||
BoostSorter(2011);
|
{
|
||||||
BoostSorter(2012);
|
var prefabDesc = proto.prefabDesc;
|
||||||
BoostSorter(2013);
|
if (prefabDesc.isInserter)
|
||||||
|
{
|
||||||
// Smelters
|
prefabDesc.inserterSTT *= sorterSpeedMultiplier;
|
||||||
BoostAssembler(2302);
|
prefabDesc.idleEnergyPerTick *= sorterPowerConsumptionMultiplier;
|
||||||
BoostAssembler(2315);
|
prefabDesc.workEnergyPerTick *= sorterPowerConsumptionMultiplier;
|
||||||
// Assemblers
|
}
|
||||||
BoostAssembler(2303);
|
if (prefabDesc.isAssembler)
|
||||||
BoostAssembler(2304);
|
{
|
||||||
BoostAssembler(2305);
|
prefabDesc.assemblerSpeed *= assembleSpeedMultiplier;
|
||||||
// Chemical Plants
|
prefabDesc.idleEnergyPerTick *= assemblePowerConsumptionMultiplier;
|
||||||
BoostAssembler(2309);
|
prefabDesc.workEnergyPerTick *= assemblePowerConsumptionMultiplier;
|
||||||
BoostAssembler(2317);
|
}
|
||||||
// Refiner
|
if (prefabDesc.minerType != EMinerType.None)
|
||||||
BoostAssembler(2308);
|
{
|
||||||
// Collider
|
prefabDesc.minerPeriod /= minerSpeedMultiplier;
|
||||||
BoostAssembler(2310);
|
prefabDesc.idleEnergyPerTick *= minerPowerConsumptionMultiplier;
|
||||||
|
prefabDesc.workEnergyPerTick *= minerPowerConsumptionMultiplier;
|
||||||
// Mining Machine
|
}
|
||||||
BoostMiner(2301);
|
if (prefabDesc.isPowerGen || prefabDesc.isPowerExchanger || prefabDesc.isAccumulator)
|
||||||
// Advanced Mining Machine
|
{
|
||||||
BoostMiner(2316);
|
prefabDesc.genEnergyPerTick *= powerGenerationMultiplier;
|
||||||
// Water Pump
|
prefabDesc.useFuelPerTick *= powerFuelConsumptionMultiplier;
|
||||||
BoostMiner(2306);
|
if (prefabDesc.isPowerConsumer)
|
||||||
// Oil Extractor
|
{
|
||||||
BoostMiner(2307);
|
prefabDesc.idleEnergyPerTick *= powerGenerationMultiplier;
|
||||||
|
prefabDesc.workEnergyPerTick *= powerGenerationMultiplier;
|
||||||
// Thermal
|
}
|
||||||
BoostPower(2204);
|
if (prefabDesc.isPowerExchanger)
|
||||||
// Fusion
|
{
|
||||||
BoostPower(2211);
|
prefabDesc.exchangeEnergyPerTick *= powerFuelConsumptionMultiplier;
|
||||||
// Artificial Star
|
}
|
||||||
BoostPower(2210);
|
if (prefabDesc.isAccumulator)
|
||||||
// Wind Turbine
|
{
|
||||||
BoostPower(2203);
|
prefabDesc.maxAcuEnergy *= powerGenerationMultiplier;
|
||||||
// Solar Panel
|
prefabDesc.inputEnergyPerTick *= powerGenerationMultiplier;
|
||||||
BoostPower(2205);
|
prefabDesc.outputEnergyPerTick *= powerGenerationMultiplier;
|
||||||
// Geothermal
|
}
|
||||||
BoostPower(2213);
|
}
|
||||||
// Energy Exchanger
|
if (prefabDesc.isPowerNode)
|
||||||
BoostPower(2209);
|
{
|
||||||
// Ray Receiver
|
prefabDesc.powerConnectDistance =
|
||||||
BoostPower(2208);
|
Mathf.Floor(prefabDesc.powerConnectDistance) * prefabDesc.powerConnectDistance + 0.5f;
|
||||||
|
prefabDesc.powerCoverRadius =
|
||||||
|
Mathf.Floor(prefabDesc.powerCoverRadius) * prefabDesc.powerConnectDistance + 0.5f;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user