Convert CustomTerrainDebugOverlay to IRenderAboveShroud.
This commit is contained in:
@@ -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); }
|
||||||
|
|
||||||
|
|||||||
@@ -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; } }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user