smart queries for World.Actors
This commit is contained in:
@@ -42,8 +42,9 @@ namespace OpenRa.Traits.Activities
|
||||
umt = mobile.GetMovementType(),
|
||||
checkForBlocked = false,
|
||||
};
|
||||
var refineries = self.World.Actors.Where( x => x.traits.Contains<AcceptsOre>()
|
||||
&& x.Owner == self.Owner ).ToList();
|
||||
var refineries = self.World.Queries.OwnedBy[self.Owner]
|
||||
.Where( x => x.traits.Contains<AcceptsOre>())
|
||||
.ToList();
|
||||
if( refinery != null )
|
||||
search.AddInitialCell( self.World, refinery.Location + refineryDeliverOffset );
|
||||
else
|
||||
|
||||
@@ -9,9 +9,8 @@ namespace OpenRa.Traits.Activities
|
||||
|
||||
static Actor ChooseHelipad(Actor self)
|
||||
{
|
||||
return self.World.Actors.FirstOrDefault(
|
||||
return self.World.Queries.OwnedBy[self.Owner].FirstOrDefault(
|
||||
a => a.Info.Name == "hpad" &&
|
||||
a.Owner == self.Owner &&
|
||||
!Reservable.IsReserved(a));
|
||||
}
|
||||
|
||||
|
||||
@@ -18,9 +18,8 @@ namespace OpenRa.Traits.Activities
|
||||
|
||||
Actor ChooseAirfield(Actor self)
|
||||
{
|
||||
var airfield = self.World.Actors
|
||||
var airfield = self.World.Queries.OwnedBy[self.Owner]
|
||||
.Where(a => a.Info.Name == "afld"
|
||||
&& a.Owner == self.Owner
|
||||
&& !Reservable.IsReserved(a))
|
||||
.FirstOrDefault();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user