diff --git a/OpenRA.Mods.Common/Traits/Player/ClassicProductionQueue.cs b/OpenRA.Mods.Common/Traits/Player/ClassicProductionQueue.cs index d6da7ea755..c0ad9f5904 100644 --- a/OpenRA.Mods.Common/Traits/Player/ClassicProductionQueue.cs +++ b/OpenRA.Mods.Common/Traits/Player/ClassicProductionQueue.cs @@ -118,12 +118,6 @@ namespace OpenRA.Mods.Common.Traits return false; } - public override int GetBuildTime(string unitString) - { - var actorInfo = self.World.Map.Rules.Actors[unitString]; - return GetBuildTime(actorInfo, actorInfo.TraitInfo()); - } - public override int GetBuildTime(ActorInfo unit, BuildableInfo bi) { if (developerMode.FastBuild) diff --git a/OpenRA.Mods.Common/Traits/Player/ProductionQueue.cs b/OpenRA.Mods.Common/Traits/Player/ProductionQueue.cs index 836289b143..573e773f35 100644 --- a/OpenRA.Mods.Common/Traits/Player/ProductionQueue.cs +++ b/OpenRA.Mods.Common/Traits/Player/ProductionQueue.cs @@ -309,12 +309,6 @@ namespace OpenRA.Mods.Common.Traits } } - public virtual int GetBuildTime(string unitString) - { - var actorInfo = self.World.Map.Rules.Actors[unitString]; - return GetBuildTime(actorInfo, actorInfo.TraitInfo()); - } - public virtual int GetBuildTime(ActorInfo unit, BuildableInfo bi) { if (developerMode.FastBuild) @@ -423,6 +417,8 @@ namespace OpenRA.Mods.Common.Traits public bool Started { get; private set; } public int Slowdown { get; private set; } + readonly ActorInfo ai; + readonly BuildableInfo bi; readonly PowerManager pm; public ProductionItem(ProductionQueue queue, string item, int cost, PowerManager pm, Action onComplete) @@ -433,13 +429,15 @@ namespace OpenRA.Mods.Common.Traits OnComplete = onComplete; Queue = queue; this.pm = pm; + ai = Queue.Actor.World.Map.Rules.Actors[Item]; + bi = ai.TraitInfo(); } public void Tick(PlayerResources pr) { if (!Started) { - var time = Queue.GetBuildTime(Item); + var time = Queue.GetBuildTime(ai, bi); if (time > 0) RemainingTime = TotalTime = time;