From f968b169add2e80704630e90696fdfa422848878 Mon Sep 17 00:00:00 2001 From: abcdefg30 Date: Sat, 4 Aug 2018 15:47:23 +0200 Subject: [PATCH] Fix PrimaryBuilding changing the status of and from disabled queues --- OpenRA.Mods.Common/Traits/Buildings/PrimaryBuilding.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/OpenRA.Mods.Common/Traits/Buildings/PrimaryBuilding.cs b/OpenRA.Mods.Common/Traits/Buildings/PrimaryBuilding.cs index a657a14844..e923a329bb 100644 --- a/OpenRA.Mods.Common/Traits/Buildings/PrimaryBuilding.cs +++ b/OpenRA.Mods.Common/Traits/Buildings/PrimaryBuilding.cs @@ -94,7 +94,8 @@ namespace OpenRA.Mods.Common.Traits { // Cancel existing primaries // TODO: THIS IS SHIT - var queues = Info.ProductionQueues.Length == 0 ? self.Info.TraitInfos().SelectMany(pi => pi.Produces) : Info.ProductionQueues; + var queues = Info.ProductionQueues.Length == 0 ? self.TraitsImplementing() + .Where(t => !t.IsTraitDisabled).SelectMany(pi => pi.Info.Produces) : Info.ProductionQueues; foreach (var q in queues) { foreach (var b in self.World @@ -103,7 +104,7 @@ namespace OpenRA.Mods.Common.Traits a.Actor != self && a.Actor.Owner == self.Owner && a.Trait.IsPrimary && - a.Actor.Info.TraitInfos().Any(pi => pi.Produces.Contains(q)))) + a.Actor.TraitsImplementing().Where(p => !p.IsTraitDisabled).Any(pi => pi.Info.Produces.Contains(q)))) b.Trait.SetPrimaryProducer(b.Actor, false); }