Convert EditorSelectionLayer to IRenderAboveShroud.

This commit is contained in:
Paul Chote
2019-09-03 09:41:11 +01:00
committed by teinarss
parent b3984c8db4
commit f45423ed76

View File

@@ -9,6 +9,7 @@
*/ */
#endregion #endregion
using System.Collections.Generic;
using OpenRA.Graphics; using OpenRA.Graphics;
using OpenRA.Traits; using OpenRA.Traits;
@@ -35,7 +36,7 @@ namespace OpenRA.Mods.Common.Traits
public virtual object Create(ActorInitializer init) { return new EditorSelectionLayer(init.Self, this); } public virtual object Create(ActorInitializer init) { return new EditorSelectionLayer(init.Self, this); }
} }
public class EditorSelectionLayer : IWorldLoaded, IRenderAboveWorld public class EditorSelectionLayer : IWorldLoaded, IRenderAboveShroud
{ {
readonly EditorSelectionLayerInfo info; readonly EditorSelectionLayerInfo info;
readonly Map map; readonly Map map;
@@ -80,20 +81,22 @@ namespace OpenRA.Mods.Common.Traits
CopyRegion = PasteRegion = null; CopyRegion = PasteRegion = null;
} }
void IRenderAboveWorld.RenderAboveWorld(Actor self, WorldRenderer wr) IEnumerable<IRenderable> IRenderAboveShroud.RenderAboveShroud(Actor self, WorldRenderer wr)
{ {
if (wr.World.Type != WorldType.Editor) if (wr.World.Type != WorldType.Editor)
return; yield break;
if (CopyRegion != null) if (CopyRegion != null)
foreach (var c in CopyRegion) foreach (var c in CopyRegion)
new SpriteRenderable(copySprite, wr.World.Map.CenterOfCell(c), yield return new SpriteRenderable(copySprite, wr.World.Map.CenterOfCell(c),
WVec.Zero, -511, palette, 1f, true).PrepareRender(wr).Render(wr); WVec.Zero, -511, palette, 1f, true);
if (PasteRegion != null) if (PasteRegion != null)
foreach (var c in PasteRegion) foreach (var c in PasteRegion)
new SpriteRenderable(pasteSprite, wr.World.Map.CenterOfCell(c), yield return new SpriteRenderable(pasteSprite, wr.World.Map.CenterOfCell(c),
WVec.Zero, -511, palette, 1f, true).PrepareRender(wr).Render(wr); WVec.Zero, -511, palette, 1f, true);
} }
bool IRenderAboveShroud.SpatiallyPartitionable { get { return false; } }
} }
} }