diff --git a/OpenRA.Game/Graphics/Minimap.cs b/OpenRA.Game/Graphics/Minimap.cs index 088c2b8c9c..04426e5477 100644 --- a/OpenRA.Game/Graphics/Minimap.cs +++ b/OpenRA.Game/Graphics/Minimap.cs @@ -136,7 +136,7 @@ namespace OpenRA.Graphics { int* c = (int*)bitmapData.Scan0; - foreach (var t in world.Queries.WithTrait()) + foreach (var t in world.ActorsWithTrait()) { if (!world.LocalShroud.IsVisible(t.Actor)) continue; diff --git a/OpenRA.Game/Network/SyncReport.cs b/OpenRA.Game/Network/SyncReport.cs index 36fb30dcaf..9d9cf8cb9a 100755 --- a/OpenRA.Game/Network/SyncReport.cs +++ b/OpenRA.Game/Network/SyncReport.cs @@ -37,7 +37,7 @@ namespace OpenRA.Network report.Frame = orderManager.NetFrameNumber; report.SyncedRandom = orderManager.world.SharedRandom.Last; report.Traits.Clear(); - foreach (var a in orderManager.world.Queries.WithTrait()) + foreach (var a in orderManager.world.ActorsWithTrait()) { var sync = Sync.CalculateSyncHash(a.Trait); if (sync != 0) diff --git a/OpenRA.Game/Network/UnitOrders.cs b/OpenRA.Game/Network/UnitOrders.cs index 236c6a19bf..9620789787 100755 --- a/OpenRA.Game/Network/UnitOrders.cs +++ b/OpenRA.Game/Network/UnitOrders.cs @@ -190,7 +190,7 @@ namespace OpenRA.Network if (target == w.LocalPlayer) w.WorldActor.Trait().UpdatePlayerStance(w, p, oldStance, s); - foreach (var nsc in w.Queries.WithTrait()) + foreach (var nsc in w.ActorsWithTrait()) nsc.Trait.StanceChanged(nsc.Actor, p, target, oldStance, s); } } diff --git a/OpenRA.Game/Orders/GenericSelectTarget.cs b/OpenRA.Game/Orders/GenericSelectTarget.cs index ac99fad5ab..887363f782 100644 --- a/OpenRA.Game/Orders/GenericSelectTarget.cs +++ b/OpenRA.Game/Orders/GenericSelectTarget.cs @@ -83,7 +83,7 @@ namespace OpenRA.Orders public override void Tick(World world) { - var hasStructure = world.Queries.WithTrait() + var hasStructure = world.ActorsWithTrait() .Any( a => a.Actor.Owner == world.LocalPlayer ); if (!hasStructure) diff --git a/OpenRA.Game/Traits/Player/PlayerResources.cs b/OpenRA.Game/Traits/Player/PlayerResources.cs index e103082fef..863d2c228e 100644 --- a/OpenRA.Game/Traits/Player/PlayerResources.cs +++ b/OpenRA.Game/Traits/Player/PlayerResources.cs @@ -132,7 +132,7 @@ namespace OpenRA.Traits { var eva = self.World.WorldActor.Info.Traits.Get(); - OreCapacity = self.World.Queries.WithTrait() + OreCapacity = self.World.ActorsWithTrait() .Where(a => a.Actor.Owner == Owner) .Sum(a => a.Trait.Capacity); diff --git a/OpenRA.Game/Traits/World/SpatialBins.cs b/OpenRA.Game/Traits/World/SpatialBins.cs index 54d3ccffb8..647499ae92 100644 --- a/OpenRA.Game/Traits/World/SpatialBins.cs +++ b/OpenRA.Game/Traits/World/SpatialBins.cs @@ -45,7 +45,7 @@ namespace OpenRA.Traits for (var i = 0; i <= bins.GetUpperBound(0); i++) bins[i, j].Clear(); - foreach (var a in self.World.Queries.WithTrait()) + foreach (var a in self.World.ActorsWithTrait()) { var bounds = a.Actor.GetBounds(true); diff --git a/OpenRA.Game/World.cs b/OpenRA.Game/World.cs index 04da180b0b..421b2b7de8 100644 --- a/OpenRA.Game/World.cs +++ b/OpenRA.Game/World.cs @@ -100,8 +100,6 @@ namespace OpenRA WorldActor = CreateActor( "World", new TypeDictionary() ); LocalShroud = WorldActor.Trait(); - Queries = new AllQueries(this); - // Add players foreach (var cmp in WorldActor.TraitsImplementing()) cmp.CreatePlayers(this); @@ -160,7 +158,7 @@ namespace OpenRA if (!DisableTick) { actors.Do( x => x.Tick() ); - Queries.WithTrait().DoTimed( x => + ActorsWithTrait().DoTimed( x => { x.Trait.Tick( x.Actor ); }, "[{2}] Trait: {0} ({1:0.000} ms)", Game.Settings.Debug.LongTickThreshold ); @@ -202,24 +200,12 @@ namespace OpenRA return ret; } - } - - public class AllQueries - { - readonly World world; - - public AllQueries( World world ) - { - this.world = world; - } - - public IEnumerable> WithTrait() - { - return world.traitDict.ActorsWithTraitMultiple( world ); - } - } - - public AllQueries Queries; + } + + public IEnumerable> ActorsWithTrait() + { + return traitDict.ActorsWithTraitMultiple(this); + } } public struct TraitPair diff --git a/OpenRA.Mods.RA/Activities/CaptureBuilding.cs b/OpenRA.Mods.RA/Activities/CaptureBuilding.cs index aa5b939f38..1ce5ab66eb 100644 --- a/OpenRA.Mods.RA/Activities/CaptureBuilding.cs +++ b/OpenRA.Mods.RA/Activities/CaptureBuilding.cs @@ -41,7 +41,7 @@ namespace OpenRA.Mods.RA.Activities foreach (var t in target.TraitsImplementing()) t.OnCapture(target, self, oldOwner, self.Owner); - foreach (var t in self.World.Queries.WithTrait()) + foreach (var t in self.World.ActorsWithTrait()) t.Trait.OnActorCaptured(t.Actor, target, self, oldOwner, self.Owner); self.Destroy(); diff --git a/OpenRA.Mods.RA/Air/ReturnToBase.cs b/OpenRA.Mods.RA/Air/ReturnToBase.cs index 359b50b9f8..b228a148b0 100755 --- a/OpenRA.Mods.RA/Air/ReturnToBase.cs +++ b/OpenRA.Mods.RA/Air/ReturnToBase.cs @@ -25,7 +25,7 @@ namespace OpenRA.Mods.RA.Air public static Actor ChooseAirfield(Actor self) { - return self.World.Queries.WithTrait() + return self.World.ActorsWithTrait() .Where(a => a.Actor.Owner == self.Owner) .Where(a => self.Info.Traits.Get().RearmBuildings.Contains(a.Actor.Info.Name) && !Reservable.IsReserved(a.Actor)) diff --git a/OpenRA.Mods.RA/Buildings/TechTree.cs b/OpenRA.Mods.RA/Buildings/TechTree.cs index 310e08e711..1eb8175c11 100755 --- a/OpenRA.Mods.RA/Buildings/TechTree.cs +++ b/OpenRA.Mods.RA/Buildings/TechTree.cs @@ -60,7 +60,7 @@ namespace OpenRA.Mods.RA.Buildings if (player == null) return ret; - foreach (var b in player.World.Queries.WithTrait() + foreach (var b in player.World.ActorsWithTrait() .Where(a => a.Actor.Owner == player).Select(a => a.Actor)) { ret[b.Info.Name].Add(b); diff --git a/OpenRA.Mods.RA/Buildings/Util.cs b/OpenRA.Mods.RA/Buildings/Util.cs index de42f2f49e..f98c6f3d1d 100755 --- a/OpenRA.Mods.RA/Buildings/Util.cs +++ b/OpenRA.Mods.RA/Buildings/Util.cs @@ -64,7 +64,7 @@ namespace OpenRA.Mods.RA.Buildings continue; // Cell is empty; continue search // Cell contains an actor. Is it the type we want? - if (world.Queries.WithTrait().Any(a => (a.Actor.Info.Name == name && a.Actor.Location.X == cell.X && a.Actor.Location.Y == cell.Y))) + if (world.ActorsWithTrait().Any(a => (a.Actor.Info.Name == name && a.Actor.Location.X == cell.X && a.Actor.Location.Y == cell.Y))) dirs[d] = i; // Cell contains actor of correct type else dirs[d] = -1; // Cell is blocked by another actor type diff --git a/OpenRA.Mods.RA/ChronoshiftDeploy.cs b/OpenRA.Mods.RA/ChronoshiftDeploy.cs index ab129f1420..cd5410d29d 100644 --- a/OpenRA.Mods.RA/ChronoshiftDeploy.cs +++ b/OpenRA.Mods.RA/ChronoshiftDeploy.cs @@ -63,7 +63,7 @@ namespace OpenRA.Mods.RA Sound.Play("chrotnk1.aud", Game.CellSize * order.TargetLocation.ToFloat2()); chargeTick = 25 * self.Info.Traits.Get().ChargeTime; - foreach (var a in self.World.Queries.WithTrait()) + foreach (var a in self.World.ActorsWithTrait()) a.Trait.Enable(); } } diff --git a/OpenRA.Mods.RA/Cloak.cs b/OpenRA.Mods.RA/Cloak.cs index 6e3f7e385b..81409b3d64 100644 --- a/OpenRA.Mods.RA/Cloak.cs +++ b/OpenRA.Mods.RA/Cloak.cs @@ -109,7 +109,7 @@ namespace OpenRA.Mods.RA self.Owner.Stances[self.World.LocalPlayer] == Stance.Ally) return true; - return self.World.Queries.WithTrait().Any(a => + return self.World.ActorsWithTrait().Any(a => a.Actor.Owner.Stances[self.Owner] != Stance.Ally && (self.Location - a.Actor.Location).Length < a.Actor.Info.Traits.Get().Range); } diff --git a/OpenRA.Mods.RA/ConquestVictoryConditions.cs b/OpenRA.Mods.RA/ConquestVictoryConditions.cs index 68f66c0dc2..511a6ffee0 100644 --- a/OpenRA.Mods.RA/ConquestVictoryConditions.cs +++ b/OpenRA.Mods.RA/ConquestVictoryConditions.cs @@ -21,7 +21,7 @@ namespace OpenRA.Mods.RA { if (self.Owner.WinState != WinState.Undefined || self.Owner.NonCombatant) return; - var hasAnything = self.World.Queries.WithTrait() + var hasAnything = self.World.ActorsWithTrait() .Any( a => a.Actor.Owner == self.Owner ); if (!hasAnything && !self.Owner.NonCombatant) diff --git a/OpenRA.Mods.RA/Crates/GiveMcvCrateAction.cs b/OpenRA.Mods.RA/Crates/GiveMcvCrateAction.cs index 4302f440a8..01185f03f6 100644 --- a/OpenRA.Mods.RA/Crates/GiveMcvCrateAction.cs +++ b/OpenRA.Mods.RA/Crates/GiveMcvCrateAction.cs @@ -29,7 +29,7 @@ namespace OpenRA.Mods.RA.Crates if (base.GetSelectionShares(collector) == 0) return 0; // there's some other really good reason why we shouldn't give this. - var hasBase = self.World.Queries.WithTrait() + var hasBase = self.World.ActorsWithTrait() .Any(a => a.Actor.Owner == collector.Owner); return hasBase ? info.SelectionShares : diff --git a/OpenRA.Mods.RA/Effects/NukeLaunch.cs b/OpenRA.Mods.RA/Effects/NukeLaunch.cs index 93eed7b0c6..7b37acb5a2 100755 --- a/OpenRA.Mods.RA/Effects/NukeLaunch.cs +++ b/OpenRA.Mods.RA/Effects/NukeLaunch.cs @@ -65,7 +65,7 @@ namespace OpenRA.Mods.RA.Effects if (altitude <= 0) { // Trigger screen desaturate effect - foreach (var a in world.Queries.WithTrait()) + foreach (var a in world.ActorsWithTrait()) a.Trait.Enable(); Explode(world); diff --git a/OpenRA.Mods.RA/HackyAI.cs b/OpenRA.Mods.RA/HackyAI.cs index cea50281ce..9f7df28775 100644 --- a/OpenRA.Mods.RA/HackyAI.cs +++ b/OpenRA.Mods.RA/HackyAI.cs @@ -150,8 +150,8 @@ namespace OpenRA.Mods.RA .OrderByDescending(a => GetPowerProvidedBy(a)).FirstOrDefault(); } - var myBuildings = p.World.Queries - .WithTrait() + var myBuildings = p.World + .ActorsWithTrait() .Where( a => a.Actor.Owner == p ) .Select(a => a.Actor.Info.Name).ToArray(); @@ -272,7 +272,7 @@ namespace OpenRA.Mods.RA attackForce.RemoveAll(a => a.Destroyed); // don't select harvesters. - var newUnits = self.World.Queries.WithTrait() + var newUnits = self.World.ActorsWithTrait() .Where(a => a.Actor.Owner == p && a.Actor.Info != Rules.Info["harv"] && !activeUnits.Contains(a.Actor)) .Select(a => a.Actor).ToArray(); @@ -309,7 +309,7 @@ namespace OpenRA.Mods.RA void SetRallyPointsForNewProductionBuildings(Actor self) { - var buildings = self.World.Queries.WithTrait() + var buildings = self.World.ActorsWithTrait() .Where(rp => rp.Actor.Owner == p && !IsRallyPointValid(rp.Trait.rallyPoint)).ToArray(); @@ -399,7 +399,7 @@ namespace OpenRA.Mods.RA private void BuildRandom(string category) { // Pick a free queue - var queue = world.Queries.WithTrait() + var queue = world.ActorsWithTrait() .Where(a => a.Actor.Owner == p && a.Trait.Info.Type == category && a.Trait.CurrentItem() == null) @@ -447,7 +447,7 @@ namespace OpenRA.Mods.RA public void Tick() { // Pick a free queue - var queue = ai.world.Queries.WithTrait() + var queue = ai.world.ActorsWithTrait() .Where(a => a.Actor.Owner == ai.p && a.Trait.Info.Type == category) .Select(a => a.Trait) .FirstOrDefault(); diff --git a/OpenRA.Mods.RA/Harvester.cs b/OpenRA.Mods.RA/Harvester.cs index fa7a1ea891..99fb1c14e8 100644 --- a/OpenRA.Mods.RA/Harvester.cs +++ b/OpenRA.Mods.RA/Harvester.cs @@ -64,7 +64,7 @@ namespace OpenRA.Mods.RA Actor ClosestProc(Actor self, Actor ignore) { - var refs = self.World.Queries.WithTrait() + var refs = self.World.ActorsWithTrait() .Where(x => x.Actor != ignore && x.Actor.Owner == self.Owner) .ToList(); var mi = self.Info.Traits.Get(); diff --git a/OpenRA.Mods.RA/Orders/RepairOrderGenerator.cs b/OpenRA.Mods.RA/Orders/RepairOrderGenerator.cs index 78c3a4c6e0..9bc8f35133 100644 --- a/OpenRA.Mods.RA/Orders/RepairOrderGenerator.cs +++ b/OpenRA.Mods.RA/Orders/RepairOrderGenerator.cs @@ -50,7 +50,7 @@ namespace OpenRA.Mods.RA.Orders public static bool PlayerIsAllowedToRepair( World world ) { - return world.Queries.WithTrait() + return world.ActorsWithTrait() .Any(a => a.Actor.Owner == world.LocalPlayer); } diff --git a/OpenRA.Mods.RA/OreRefinery.cs b/OpenRA.Mods.RA/OreRefinery.cs index d2277c8fe1..6657e67826 100644 --- a/OpenRA.Mods.RA/OreRefinery.cs +++ b/OpenRA.Mods.RA/OreRefinery.cs @@ -62,7 +62,7 @@ namespace OpenRA.Mods.RA public IEnumerable> GetLinkedHarvesters() { - return self.World.Queries.WithTrait() + return self.World.ActorsWithTrait() .Where(a => a.Trait.LinkedProc == self); } diff --git a/OpenRA.Mods.RA/Player/ClassicProductionQueue.cs b/OpenRA.Mods.RA/Player/ClassicProductionQueue.cs index 7696e6777c..ca30e74bab 100755 --- a/OpenRA.Mods.RA/Player/ClassicProductionQueue.cs +++ b/OpenRA.Mods.RA/Player/ClassicProductionQueue.cs @@ -28,7 +28,7 @@ namespace OpenRA.Mods.RA [Sync] bool QueueActive = false; public override void Tick( Actor self ) { - QueueActive = self.World.Queries.WithTrait() + QueueActive = self.World.ActorsWithTrait() .Where(x => x.Actor.Owner == self.Owner) .Where(x => x.Trait.Info.Produces.Contains(Info.Type)) .Any(); @@ -50,8 +50,8 @@ namespace OpenRA.Mods.RA protected override bool BuildUnit( string name ) { // Find a production structure to build this actor - var producers = self.World.Queries - .WithTrait() + var producers = self.World + .ActorsWithTrait() .Where(x => x.Actor.Owner == self.Owner) .Where(x => x.Trait.Info.Produces.Contains(Info.Type)) .OrderByDescending(x => x.Actor.IsPrimaryBuilding() ? 1 : 0 ); // prioritize the primary. diff --git a/OpenRA.Mods.RA/Player/PlaceBuilding.cs b/OpenRA.Mods.RA/Player/PlaceBuilding.cs index 3f3a294c50..a8e375cd8e 100755 --- a/OpenRA.Mods.RA/Player/PlaceBuilding.cs +++ b/OpenRA.Mods.RA/Player/PlaceBuilding.cs @@ -29,7 +29,7 @@ namespace OpenRA.Mods.RA var prevItems = GetNumBuildables(self.Owner); // Find the queue with the target actor - var queue = w.Queries.WithTrait() + var queue = w.ActorsWithTrait() .Where(p => p.Actor.Owner == self.Owner && p.Trait.CurrentItem() != null && p.Trait.CurrentItem().Item == order.TargetString && @@ -95,7 +95,7 @@ namespace OpenRA.Mods.RA if (bi == null) return; - var producers = self.World.Queries.WithTrait() + var producers = self.World.ActorsWithTrait() .Where( x => x.Actor.Owner == self.Owner ) .Where( x => x.Actor.Info.Traits.Get().Produces.Contains( bi.Queue ) ) .ToList(); @@ -110,7 +110,7 @@ namespace OpenRA.Mods.RA { if (p != p.World.LocalPlayer) return 0; // this only matters for local players. - return p.World.Queries.WithTrait() + return p.World.ActorsWithTrait() .Where(a => a.Actor.Owner == p) .SelectMany(a => a.Trait.BuildableItems()).Distinct().Count(); } diff --git a/OpenRA.Mods.RA/PrimaryBuilding.cs b/OpenRA.Mods.RA/PrimaryBuilding.cs index 63690234de..9d322a2b14 100755 --- a/OpenRA.Mods.RA/PrimaryBuilding.cs +++ b/OpenRA.Mods.RA/PrimaryBuilding.cs @@ -57,8 +57,8 @@ namespace OpenRA.Mods.RA // THIS IS SHIT // Cancel existing primaries foreach (var p in self.Info.Traits.Get().Produces) - foreach (var b in self.World.Queries - .WithTrait() + foreach (var b in self.World + .ActorsWithTrait() .Where(a => a.Actor.Owner == self.Owner) .Where(x => x.Trait.IsPrimary && (x.Actor.Info.Traits.Get().Produces.Contains(p)))) diff --git a/OpenRA.Mods.RA/ProvidesRadar.cs b/OpenRA.Mods.RA/ProvidesRadar.cs index c01d46bdf9..c6c3a8d113 100755 --- a/OpenRA.Mods.RA/ProvidesRadar.cs +++ b/OpenRA.Mods.RA/ProvidesRadar.cs @@ -27,7 +27,7 @@ namespace OpenRA.Mods.RA if (self.TraitsImplementing().Any(d => d.Disabled)) return false; - var isJammed = self.World.Queries.WithTrait().Any(a => self.Owner != a.Actor.Owner + var isJammed = self.World.ActorsWithTrait().Any(a => self.Owner != a.Actor.Owner && (self.Location - a.Actor.Location).Length < a.Actor.Info.Traits.Get().Range); return !isJammed; diff --git a/OpenRA.Mods.RA/RenderRangeCircle.cs b/OpenRA.Mods.RA/RenderRangeCircle.cs index c3b3dee45b..c5e81922fd 100644 --- a/OpenRA.Mods.RA/RenderRangeCircle.cs +++ b/OpenRA.Mods.RA/RenderRangeCircle.cs @@ -31,7 +31,7 @@ namespace OpenRA.Mods.RA centerLocation, ai.Traits.Get().GetMaximumRange()); - foreach (var a in w.Queries.WithTrait()) + foreach (var a in w.ActorsWithTrait()) if (a.Actor.Owner == a.Actor.World.LocalPlayer) if (a.Actor.Info.Traits.Get().RangeCircleType == RangeCircleType) a.Trait.RenderBeforeWorld(wr, a.Actor); diff --git a/OpenRA.Mods.RA/Scripting/RASpecialPowers.cs b/OpenRA.Mods.RA/Scripting/RASpecialPowers.cs index e843afc7ad..7f5e6bb6df 100644 --- a/OpenRA.Mods.RA/Scripting/RASpecialPowers.cs +++ b/OpenRA.Mods.RA/Scripting/RASpecialPowers.cs @@ -24,7 +24,7 @@ namespace OpenRA.Scripting chronosphere.Trait().PlayCustomAnim(chronosphere, "active"); // Trigger screen desaturate effect - foreach (var a in world.Queries.WithTrait()) + foreach (var a in world.ActorsWithTrait()) a.Trait.Enable(); Sound.Play("chrono2.aud", units.First().First.CenterLocation); diff --git a/OpenRA.Mods.RA/Strategic/StrategicVictoryConditions.cs b/OpenRA.Mods.RA/Strategic/StrategicVictoryConditions.cs index b97b616037..4b5b2294bb 100644 --- a/OpenRA.Mods.RA/Strategic/StrategicVictoryConditions.cs +++ b/OpenRA.Mods.RA/Strategic/StrategicVictoryConditions.cs @@ -93,7 +93,7 @@ namespace OpenRA.Mods.RA { if (p == Self.Owner || (p.Stances[Self.Owner] == Stance.Ally && Self.Owner.Stances[p] == Stance.Ally)) { - total += Self.World.Queries.WithTrait() + total += Self.World.ActorsWithTrait() .Where(a => a.Actor.Owner == p) .Count(a => a.Trait.Critical == critical); } diff --git a/OpenRA.Mods.RA/SupportPowers/ChronoshiftPower.cs b/OpenRA.Mods.RA/SupportPowers/ChronoshiftPower.cs index 334f5a1551..4bed29f825 100755 --- a/OpenRA.Mods.RA/SupportPowers/ChronoshiftPower.cs +++ b/OpenRA.Mods.RA/SupportPowers/ChronoshiftPower.cs @@ -42,7 +42,7 @@ namespace OpenRA.Mods.RA self.Trait().PlayCustomAnim(self, "active"); // Trigger screen desaturate effect - foreach (var a in self.World.Queries.WithTrait()) + foreach (var a in self.World.ActorsWithTrait()) a.Trait.Enable(); Sound.Play("chrono2.aud", Game.CellSize * order.TargetLocation); diff --git a/OpenRA.Mods.RA/SupportPowers/GpsPower.cs b/OpenRA.Mods.RA/SupportPowers/GpsPower.cs index 00e21665e9..9b5a33a1a4 100755 --- a/OpenRA.Mods.RA/SupportPowers/GpsPower.cs +++ b/OpenRA.Mods.RA/SupportPowers/GpsPower.cs @@ -60,7 +60,7 @@ namespace OpenRA.Mods.RA void RefreshGps(Actor self) { if (self.World.LocalPlayer != null) - self.World.LocalShroud.Disabled = self.World.Queries.WithTrait() + self.World.LocalShroud.Disabled = self.World.ActorsWithTrait() .Any(p => p.Actor.Owner.Stances[self.World.LocalPlayer] == Stance.Ally && p.Trait.Granted); } diff --git a/OpenRA.Mods.RA/TargetableUnit.cs b/OpenRA.Mods.RA/TargetableUnit.cs index 38519eb7ce..72e8c4db7c 100755 --- a/OpenRA.Mods.RA/TargetableUnit.cs +++ b/OpenRA.Mods.RA/TargetableUnit.cs @@ -48,7 +48,7 @@ namespace OpenRA.Mods.RA if (!Cloak.Cloaked || self.Owner == byActor.Owner || self.Owner.Stances[byActor.Owner] == Stance.Ally) return true; - return self.World.Queries.WithTrait().Any(a => (self.Location - a.Actor.Location).Length < a.Actor.Info.Traits.Get().Range); + return self.World.ActorsWithTrait().Any(a => (self.Location - a.Actor.Location).Length < a.Actor.Info.Traits.Get().Range); } public virtual string[] TargetTypes { get { return info.TargetTypes; } } diff --git a/OpenRA.Mods.RA/Widgets/BuildPaletteWidget.cs b/OpenRA.Mods.RA/Widgets/BuildPaletteWidget.cs index c906ba0530..a91f7a9cf8 100755 --- a/OpenRA.Mods.RA/Widgets/BuildPaletteWidget.cs +++ b/OpenRA.Mods.RA/Widgets/BuildPaletteWidget.cs @@ -83,7 +83,7 @@ namespace OpenRA.Mods.RA.Widgets { VisibleQueues.Clear(); - var queues = world.Queries.WithTrait() + var queues = world.ActorsWithTrait() .Where(p => p.Actor.Owner == world.LocalPlayer) .Select(p => p.Trait); diff --git a/OpenRA.Mods.RA/Widgets/RadarBinWidget.cs b/OpenRA.Mods.RA/Widgets/RadarBinWidget.cs index 4bad949eda..4937032f60 100755 --- a/OpenRA.Mods.RA/Widgets/RadarBinWidget.cs +++ b/OpenRA.Mods.RA/Widgets/RadarBinWidget.cs @@ -165,8 +165,8 @@ namespace OpenRA.Mods.RA.Widgets int updateTicks = 0; public override void Tick() { - var hasRadarNew = world.Queries - .WithTrait() + var hasRadarNew = world + .ActorsWithTrait() .Any(a => a.Actor.Owner == world.LocalPlayer && a.Trait.IsActive); if (hasRadarNew != hasRadar) diff --git a/OpenRA.Mods.RA/Widgets/RadarWidget.cs b/OpenRA.Mods.RA/Widgets/RadarWidget.cs index 745ba08ddc..e36da06ae1 100755 --- a/OpenRA.Mods.RA/Widgets/RadarWidget.cs +++ b/OpenRA.Mods.RA/Widgets/RadarWidget.cs @@ -156,8 +156,8 @@ namespace OpenRA.Mods.RA.Widgets int updateTicks = 0; public override void Tick() { - var hasRadarNew = world.Queries - .WithTrait() + var hasRadarNew = world + .ActorsWithTrait() .Any(a => a.Actor.Owner == world.LocalPlayer && a.Trait.IsActive); if (hasRadarNew != hasRadar) diff --git a/OpenRA.Mods.RA/Widgets/WorldCommandWidget.cs b/OpenRA.Mods.RA/Widgets/WorldCommandWidget.cs index 8969648fcc..b4bedf6d1f 100644 --- a/OpenRA.Mods.RA/Widgets/WorldCommandWidget.cs +++ b/OpenRA.Mods.RA/Widgets/WorldCommandWidget.cs @@ -101,7 +101,7 @@ namespace OpenRA.Mods.RA.Widgets bool CycleBases() { - var bases = World.Queries.WithTrait() + var bases = World.ActorsWithTrait() .Where( a => a.Actor.Owner == World.LocalPlayer ).ToArray(); if (!bases.Any()) return true;