remove a Turreted lookup every render for RenderBuildingTurreted

This commit is contained in:
Chris Forbes
2011-08-15 14:31:04 +12:00
parent 1aa80e0377
commit a74fd17d39
2 changed files with 9 additions and 3 deletions

View File

@@ -30,7 +30,6 @@ namespace OpenRA.Mods.RA.Buildings
public readonly string[] BuildSounds = {"placbldg.aud", "build5.aud"};
public readonly string[] SellSounds = {"cashturn.aud"};
public object Create(ActorInitializer init) { return new Building(init, this); }
public bool IsCloseEnoughToBase(World world, Player p, string buildingName, int2 topLeft)

View File

@@ -8,12 +8,13 @@
*/
#endregion
using System;
using OpenRA.Mods.RA.Buildings;
using OpenRA.Traits;
namespace OpenRA.Mods.RA.Render
{
class RenderBuildingTurretedInfo : RenderBuildingInfo
class RenderBuildingTurretedInfo : RenderBuildingInfo, Requires<TurretedInfo>
{
public override object Create(ActorInitializer init) { return new RenderBuildingTurreted( init, this ); }
}
@@ -21,6 +22,12 @@ namespace OpenRA.Mods.RA.Render
class RenderBuildingTurreted : RenderBuilding
{
public RenderBuildingTurreted( ActorInitializer init, RenderBuildingInfo info )
: base(init, info, () => init.self.Trait<Turreted>().turretFacing) { }
: base(init, info, MakeTurretFacingFunc(init.self)) { }
static Func<int> MakeTurretFacingFunc(Actor self)
{
var turreted = self.Trait<Turreted>();
return () => turreted.turretFacing;
}
}
}