reintroduce Cached<T>; use for Actor.Bounds, Actor.ExtendedBounds, which replace Actor.GetBounds(bool)

This commit is contained in:
Chris Forbes
2011-05-04 21:58:12 +12:00
parent b12a35af4c
commit ccc245ded4
8 changed files with 81 additions and 11 deletions

View File

@@ -30,7 +30,7 @@ namespace OpenRA.Traits
public void RenderAfterWorld (WorldRenderer wr, Actor self)
{
var bounds = self.GetBounds(false);
var bounds = self.Bounds.Value;
Color selectionColor = Color.White;
var xy = new float2(bounds.Left, bounds.Top);
@@ -55,7 +55,7 @@ namespace OpenRA.Traits
public void DrawRollover(WorldRenderer wr, Actor self)
{
var bounds = self.GetBounds(false);
var bounds = self.Bounds.Value;
var xy = new float2(bounds.Left, bounds.Top);
var Xy = new float2(bounds.Right, bounds.Top);
@@ -184,10 +184,12 @@ namespace OpenRA.Traits
var thisRow = pips.GetPips(self);
if (thisRow == null)
continue;
var width = self.Bounds.Value.Width;
foreach (var pip in thisRow)
{
if (pipxyOffset.X+5 > self.GetBounds(false).Width)
if (pipxyOffset.X+5 > width)
{
pipxyOffset.X = 0;
pipxyOffset.Y -= 4;

View File

@@ -47,7 +47,7 @@ namespace OpenRA.Traits
foreach (var a in self.World.ActorsWithTrait<IHasLocation>())
{
var bounds = a.Actor.GetBounds(true);
var bounds = a.Actor.ExtendedBounds.Value;
if (bounds.Right <= Game.CellSize * self.World.Map.Bounds.Left) continue;
if (bounds.Bottom <= Game.CellSize * self.World.Map.Bounds.Top) continue;
@@ -81,7 +81,7 @@ namespace OpenRA.Traits
return ActorsInBins(a.X / scale, b.X / scale, a.Y / scale, b.Y / scale)
.Distinct()
.Where(u => u.IsInWorld && u.GetBounds(true).IntersectsWith(r));
.Where(u => u.IsInWorld && u.ExtendedBounds.Value.IntersectsWith(r));
}
}
}