Add IEffectAboveShroud for effects that draw above the shroud.

This commit is contained in:
Paul Chote
2016-08-22 16:18:15 +01:00
parent ed349f9086
commit 69b358ec7b
2 changed files with 11 additions and 1 deletions

View File

@@ -13,6 +13,7 @@ using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using OpenRA.Effects;
using OpenRA.Traits;
namespace OpenRA.Graphics
@@ -180,8 +181,15 @@ namespace OpenRA.Graphics
.SelectMany(a => a.TraitsImplementing<IRenderAboveShroudWhenSelected>()
.SelectMany(t => t.RenderAboveShroud(a, this)));
var aboveShroudEffects = World.Effects.Select(e => e as IEffectAboveShroud)
.Where(e => e != null)
.SelectMany(e => e.RenderAboveShroud(this));
Game.Renderer.WorldVoxelRenderer.BeginFrame();
var finalOverlayRenderables = aboveShroud.Concat(aboveShroudSelected).Select(r => r.PrepareRender(this));
var finalOverlayRenderables = aboveShroud
.Concat(aboveShroudSelected)
.Concat(aboveShroudEffects)
.Select(r => r.PrepareRender(this));
Game.Renderer.WorldVoxelRenderer.EndFrame();
// HACK: Keep old grouping behaviour