Add support for custom sell cursors.
This commit is contained in:
@@ -83,7 +83,14 @@ namespace OpenRA.Mods.Common.Orders
|
||||
public override string GetCursor(World world, CPos cell, int2 worldPixel, MouseInput mi)
|
||||
{
|
||||
mi.Button = MouseButton.Left;
|
||||
return OrderInner(world, mi).Any() ? "sell" : "sell-blocked";
|
||||
|
||||
var cursor = OrderInner(world, mi)
|
||||
.SelectMany(o => o.Subject.TraitsImplementing<Sellable>())
|
||||
.Where(Exts.IsTraitEnabled)
|
||||
.Select(si => si.Info.Cursor)
|
||||
.FirstOrDefault();
|
||||
|
||||
return cursor ?? "sell-blocked";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,6 +27,9 @@ namespace OpenRA.Mods.Common.Traits
|
||||
[Desc("Skip playing (reversed) make animation.")]
|
||||
public readonly bool SkipMakeAnimation = false;
|
||||
|
||||
[Desc("Cursor type to use when the sell order generator hovers over this actor.")]
|
||||
public readonly string Cursor = "sell";
|
||||
|
||||
public override object Create(ActorInitializer init) { return new Sellable(init.Self, this); }
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user