Merge pull request #7532 from RoosterDragon/disabledoverlay-modifyrender

Adjust DisabledOverlay.ModifyRender to be more efficient.
This commit is contained in:
Pavel Penev
2015-02-27 01:08:39 +02:00
2 changed files with 11 additions and 2 deletions

View File

@@ -21,11 +21,19 @@ namespace OpenRA.Mods.Common.Traits
{ {
public IEnumerable<IRenderable> ModifyRender(Actor self, WorldRenderer wr, IEnumerable<IRenderable> r) public IEnumerable<IRenderable> ModifyRender(Actor self, WorldRenderer wr, IEnumerable<IRenderable> r)
{ {
var disabled = self.IsDisabled(); if (!self.IsDisabled())
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 (disabled && !a.IsDecoration)
if (!a.IsDecoration)
yield return a.WithPalette(wr.Palette("disabled")) yield return a.WithPalette(wr.Palette("disabled"))
.WithZOffset(a.ZOffset + 1) .WithZOffset(a.ZOffset + 1)
.AsDecoration(); .AsDecoration();

View File

@@ -32,6 +32,7 @@ namespace OpenRA.Mods.Common.Traits
{ {
if (IsTraitDisabled) if (IsTraitDisabled)
return r; return r;
return ModifiedRender(self, wr, r); return ModifiedRender(self, wr, r);
} }