Merge pull request #10585 from abcdefg30/unhardcodeBridges

Unhardcode the cursors used by RepairsBridges
This commit is contained in:
Matthias Mailänder
2016-01-24 14:27:12 +01:00

View File

@@ -25,6 +25,12 @@ namespace OpenRA.Mods.Common.Traits
"Possible values are Exit, Suicide, Dispose.")] "Possible values are Exit, Suicide, Dispose.")]
public readonly EnterBehaviour EnterBehaviour = EnterBehaviour.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); } public object Create(ActorInitializer init) { return new RepairsBridges(this); }
} }
@@ -39,7 +45,7 @@ namespace OpenRA.Mods.Common.Traits
public IEnumerable<IOrderTargeter> Orders public IEnumerable<IOrderTargeter> Orders
{ {
get { yield return new RepairBridgeOrderTargeter(); } get { yield return new RepairBridgeOrderTargeter(info); }
} }
public Order IssueOrder(Actor self, IOrderTargeter order, Target target, bool queued) public Order IssueOrder(Actor self, IOrderTargeter order, Target target, bool queued)
@@ -82,8 +88,13 @@ namespace OpenRA.Mods.Common.Traits
class RepairBridgeOrderTargeter : UnitOrderTargeter class RepairBridgeOrderTargeter : UnitOrderTargeter
{ {
public RepairBridgeOrderTargeter() readonly RepairsBridgesInfo info;
: base("RepairBridge", 6, "goldwrench", true, true) { }
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) 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 // Can't repair a bridge that is undamaged, already under repair, or dangling
if (damage == DamageState.Undamaged || hut.Repairing || hut.Bridge.IsDangling) if (damage == DamageState.Undamaged || hut.Repairing || hut.Bridge.IsDangling)
cursor = "goldwrench-blocked"; cursor = info.TargetBlockedCursor;
return true; return true;
} }