Adjust UpgradeOverlay.ModifyRender to be more efficient.

When IsTraitDisabled is set, ModifyRender doesn't actually alter the sequence, so we can just return it directly and avoid adding another layer of enumerable. If it is unset, then the modifying enumerable has one less condition to check inside the loop.
This commit is contained in:
RoosterDragon
2015-01-08 00:51:44 +00:00
parent 40c9d0a47d
commit df6956867a

View File

@@ -29,12 +29,19 @@ namespace OpenRA.Mods.Common.Traits
: base(info) { }
public IEnumerable<IRenderable> ModifyRender(Actor self, WorldRenderer wr, IEnumerable<IRenderable> r)
{
if (IsTraitDisabled)
return r;
return ModifiedRender(self, wr, r);
}
IEnumerable<IRenderable> ModifiedRender(Actor self, WorldRenderer wr, IEnumerable<IRenderable> r)
{
foreach (var a in r)
{
yield return a;
if (!IsTraitDisabled && !a.IsDecoration)
if (!a.IsDecoration)
yield return a.WithPalette(wr.Palette(Info.Palette))
.WithZOffset(a.ZOffset + 1)
.AsDecoration();