Begin refactoring Shroud. ShroudRenderer is now internal to WorldRenderer; all traits interact with Shroud directly. Gives soft-edges at the map border for free, but breaks shellmap and observers.

This commit is contained in:
Paul Chote
2010-11-26 15:11:25 +13:00
parent b423889c06
commit 41fd19c766
7 changed files with 73 additions and 59 deletions

View File

@@ -27,6 +27,14 @@ namespace OpenRA.Traits
public int[,] visibleCells;
public bool[,] exploredCells;
public Rectangle? exploredBounds;
bool disabled = false;
public bool Disabled
{
get { return disabled; }
set { disabled = value; Dirty(); }
}
public Rectangle? Bounds { get { return exploredBounds; } }
public event Action Dirty = () => { };
public Shroud(World world)
@@ -181,5 +189,30 @@ namespace OpenRA.Traits
Dirty();
}
public bool IsExplored(int2 xy) { return IsExplored(xy.X, xy.Y); }
public bool IsExplored(int x, int y)
{
if (!map.IsInMap(x, y))
return false;
if (disabled)
return true;
return exploredCells[x,y];
}
public bool IsVisible(int2 xy) { return IsVisible(xy.X, xy.Y); }
public bool IsVisible(int x, int y)
{
if (!map.IsInMap(x, y))
return false;
if (disabled)
return true;
return visibleCells[x,y] != 0;
}
}
}