Propagate race to produced actors.

This commit is contained in:
Paul Chote
2014-06-21 21:29:14 +12:00
parent 4b2663015b
commit 4db2cf6b2b
10 changed files with 48 additions and 34 deletions

View File

@@ -22,19 +22,22 @@ namespace OpenRA.Mods.RA.Orders
readonly Actor Producer;
readonly string Building;
readonly BuildingInfo BuildingInfo;
IEnumerable<IRenderable> preview;
Sprite buildOk, buildBlocked;
bool initialized = false;
public PlaceBuildingOrderGenerator(Actor producer, string name)
public PlaceBuildingOrderGenerator(ProductionQueue queue, string name)
{
Producer = producer;
Producer = queue.Actor;
Building = name;
var tileset = producer.World.TileSet.Id.ToLowerInvariant();
BuildingInfo = producer.World.Map.Rules.Actors[Building].Traits.Get<BuildingInfo>();
buildOk = producer.World.Map.SequenceProvider.GetSequence("overlay", "build-valid-{0}".F(tileset)).GetSprite(0);
buildBlocked = producer.World.Map.SequenceProvider.GetSequence("overlay", "build-invalid").GetSprite(0);
var map = Producer.World.Map;
var tileset = Producer.World.TileSet.Id.ToLowerInvariant();
BuildingInfo = map.Rules.Actors[Building].Traits.Get<BuildingInfo>();
buildOk = map.SequenceProvider.GetSequence("overlay", "build-valid-{0}".F(tileset)).GetSprite(0);
buildBlocked = map.SequenceProvider.GetSequence("overlay", "build-invalid").GetSprite(0);
}
public IEnumerable<Order> Order(World world, CPos xy, MouseInput mi)
@@ -65,6 +68,7 @@ namespace OpenRA.Mods.RA.Orders
yield return new Order(isLineBuild ? "LineBuild" : "PlaceBuilding", Producer.Owner.PlayerActor, false)
{
TargetLocation = topLeft,
TargetActor = Producer,
TargetString = Building,
SuppressVisualFeedback = true
};