mirror of
https://github.com/soarqin/DSP_Mods.git
synced 2025-12-08 21:33:28 +08:00
WIP
This commit is contained in:
78
PoolOpt/PoolOpt.cs
Normal file
78
PoolOpt/PoolOpt.cs
Normal file
@@ -0,0 +1,78 @@
|
||||
using BepInEx;
|
||||
using HarmonyLib;
|
||||
|
||||
namespace PoolOpt;
|
||||
|
||||
[BepInPlugin(PluginInfo.PLUGIN_GUID, PluginInfo.PLUGIN_NAME, PluginInfo.PLUGIN_VERSION)]
|
||||
public class PoolOptPatch : BaseUnityPlugin
|
||||
{
|
||||
public new static readonly BepInEx.Logging.ManualLogSource Logger =
|
||||
BepInEx.Logging.Logger.CreateLogSource(PluginInfo.PLUGIN_NAME);
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
Harmony.CreateAndPatchAll(typeof(PoolOptPatch));
|
||||
}
|
||||
|
||||
[HarmonyPostfix]
|
||||
[HarmonyPatch(typeof(GameSave), nameof(GameSave.LoadCurrentGame))]
|
||||
private static void GameSave_LoadCurrentGame_Postfix()
|
||||
{
|
||||
DebugOutput();
|
||||
}
|
||||
|
||||
private static void DebugOutput()
|
||||
{
|
||||
foreach (var planet in GameMain.data.factories)
|
||||
{
|
||||
if (planet == null) continue;
|
||||
Logger.LogDebug($"Planet: {planet.planetId}");
|
||||
var cargoTraffic = planet.cargoTraffic;
|
||||
if (cargoTraffic != null)
|
||||
{
|
||||
Logger.LogDebug($" Cargo: Belt=[{cargoTraffic.beltCursor},{cargoTraffic.beltCapacity},{cargoTraffic.beltRecycleCursor}]");
|
||||
Logger.LogDebug($" Path=[{cargoTraffic.pathCursor},{cargoTraffic.pathCapacity},{cargoTraffic.pathRecycleCursor}]");
|
||||
Logger.LogDebug($" Splitter=[{cargoTraffic.splitterCursor},{cargoTraffic.splitterCapacity},{cargoTraffic.splitterRecycleCursor}]");
|
||||
Logger.LogDebug($" Monitor=[{cargoTraffic.monitorCursor},{cargoTraffic.monitorCapacity},{cargoTraffic.monitorRecycleCursor}]");
|
||||
Logger.LogDebug($" Spraycoater=[{cargoTraffic.spraycoaterCursor},{cargoTraffic.spraycoaterCapacity},{cargoTraffic.spraycoaterRecycleCursor}]");
|
||||
Logger.LogDebug($" Piler=[{cargoTraffic.pilerCursor},{cargoTraffic.pilerCapacity},{cargoTraffic.pilerRecycleCursor}]");
|
||||
}
|
||||
|
||||
var factoryStorage = planet.factoryStorage;
|
||||
if (factoryStorage != null)
|
||||
{
|
||||
Logger.LogDebug($" Storage: Storage=[{factoryStorage.storageCursor},{factoryStorage.storageCapacity},{factoryStorage.storageRecycleCursor}]");
|
||||
Logger.LogDebug($" Tank=[{factoryStorage.tankCursor},{factoryStorage.tankCapacity},{factoryStorage.tankRecycleCursor}]");
|
||||
}
|
||||
var factorySystem = planet.factorySystem;
|
||||
if (factorySystem != null)
|
||||
{
|
||||
Logger.LogDebug($" Factory: Storage=[{factorySystem.minerCursor},{factorySystem.minerCapacity},{factorySystem.minerRecycleCursor}]");
|
||||
Logger.LogDebug($" Inserter=[{factorySystem.inserterCursor},{factorySystem.inserterCapacity},{factorySystem.inserterRecycleCursor}]");
|
||||
Logger.LogDebug($" Assembler=[{factorySystem.assemblerCursor},{factorySystem.assemblerCapacity},{factorySystem.assemblerRecycleCursor}]");
|
||||
Logger.LogDebug($" Fractionator=[{factorySystem.fractionatorCursor},{factorySystem.fractionatorCapacity},{factorySystem.fractionatorRecycleCursor}]");
|
||||
Logger.LogDebug($" Ejector=[{factorySystem.ejectorCursor},{factorySystem.ejectorCapacity},{factorySystem.ejectorRecycleCursor}]");
|
||||
Logger.LogDebug($" Silo=[{factorySystem.siloCursor},{factorySystem.siloCapacity},{factorySystem.siloRecycleCursor}]");
|
||||
Logger.LogDebug($" Lab=[{factorySystem.labCursor},{factorySystem.labCapacity},{factorySystem.labRecycleCursor}]");
|
||||
}
|
||||
|
||||
var transport = planet.transport;
|
||||
if (transport != null)
|
||||
{
|
||||
Logger.LogDebug($" Transport: Station=[{transport.stationCursor},{transport.stationCapacity},{transport.stationRecycleCursor}]");
|
||||
Logger.LogDebug($" Dispenser=[{transport.dispenserCursor},{transport.dispenserCapacity},{transport.dispenserRecycleCursor}]");
|
||||
}
|
||||
|
||||
var powerSystem = planet.powerSystem;
|
||||
if (powerSystem != null)
|
||||
{
|
||||
Logger.LogDebug($" Power: Gen=[{powerSystem.genCursor},{powerSystem.genCapacity},{powerSystem.genRecycleCursor}]");
|
||||
Logger.LogDebug($" Node=[{powerSystem.nodeCursor},{powerSystem.nodeCapacity},{powerSystem.nodeRecycleCursor}]");
|
||||
Logger.LogDebug($" consumer=[{powerSystem.consumerCursor},{powerSystem.consumerCapacity},{powerSystem.consumerRecycleCursor}]");
|
||||
Logger.LogDebug($" acc=[{powerSystem.accCursor},{powerSystem.accCapacity},{powerSystem.accRecycleCursor}]");
|
||||
Logger.LogDebug($" exc=[{powerSystem.excCursor},{powerSystem.excCapacity},{powerSystem.excRecycleCursor}]");
|
||||
Logger.LogDebug($" net=[{powerSystem.netCursor},{powerSystem.netCapacity},{powerSystem.netRecycleCursor}]");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
27
PoolOpt/PoolOpt.csproj
Normal file
27
PoolOpt/PoolOpt.csproj
Normal file
@@ -0,0 +1,27 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net472</TargetFramework>
|
||||
<AssemblyName>PoolOpt</AssemblyName>
|
||||
<BepInExPluginGuid>org.soardev.poolopt</BepInExPluginGuid>
|
||||
<Description>DSP MOD - PoolOpt</Description>
|
||||
<Version>0.1.0</Version>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<LangVersion>latest</LangVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="BepInEx.Core" Version="5.*" />
|
||||
<PackageReference Include="BepInEx.PluginInfoProps" Version="1.*" />
|
||||
<PackageReference Include="DysonSphereProgram.GameLibs" Version="*-r.*" />
|
||||
<PackageReference Include="UnityEngine.Modules" Version="2018.4.12" IncludeAssets="compile" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="'$(TargetFramework.TrimEnd(`0123456789`))' == 'net'">
|
||||
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.3" PrivateAssets="all" />
|
||||
</ItemGroup>
|
||||
|
||||
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
|
||||
<Exec Command="del /F /Q package\$(ProjectName)-$(Version).zip
zip -9 -j package/$(ProjectName)-$(Version).zip $(TargetPath) package/icon.png package/manifest.json README.md" />
|
||||
</Target>
|
||||
</Project>
|
||||
4
PoolOpt/README.md
Normal file
4
PoolOpt/README.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# PoolOpt
|
||||
|
||||
#### Optimize memory pools on loading gamesaves
|
||||
#### 加载游戏存档时优化内存池的使用
|
||||
BIN
PoolOpt/package/icon.png
Normal file
BIN
PoolOpt/package/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.6 KiB |
9
PoolOpt/package/manifest.json
Normal file
9
PoolOpt/package/manifest.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "PoolOpt",
|
||||
"version_number": "0.1.0",
|
||||
"website_url": "https://github.com/soarqin/DSP_Mods/tree/master/PoolOpt",
|
||||
"description": "Optimize memory pools on loading gamesaves / 加载游戏存档时优化内存池的使用",
|
||||
"dependencies": [
|
||||
"xiaoye97-BepInEx-5.4.17"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user