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

@@ -15,7 +15,7 @@ using OpenRA.Traits;
namespace OpenRA.Mods.RA.Render
{
class RenderGunboatInfo : RenderUnitInfo
class RenderGunboatInfo : RenderSimpleInfo
{
public override object Create(ActorInitializer init) { return new RenderGunboat(init.self); }
}
@@ -26,8 +26,13 @@ namespace OpenRA.Mods.RA.Render
string lastDir = "left";
string lastDamage = "";
static Func<int> TurretFacingFunc(Actor self)
{
return () => self.HasTrait<Turreted>() ? self.TraitsImplementing<Turreted>().First().turretFacing : 0;
}
public RenderGunboat(Actor self)
: base(self, () => self.HasTrait<Turreted>() ? self.TraitsImplementing<Turreted>().First().turretFacing : 0)
: base(self, TurretFacingFunc(self))
{
facing = self.Trait<IFacing>();
anim.Play("left");

View File

@@ -13,7 +13,7 @@ using OpenRA.Traits;
namespace OpenRA.Mods.Cnc
{
class WithFireInfo : ITraitInfo, Requires<RenderSimpleInfo>
class WithFireInfo : ITraitInfo, Requires<RenderSpritesInfo>
{
public readonly WVec Offset = new WVec(299,-640,0);
@@ -24,7 +24,7 @@ namespace OpenRA.Mods.Cnc
{
public WithFire(Actor self, WithFireInfo info)
{
var rs = self.Trait<RenderSimple>();
var rs = self.Trait<RenderSprites>();
var roof = new Animation(rs.GetImage(self));
roof.PlayThen("fire-start", () => roof.PlayRepeating("fire-loop"));

View File

@@ -13,7 +13,7 @@ using OpenRA.Traits;
namespace OpenRA.Mods.Cnc
{
public class WithRoofInfo : ITraitInfo, Requires<RenderSimpleInfo>
public class WithRoofInfo : ITraitInfo, Requires<RenderSpritesInfo>
{
public object Create(ActorInitializer init) { return new WithRoof(init.self); }
}
@@ -22,7 +22,7 @@ namespace OpenRA.Mods.Cnc
{
public WithRoof(Actor self)
{
var rs = self.Trait<RenderSimple>();
var rs = self.Trait<RenderSprites>();
var roof = new Animation(rs.GetImage(self), () => self.Trait<IFacing>().Facing);
roof.Play("roof");
rs.anims.Add("roof", new AnimationWithOffset(roof, null, null, 1024));