Remove PPos overload of FindUnits.

This commit is contained in:
Paul Chote
2013-07-20 14:02:44 +12:00
parent 800acdbdf2
commit 37c02fea79
7 changed files with 11 additions and 13 deletions

View File

@@ -74,8 +74,8 @@ namespace OpenRA.Graphics
var comparer = new RenderableComparer(this); var comparer = new RenderableComparer(this);
var actors = world.FindUnits( var actors = world.FindUnits(
bounds.TopLeftAsCPos().ToPPos(), bounds.TopLeftAsCPos(),
bounds.BottomRightAsCPos().ToPPos()); bounds.BottomRightAsCPos());
var worldRenderables = actors.SelectMany(a => a.Render(this)) var worldRenderables = actors.SelectMany(a => a.Render(this))
.OrderBy(r => r, comparer); .OrderBy(r => r, comparer);

View File

@@ -185,7 +185,7 @@ namespace OpenRA.Widgets
static readonly Actor[] NoActors = {}; static readonly Actor[] NoActors = {};
IEnumerable<Actor> SelectActorsInBox(World world, PPos a, PPos b, Func<Actor, bool> cond) IEnumerable<Actor> SelectActorsInBox(World world, PPos a, PPos b, Func<Actor, bool> cond)
{ {
return world.FindUnits(a, b) return world.FindUnits(a.ToWPos(0), b.ToWPos(0))
.Where(x => x.HasTrait<Selectable>() && x.Trait<Selectable>().Info.Selectable && !world.FogObscures(x) && cond(x)) .Where(x => x.HasTrait<Selectable>() && x.Trait<Selectable>().Info.Selectable && !world.FogObscures(x) && cond(x))
.GroupBy(x => x.GetSelectionPriority()) .GroupBy(x => x.GetSelectionPriority())
.OrderByDescending(g => g.Key) .OrderByDescending(g => g.Key)

View File

@@ -23,7 +23,7 @@ namespace OpenRA
{ {
public static IEnumerable<Actor> FindUnitsAtMouse(this World world, int2 mouseLocation) public static IEnumerable<Actor> FindUnitsAtMouse(this World world, int2 mouseLocation)
{ {
var loc = Game.viewport.ViewToWorldPx(mouseLocation); var loc = Game.viewport.ViewToWorldPx(mouseLocation).ToWPos(0);
return FindUnits(world, loc, loc).Where(a => !world.FogObscures(a)); return FindUnits(world, loc, loc).Where(a => !world.FogObscures(a));
} }
@@ -34,11 +34,8 @@ namespace OpenRA
public static IEnumerable<Actor> FindUnits(this World world, WPos tl, WPos br) public static IEnumerable<Actor> FindUnits(this World world, WPos tl, WPos br)
{ {
return world.FindUnits(PPos.FromWPos(tl), PPos.FromWPos(br)); var a = PPos.FromWPos(tl);
} var b = PPos.FromWPos(br);
public static IEnumerable<Actor> FindUnits(this World world, PPos a, PPos b)
{
var u = PPos.Min(a, b); var u = PPos.Min(a, b);
var v = PPos.Max(a, b); var v = PPos.Max(a, b);
return world.WorldActor.Trait<SpatialBins>().ActorsInBox(u,v); return world.WorldActor.Trait<SpatialBins>().ActorsInBox(u,v);

View File

@@ -36,7 +36,7 @@ namespace OpenRA.Mods.RA.Activities
{ {
if (!limitedAmmo.GiveAmmo()) return NextActivity; if (!limitedAmmo.GiveAmmo()) return NextActivity;
var hostBuilding = self.World.FindUnits(self.CenterLocation, self.CenterLocation) var hostBuilding = self.World.FindUnits(self.CenterPosition, self.CenterPosition)
.FirstOrDefault(a => a.HasTrait<RenderBuilding>()); .FirstOrDefault(a => a.HasTrait<RenderBuilding>());
if (hostBuilding != null) if (hostBuilding != null)

View File

@@ -80,7 +80,7 @@ namespace OpenRA.Mods.RA.Air
if (self.Trait<IMove>().Altitude != 0) if (self.Trait<IMove>().Altitude != 0)
return null; // not on the ground. return null; // not on the ground.
return self.World.FindUnits(self.CenterLocation, self.CenterLocation) return self.World.FindUnits(self.CenterPosition, self.CenterPosition)
.FirstOrDefault( a => a.HasTrait<Reservable>() ); .FirstOrDefault( a => a.HasTrait<Reservable>() );
} }

View File

@@ -118,7 +118,7 @@ namespace OpenRA.Mods.RA
case DamageModel.PerCell: case DamageModel.PerCell:
{ {
foreach (var t in world.FindTilesInCircle(targetTile, warhead.Size[0])) foreach (var t in world.FindTilesInCircle(targetTile, warhead.Size[0]))
foreach (var unit in world.FindUnits(t.ToPPos(), (t + new CVec(1,1)).ToPPos())) foreach (var unit in world.FindUnits(t, t))
unit.InflictDamage(args.firedBy, unit.InflictDamage(args.firedBy,
(int)(warhead.Damage * warhead.EffectivenessAgainst(unit)), warhead); (int)(warhead.Damage * warhead.EffectivenessAgainst(unit)), warhead);
} break; } break;

View File

@@ -47,7 +47,8 @@ namespace OpenRA.Mods.RA.Render
if (!hasTicked) if (!hasTicked)
{ {
var adjWalls = self.World.FindUnits(self.CenterLocation - PVecInt.OneCell, self.CenterLocation + PVecInt.OneCell) var vec = new CVec(1, 1);
var adjWalls = self.World.FindUnits(self.Location - vec, self.Location + vec)
.Where(a => a.Info == self.Info && a != self); .Where(a => a.Info == self.Info && a != self);
foreach (var w in adjWalls) foreach (var w in adjWalls)