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(WPos pos) { return RenderPlayer != null && !RenderPlayer.Shroud.IsVisible(pos); }
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(PPos uv) { return RenderPlayer != null && !RenderPlayer.Shroud.IsExplored(uv); }

View File

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