1
0
mirror of https://github.com/soarqin/DSP_Mods.git synced 2025-12-10 07:23:28 +08:00

belt signal fix

This commit is contained in:
2023-12-03 01:12:21 +08:00
parent 22a44bc266
commit dd09dcb6ef

View File

@@ -541,6 +541,8 @@ public static class FactoryPatch
speedLimit = number; speedLimit = number;
} }
if (speedLimit > 3600) speedLimit = 3600;
var signalBelts = GetOrCreateSignalBelts(factory); var signalBelts = GetOrCreateSignalBelts(factory);
if (signalBelts.TryGetValue(beltId, out var oldBeltSignal)) if (signalBelts.TryGetValue(beltId, out var oldBeltSignal))
{ {
@@ -823,11 +825,18 @@ public static class FactoryPatch
} }
case >= 1000 and < 20000: case >= 1000 and < 20000:
{ {
if (beltSignal.SpeedLimit > 0) var hasSpeedLimit = beltSignal.SpeedLimit > 0;
if (hasSpeedLimit)
{ {
beltSignal.Progress += beltSignal.SpeedLimit; beltSignal.Progress += beltSignal.SpeedLimit;
if (beltSignal.Progress < 3600) continue; switch (beltSignal.Progress)
beltSignal.Progress %= 3600; {
case < 3600:
continue;
case > 18000:
beltSignal.Progress = 14400;
break;
}
} }
var beltId = pair.Key; var beltId = pair.Key;
@@ -837,6 +846,7 @@ public static class FactoryPatch
var stack = beltSignal.Stack; var stack = beltSignal.Stack;
var inc = beltSignal.Inc; var inc = beltSignal.Inc;
if (!cargoPath.TryInsertItem(belt.segIndex + belt.segPivotOffset, signalId, stack, inc)) continue; if (!cargoPath.TryInsertItem(belt.segIndex + belt.segPivotOffset, signalId, stack, inc)) continue;
if (hasSpeedLimit) beltSignal.Progress -= 3600;
productRegister[signalId] += stack; productRegister[signalId] += stack;
if (!countRecipe) continue; if (!countRecipe) continue;
var sources = beltSignal.Sources; var sources = beltSignal.Sources;