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