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[] BuildSounds = {"placbldg.aud", "build5.aud"};
public readonly string[] SellSounds = {"cashturn.aud"}; public readonly string[] SellSounds = {"cashturn.aud"};
public object Create(ActorInitializer init) { return new Building(init, this); } public object Create(ActorInitializer init) { return new Building(init, this); }
public bool IsCloseEnoughToBase(World world, Player p, string buildingName, int2 topLeft) public bool IsCloseEnoughToBase(World world, Player p, string buildingName, int2 topLeft)

View File

@@ -8,12 +8,13 @@
*/ */
#endregion #endregion
using System;
using OpenRA.Mods.RA.Buildings; using OpenRA.Mods.RA.Buildings;
using OpenRA.Traits; using OpenRA.Traits;
namespace OpenRA.Mods.RA.Render namespace OpenRA.Mods.RA.Render
{ {
class RenderBuildingTurretedInfo : RenderBuildingInfo class RenderBuildingTurretedInfo : RenderBuildingInfo, Requires<TurretedInfo>
{ {
public override object Create(ActorInitializer init) { return new RenderBuildingTurreted( init, this ); } public override object Create(ActorInitializer init) { return new RenderBuildingTurreted( init, this ); }
} }
@@ -21,6 +22,12 @@ namespace OpenRA.Mods.RA.Render
class RenderBuildingTurreted : RenderBuilding class RenderBuildingTurreted : RenderBuilding
{ {
public RenderBuildingTurreted( ActorInitializer init, RenderBuildingInfo info ) 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;
}
} }
} }