Change traits to use RenderSprites directly.

This commit is contained in:
Paul Chote
2013-05-25 11:41:23 +12:00
parent 07f3c0171d
commit e7aa6ce998
18 changed files with 58 additions and 42 deletions

View File

@@ -14,7 +14,7 @@ using OpenRA.Traits;
namespace OpenRA.Mods.RA
{
class NukePowerInfo : SupportPowerInfo
class NukePowerInfo : SupportPowerInfo, Requires<LocalCoordinatesModelInfo>
{
[WeaponReference]
public readonly string MissileWeapon = "";
@@ -25,7 +25,14 @@ namespace OpenRA.Mods.RA
class NukePower : SupportPower
{
public NukePower(Actor self, NukePowerInfo info) : base(self, info) { }
ILocalCoordinatesModel coords;
public NukePower(Actor self, NukePowerInfo info)
: base(self, info)
{
coords = self.Trait<ILocalCoordinatesModel>();
}
public override IOrderGenerator OrderGenerator(string order, SupportPowerManager manager)
{
Sound.PlayToPlayer(manager.self.Owner, Info.SelectTargetSound);
@@ -42,7 +49,7 @@ namespace OpenRA.Mods.RA
var rb = self.Trait<RenderSimple>();
rb.PlayCustomAnim(self, "active");
self.World.AddFrameEndTask(w => w.Add(
new NukeLaunch(self.Owner, self, npi.MissileWeapon, self.CenterPosition + rb.LocalToWorld(npi.SpawnOffset), order.TargetLocation)));
new NukeLaunch(self.Owner, self, npi.MissileWeapon, self.CenterPosition + coords.LocalToWorld(npi.SpawnOffset), order.TargetLocation)));
}
}
}