smart queries for World.Actors

This commit is contained in:
Bob
2010-01-31 01:27:50 +13:00
parent c012cf3c7f
commit 73c16d5d9d
23 changed files with 201 additions and 64 deletions

View File

@@ -49,12 +49,12 @@ namespace OpenRa
PowerProvided = 0;
PowerDrained = 0;
var myBuildings = World.Actors
.Where(a => a.Owner == this && a.traits.Contains<Building>());
var myBuildings = World.Queries.OwnedBy[this]
.WithTrait<Building>();
foreach (var a in myBuildings)
{
var p = a.traits.Get<Building>().GetPowerUsage();
var p = a.Trait.GetPowerUsage();
if (p > 0)
PowerProvided += p;
else
@@ -80,8 +80,8 @@ namespace OpenRa
void UpdateOreCapacity()
{
OreCapacity = World.Actors
.Where(a => a.Owner == this && a.traits.Contains<StoresOre>())
OreCapacity = World.Queries.OwnedBy[this]
.Where(a => a.traits.Contains<StoresOre>())
.Select(a => a.Info.Traits.Get<StoresOreInfo>())
.Sum(b => b.Capacity);
}