From 2df591831594af0f5331674047f0bdb64db73853 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Sat, 3 Sep 2016 09:52:55 +0100 Subject: [PATCH] Disable BaseProvider when building is locked. --- OpenRA.Mods.Common/Traits/Buildings/BaseProvider.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/OpenRA.Mods.Common/Traits/Buildings/BaseProvider.cs b/OpenRA.Mods.Common/Traits/Buildings/BaseProvider.cs index d49d7e7fc6..9863b68b79 100644 --- a/OpenRA.Mods.Common/Traits/Buildings/BaseProvider.cs +++ b/OpenRA.Mods.Common/Traits/Buildings/BaseProvider.cs @@ -27,12 +27,14 @@ namespace OpenRA.Mods.Common.Traits public object Create(ActorInitializer init) { return new BaseProvider(init.Self, this); } } - public class BaseProvider : ITick, IRenderAboveShroudWhenSelected, ISelectionBar + public class BaseProvider : ITick, INotifyCreated, IRenderAboveShroudWhenSelected, ISelectionBar { public readonly BaseProviderInfo Info; readonly DeveloperMode devMode; readonly Actor self; + Building building; + int total; int progress; bool allyBuildEnabled; @@ -46,6 +48,11 @@ namespace OpenRA.Mods.Common.Traits allyBuildEnabled = self.World.WorldActor.Trait().AllyBuildRadiusEnabled; } + void INotifyCreated.Created(Actor self) + { + building = self.TraitOrDefault(); + } + void ITick.Tick(Actor self) { if (progress > 0) @@ -59,6 +66,9 @@ namespace OpenRA.Mods.Common.Traits public bool Ready() { + if (building != null && building.Locked) + return false; + return devMode.FastBuild || progress == 0; }