Tidy TargetableBuilding.

This commit is contained in:
Paul Chote
2013-07-10 19:09:49 +12:00
parent 9b9952dcdf
commit bed2745c61

View File

@@ -15,25 +15,30 @@ using OpenRA.Traits;
namespace OpenRA.Mods.RA
{
class TargetableBuildingInfo : ITraitInfo, Requires<BuildingInfo>
public class TargetableBuildingInfo : ITraitInfo, Requires<BuildingInfo>
{
public readonly string[] TargetTypes = { };
public object Create( ActorInitializer init ) { return new TargetableBuilding( this ); }
public object Create(ActorInitializer init) { return new TargetableBuilding(init.self, this); }
}
class TargetableBuilding : ITargetable
public class TargetableBuilding : ITargetable
{
readonly TargetableBuildingInfo info;
readonly Building building;
public TargetableBuilding( TargetableBuildingInfo info ) { this.info = info; }
public TargetableBuilding(Actor self, TargetableBuildingInfo info)
{
this.info = info;
building = self.Trait<Building>();
}
public string[] TargetTypes { get { return info.TargetTypes; } }
public bool TargetableBy(Actor self, Actor byActor) { return true; }
public IEnumerable<WPos> TargetablePositions(Actor self)
{
return self.Trait<Building>().OccupiedCells().Select(c => c.First.CenterPosition);
return building.OccupiedCells().Select(c => c.First.CenterPosition);
}
}
}