From b5b16df9e0779ed31befb90b5d00cb41f6cf7b43 Mon Sep 17 00:00:00 2001 From: tjk-ws <67940579+tjk-ws@users.noreply.github.com> Date: Sat, 6 Jul 2024 15:28:40 -0500 Subject: [PATCH] Fix parallel queues not pausing production when more than one item is queued --- .../Traits/Player/ClassicParallelProductionQueue.cs | 6 ++++++ OpenRA.Mods.Common/Traits/Player/ParallelProductionQueue.cs | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/OpenRA.Mods.Common/Traits/Player/ClassicParallelProductionQueue.cs b/OpenRA.Mods.Common/Traits/Player/ClassicParallelProductionQueue.cs index 39046d410b..310ddd5e9d 100644 --- a/OpenRA.Mods.Common/Traits/Player/ClassicParallelProductionQueue.cs +++ b/OpenRA.Mods.Common/Traits/Player/ClassicParallelProductionQueue.cs @@ -192,6 +192,12 @@ namespace OpenRA.Mods.Common.Traits base.BeginProduction(item, false); } + protected override void PauseProduction(string itemName, bool paused) + { + foreach (var item in Queue.Where(a => a.Item == itemName)) + item.Pause(paused); + } + public override int GetBuildTime(ActorInfo unit, BuildableInfo bi) { if (developerMode.FastBuild) diff --git a/OpenRA.Mods.Common/Traits/Player/ParallelProductionQueue.cs b/OpenRA.Mods.Common/Traits/Player/ParallelProductionQueue.cs index 9d80b02639..59cbfc599d 100644 --- a/OpenRA.Mods.Common/Traits/Player/ParallelProductionQueue.cs +++ b/OpenRA.Mods.Common/Traits/Player/ParallelProductionQueue.cs @@ -56,6 +56,12 @@ namespace OpenRA.Mods.Common.Traits base.BeginProduction(item, false); } + protected override void PauseProduction(string itemName, bool paused) + { + foreach (var item in Queue.Where(a => a.Item == itemName)) + item.Pause(paused); + } + public override int RemainingTimeActual(ProductionItem item) { var parallelBuilds = Queue.FindAll(i => !i.Paused && !i.Done)