Convert CustomTerrainDebugOverlay to IRenderAboveShroud.

This commit is contained in:
Paul Chote
2019-09-02 22:28:43 +01:00
committed by teinarss
parent ccd07b6cfe
commit 999ad0e18a
2 changed files with 11 additions and 5 deletions

View File

@@ -92,6 +92,7 @@ namespace OpenRA
public bool FogObscures(CPos p) { return RenderPlayer != null && !RenderPlayer.Shroud.IsVisible(p); } public bool FogObscures(CPos p) { return RenderPlayer != null && !RenderPlayer.Shroud.IsVisible(p); }
public bool FogObscures(WPos pos) { return RenderPlayer != null && !RenderPlayer.Shroud.IsVisible(pos); } public bool FogObscures(WPos pos) { return RenderPlayer != null && !RenderPlayer.Shroud.IsVisible(pos); }
public bool ShroudObscures(CPos p) { return RenderPlayer != null && !RenderPlayer.Shroud.IsExplored(p); } public bool ShroudObscures(CPos p) { return RenderPlayer != null && !RenderPlayer.Shroud.IsExplored(p); }
public bool ShroudObscures(MPos uv) { return RenderPlayer != null && !RenderPlayer.Shroud.IsExplored(uv); }
public bool ShroudObscures(WPos pos) { return RenderPlayer != null && !RenderPlayer.Shroud.IsExplored(pos); } public bool ShroudObscures(WPos pos) { return RenderPlayer != null && !RenderPlayer.Shroud.IsExplored(pos); }
public bool ShroudObscures(PPos uv) { return RenderPlayer != null && !RenderPlayer.Shroud.IsExplored(uv); } public bool ShroudObscures(PPos uv) { return RenderPlayer != null && !RenderPlayer.Shroud.IsExplored(uv); }

View File

@@ -9,6 +9,7 @@
*/ */
#endregion #endregion
using System.Collections.Generic;
using OpenRA.Graphics; using OpenRA.Graphics;
using OpenRA.Mods.Common.Commands; using OpenRA.Mods.Common.Commands;
using OpenRA.Mods.Common.Graphics; using OpenRA.Mods.Common.Graphics;
@@ -24,7 +25,7 @@ namespace OpenRA.Mods.Common.Traits
public object Create(ActorInitializer init) { return new CustomTerrainDebugOverlay(init.Self, this); } public object Create(ActorInitializer init) { return new CustomTerrainDebugOverlay(init.Self, this); }
} }
class CustomTerrainDebugOverlay : IWorldLoaded, IChatCommand, IRenderAboveWorld class CustomTerrainDebugOverlay : IWorldLoaded, IChatCommand, IRenderAboveShroud
{ {
const string CommandName = "debugcustomterrain"; const string CommandName = "debugcustomterrain";
const string CommandDesc = "toggles the custom terrain debug overlay."; const string CommandDesc = "toggles the custom terrain debug overlay.";
@@ -56,13 +57,16 @@ namespace OpenRA.Mods.Common.Traits
Enabled ^= true; Enabled ^= true;
} }
void IRenderAboveWorld.RenderAboveWorld(Actor self, WorldRenderer wr) IEnumerable<IRenderable> IRenderAboveShroud.RenderAboveShroud(Actor self, WorldRenderer wr)
{ {
if (!Enabled) if (!Enabled)
return; yield break;
foreach (var uv in wr.Viewport.VisibleCellsInsideBounds.CandidateMapCoords) foreach (var uv in wr.Viewport.VisibleCellsInsideBounds.CandidateMapCoords)
{ {
if (self.World.ShroudObscures(uv))
continue;
var cell = uv.ToCPos(wr.World.Map); var cell = uv.ToCPos(wr.World.Map);
var center = wr.World.Map.CenterOfCell(cell); var center = wr.World.Map.CenterOfCell(cell);
var terrainType = self.World.Map.CustomTerrain[cell]; var terrainType = self.World.Map.CustomTerrain[cell];
@@ -70,9 +74,10 @@ namespace OpenRA.Mods.Common.Traits
continue; continue;
var info = wr.World.Map.GetTerrainInfo(cell); var info = wr.World.Map.GetTerrainInfo(cell);
var render = new TextRenderable(font, center, 0, info.Color, info.Type); yield return new TextRenderable(font, center, 0, info.Color, info.Type);
render.Render(wr);
} }
} }
bool IRenderAboveShroud.SpatiallyPartitionable { get { return false; } }
} }
} }