1
0
mirror of https://github.com/soarqin/DSP_Mods.git synced 2025-12-09 15:33:31 +08:00

PoolOpt 0.9.1

This commit is contained in:
2023-09-02 20:24:04 +08:00
parent 0ddcdb1eac
commit 96da6823b2
4 changed files with 8 additions and 4 deletions

View File

@@ -85,7 +85,7 @@ public class PoolOptPatch : BaseUnityPlugin
var factoryStorage = planet.factoryStorage;
if (factoryStorage != null)
{
if (OptimizePool((in StorageComponent n) => n?.id ?? n.id, 64,
if (OptimizePool((in StorageComponent n) => n?.id ?? 0, 64,
ref factoryStorage.storagePool, ref factoryStorage.storageCursor, ref factoryStorage.storageCapacity,
ref factoryStorage.storageRecycle, ref factoryStorage.storageRecycleCursor))
Logger.LogDebug($"Optimized `{nameof(factoryStorage.storagePool)}` on Planet {planet.planetId}");
@@ -244,7 +244,7 @@ public class PoolOptPatch : BaseUnityPlugin
private static bool OptimizePool<T>(GetId<T> getter, int initCapacity, ref T[] pool, ref int cursor, ref int capacity, ref int[] recycle, ref int recycleCursor)
{
if (cursor <= 1) return false;
if (recycleCursor == pool.Length)
if (recycleCursor == cursor - 1)
{
cursor = 1;
capacity = initCapacity;