Tweak some Render methods for efficiency.

This commit is contained in:
RoosterDragon
2015-11-28 20:55:46 +00:00
parent 8230be6a14
commit 912a0630e2
4 changed files with 9 additions and 9 deletions

View File

@@ -61,7 +61,7 @@ namespace OpenRA.Mods.Common.Effects
public IEnumerable<IRenderable> Render(Actor self, WorldRenderer wr) public IEnumerable<IRenderable> Render(Actor self, WorldRenderer wr)
{ {
yield return trail; return new IRenderable[] { trail };
} }
} }
} }

View File

@@ -51,7 +51,7 @@ namespace OpenRA.Mods.Common.Traits
var spaceBuffer = (int)(10 / wr.Viewport.Zoom); var spaceBuffer = (int)(10 / wr.Viewport.Zoom);
var effectPos = wr.ProjectedPosition(new int2(pos.X, bounds.Y - spaceBuffer)); var effectPos = wr.ProjectedPosition(new int2(pos.X, bounds.Y - spaceBuffer));
yield return new TextRenderable(font, effectPos, 0, color, name); return new IRenderable[] { new TextRenderable(font, effectPos, 0, color, name) };
} }
} }
} }

View File

@@ -103,10 +103,10 @@ namespace OpenRA.Mods.Common.Traits
initializePalettes = false; initializePalettes = false;
} }
yield return new VoxelRenderable( return new IRenderable[] { new VoxelRenderable(
components, self.CenterPosition, 0, camera, info.Scale, components, self.CenterPosition, 0, camera, info.Scale,
lightSource, info.LightAmbientColor, info.LightDiffuseColor, lightSource, info.LightAmbientColor, info.LightDiffuseColor,
colorPalette, normalsPalette, shadowPalette); colorPalette, normalsPalette, shadowPalette) };
} }
public string Image { get { return info.Image ?? self.Info.Name; } } public string Image { get { return info.Image ?? self.Info.Name; } }

View File

@@ -134,20 +134,20 @@ namespace OpenRA.Mods.Common.Traits
public IEnumerable<IRenderable> Render(Actor self, WorldRenderer wr) public IEnumerable<IRenderable> Render(Actor self, WorldRenderer wr)
{ {
if (info.ShadowImage == null) if (info.ShadowImage == null)
yield break; return Enumerable.Empty<IRenderable>();
if (IsTraitDisabled) if (IsTraitDisabled)
yield break; return Enumerable.Empty<IRenderable>();
if (self.IsDead || !self.IsInWorld) if (self.IsDead || !self.IsInWorld)
yield break; return Enumerable.Empty<IRenderable>();
if (self.World.FogObscures(self)) if (self.World.FogObscures(self))
yield break; return Enumerable.Empty<IRenderable>();
shadow.Tick(); shadow.Tick();
var pos = self.CenterPosition - new WVec(0, 0, self.CenterPosition.Z); var pos = self.CenterPosition - new WVec(0, 0, self.CenterPosition.Z);
yield return new SpriteRenderable(shadow.Image, pos, info.ShadowOffset, info.ShadowZOffset, wr.Palette(info.ShadowPalette), 1, true); return new IRenderable[] { new SpriteRenderable(shadow.Image, pos, info.ShadowOffset, info.ShadowZOffset, wr.Palette(info.ShadowPalette), 1, true) };
} }
} }
} }