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

minor performance opt

This commit is contained in:
2023-10-15 17:02:16 +08:00
parent 7fae7cc66e
commit bdf77d51ca

View File

@@ -361,17 +361,6 @@ public static class DysonSpherePatch
private static void DoAbsorb(DysonSphereLayer layer, long gameTick) private static void DoAbsorb(DysonSphereLayer layer, long gameTick)
{ {
var swarm = layer.dysonSphere.swarm; var swarm = layer.dysonSphere.swarm;
if (SkipAbsorbEnabled.Value)
{
for (var i = layer.nodeCursor - 1; i > 0; i--)
{
var node = layer.nodePool[i];
if (node == null || node.id != i || node.sp < node.spMax) continue;
if (node._cpReq <= node.cpOrdered) continue;
while (swarm.AbsorbSail(node, gameTick)) {}
}
return;
}
for (var i = layer.nodeCursor - 1; i > 0; i--) for (var i = layer.nodeCursor - 1; i > 0; i--)
{ {
var node = layer.nodePool[i]; var node = layer.nodePool[i];
@@ -379,14 +368,18 @@ public static class DysonSpherePatch
var req = node._cpReq; var req = node._cpReq;
var ordered = node.cpOrdered; var ordered = node.cpOrdered;
if (req <= ordered) continue; if (req <= ordered) continue;
if (!swarm.AbsorbSail(node, gameTick)) continue; if (!swarm.AbsorbSail(node, gameTick)) return; // No more sails can be absorbed
ordered++; ordered++;
while (req > ordered) while (req > ordered)
{ {
if (!swarm.AbsorbSail(node, gameTick)) break; if (!swarm.AbsorbSail(node, gameTick))
{
// No more sails can be absorbed
node.cpOrdered = ordered;
return;
}
ordered++; ordered++;
} }
node.cpOrdered = ordered;
} }
} }
} }