Cache PaletteReference in RenderSimple.

This commit is contained in:
Paul Chote
2013-02-25 21:57:47 +13:00
parent dddec1ec61
commit 3a11aeb434
3 changed files with 28 additions and 11 deletions

View File

@@ -496,19 +496,21 @@ namespace OpenRA.Mods.RA.Missions
public override object Create(ActorInitializer init) { return new Allies04RenderHijacked(init.self, this); }
}
class Allies04RenderHijacked : RenderUnit, IRenderModifier
class Allies04RenderHijacked : RenderUnit
{
Allies04Hijackable hijackable;
Allies04RenderHijackedInfo info;
public Allies04RenderHijacked(Actor self, Allies04RenderHijackedInfo info)
: base(self)
{
this.info = info;
hijackable = self.Trait<Allies04Hijackable>();
}
public IEnumerable<Renderable> ModifyRender(Actor self, WorldRenderer wr, IEnumerable<Renderable> r)
protected override string PaletteName(Actor self)
{
return r.Select(a => a.WithPalette(Palette(hijackable.OldOwner, wr)));
return info.Palette ?? info.PlayerPalette + hijackable.OldOwner.InternalName;
}
}