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

@@ -26,8 +26,9 @@ namespace OpenRa.Traits
{
if (order.OrderString == "NuclearMissile")
{
var silo = self.World.Actors.Where(a => a.Owner == self.Owner
&& a.traits.Contains<NukeSilo>()).FirstOrDefault();
var silo = self.World.Queries.OwnedBy[self.Owner]
.Where(a => a.traits.Contains<NukeSilo>())
.FirstOrDefault();
if (silo != null)
silo.traits.Get<RenderBuilding>().PlayCustomAnim(silo, "active");
@@ -70,8 +71,9 @@ namespace OpenRa.Traits
public void Tick(World world)
{
var hasStructure = world.Actors
.Any(a => a.Owner == world.LocalPlayer && a.traits.Contains<NukeSilo>());
var hasStructure = world.Queries.OwnedBy[world.LocalPlayer]
.WithTrait<NukeSilo>()
.Any();
if (!hasStructure)
Game.controller.CancelInputMode();