From f52210c15b4e3a765268855cbb57003c8c52b400 Mon Sep 17 00:00:00 2001 From: abcdefg30 Date: Sun, 24 Jan 2016 14:14:23 +0100 Subject: [PATCH] Unhardcode the cursors used by RepairsBridges --- OpenRA.Mods.Common/Traits/RepairsBridges.cs | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/OpenRA.Mods.Common/Traits/RepairsBridges.cs b/OpenRA.Mods.Common/Traits/RepairsBridges.cs index e902f876eb..608868e02d 100644 --- a/OpenRA.Mods.Common/Traits/RepairsBridges.cs +++ b/OpenRA.Mods.Common/Traits/RepairsBridges.cs @@ -25,6 +25,12 @@ namespace OpenRA.Mods.Common.Traits "Possible values are Exit, Suicide, Dispose.")] public readonly EnterBehaviour EnterBehaviour = EnterBehaviour.Dispose; + [Desc("Cursor to use when targeting a BridgeHut of an unrepaired bridge.")] + public readonly string TargetCursor = "goldwrench"; + + [Desc("Cursor to use when repairing is denied.")] + public readonly string TargetBlockedCursor = "goldwrench-blocked"; + public object Create(ActorInitializer init) { return new RepairsBridges(this); } } @@ -39,7 +45,7 @@ namespace OpenRA.Mods.Common.Traits public IEnumerable Orders { - get { yield return new RepairBridgeOrderTargeter(); } + get { yield return new RepairBridgeOrderTargeter(info); } } public Order IssueOrder(Actor self, IOrderTargeter order, Target target, bool queued) @@ -82,8 +88,13 @@ namespace OpenRA.Mods.Common.Traits class RepairBridgeOrderTargeter : UnitOrderTargeter { - public RepairBridgeOrderTargeter() - : base("RepairBridge", 6, "goldwrench", true, true) { } + readonly RepairsBridgesInfo info; + + public RepairBridgeOrderTargeter(RepairsBridgesInfo info) + : base("RepairBridge", 6, info.TargetCursor, true, true) + { + this.info = info; + } public override bool CanTargetActor(Actor self, Actor target, TargetModifiers modifiers, ref string cursor) { @@ -102,7 +113,7 @@ namespace OpenRA.Mods.Common.Traits // Can't repair a bridge that is undamaged, already under repair, or dangling if (damage == DamageState.Undamaged || hut.Repairing || hut.Bridge.IsDangling) - cursor = "goldwrench-blocked"; + cursor = info.TargetBlockedCursor; return true; }