diff --git a/OpenRA.Game/OpenRA.Game.csproj b/OpenRA.Game/OpenRA.Game.csproj index 9ed5a1f830..6d2b122188 100755 --- a/OpenRA.Game/OpenRA.Game.csproj +++ b/OpenRA.Game/OpenRA.Game.csproj @@ -106,7 +106,6 @@ - @@ -136,7 +135,6 @@ - @@ -151,7 +149,6 @@ - @@ -159,7 +156,6 @@ - @@ -202,7 +198,6 @@ - diff --git a/OpenRA.Game/Support/PerfHistory.cs b/OpenRA.Game/Support/PerfHistory.cs index 628c34e6ea..ab9fd16a44 100644 --- a/OpenRA.Game/Support/PerfHistory.cs +++ b/OpenRA.Game/Support/PerfHistory.cs @@ -90,7 +90,7 @@ namespace OpenRA.Support } } - class PerfSample : IDisposable + public class PerfSample : IDisposable { readonly Stopwatch sw = new Stopwatch(); readonly string Item; diff --git a/OpenRA.Game/Traits/World/Shroud.cs b/OpenRA.Game/Traits/World/Shroud.cs index b80596d14f..8f5ce19415 100644 --- a/OpenRA.Game/Traits/World/Shroud.cs +++ b/OpenRA.Game/Traits/World/Shroud.cs @@ -129,9 +129,9 @@ namespace OpenRA.Traits } else { - var mobile = a.TraitOrDefault(); - if (mobile != null) - return new[] { mobile.fromCell, mobile.toCell }; + var ios = a.TraitOrDefault(); + if (ios != null) + return ios.OccupiedCells(); else return new[] { (1f / Game.CellSize * a.CenterLocation).ToInt2() }; } diff --git a/OpenRA.Game/World.cs b/OpenRA.Game/World.cs index c4d71398ca..4ad76473d6 100644 --- a/OpenRA.Game/World.cs +++ b/OpenRA.Game/World.cs @@ -28,6 +28,8 @@ namespace OpenRA List effects = new List(); Queue> frameEndActions = new Queue>(); + public int FrameNumber { get { return orderManager.LocalFrameNumber; } } + internal readonly OrderManager orderManager; public Session LobbyInfo { get { return orderManager.LobbyInfo; } } @@ -49,7 +51,6 @@ namespace OpenRA } public readonly Actor WorldActor; - public readonly PathFinder PathFinder; public readonly Map Map; public readonly TileSet TileSet; @@ -109,8 +110,6 @@ namespace OpenRA if (!p.Stances.ContainsKey(q)) p.Stances[q] = Stance.Neutral; - PathFinder = new PathFinder(this); - Sound.SoundVolumeModifier = 1.0f; foreach (var wlh in WorldActor.TraitsImplementing()) wlh.WorldLoaded(this); diff --git a/OpenRA.Mods.Cnc/Missions/Gdi01Script.cs b/OpenRA.Mods.Cnc/Missions/Gdi01Script.cs index 7bc663e9f2..7080965c39 100644 --- a/OpenRA.Mods.Cnc/Missions/Gdi01Script.cs +++ b/OpenRA.Mods.Cnc/Missions/Gdi01Script.cs @@ -17,7 +17,8 @@ using OpenRA.FileFormats; using OpenRA; using OpenRA.Mods.RA.Activities; using System; -using OpenRA.Mods.RA; +using OpenRA.Mods.RA; +using OpenRA.Mods.RA.Move; namespace OpenRA.Mods.Cnc { diff --git a/OpenRA.Mods.Cnc/TiberiumRefineryDockAction.cs b/OpenRA.Mods.Cnc/TiberiumRefineryDockAction.cs index a3f7c4e58a..6cb5040d41 100644 --- a/OpenRA.Mods.Cnc/TiberiumRefineryDockAction.cs +++ b/OpenRA.Mods.Cnc/TiberiumRefineryDockAction.cs @@ -13,7 +13,8 @@ using OpenRA.Mods.RA; using OpenRA.Mods.RA.Activities; using OpenRA.Mods.RA.Render; using OpenRA.Traits; -using OpenRA.Traits.Activities; +using OpenRA.Traits.Activities; +using OpenRA.Mods.RA.Move; namespace OpenRA.Mods.Cnc { diff --git a/OpenRA.Mods.RA/Activities/Attack.cs b/OpenRA.Mods.RA/Activities/Attack.cs index 209169dfd8..f1219747d3 100755 --- a/OpenRA.Mods.RA/Activities/Attack.cs +++ b/OpenRA.Mods.RA/Activities/Attack.cs @@ -11,6 +11,7 @@ using OpenRA.Mods.RA.Render; using OpenRA.Traits; using OpenRA.Traits.Activities; +using OpenRA.Mods.RA.Move; namespace OpenRA.Mods.RA.Activities { diff --git a/OpenRA.Mods.RA/Activities/DeliverOre.cs b/OpenRA.Mods.RA/Activities/DeliverOre.cs index 3ed6e9ec78..fe3f3933c8 100755 --- a/OpenRA.Mods.RA/Activities/DeliverOre.cs +++ b/OpenRA.Mods.RA/Activities/DeliverOre.cs @@ -11,6 +11,7 @@ using System.Collections.Generic; using OpenRA.Traits; using OpenRA.Traits.Activities; +using OpenRA.Mods.RA.Move; namespace OpenRA.Mods.RA.Activities { diff --git a/OpenRA.Mods.RA/Activities/Enter.cs b/OpenRA.Mods.RA/Activities/Enter.cs index d965410c7c..50e8786257 100755 --- a/OpenRA.Mods.RA/Activities/Enter.cs +++ b/OpenRA.Mods.RA/Activities/Enter.cs @@ -13,6 +13,7 @@ using System.Collections.Generic; using System.Linq; using OpenRA.Traits; using OpenRA.Traits.Activities; +using OpenRA.Mods.RA.Move; namespace OpenRA.Mods.RA.Activities { diff --git a/OpenRA.Mods.RA/Activities/Follow.cs b/OpenRA.Mods.RA/Activities/Follow.cs index 596589ff75..6cbdda0a91 100644 --- a/OpenRA.Mods.RA/Activities/Follow.cs +++ b/OpenRA.Mods.RA/Activities/Follow.cs @@ -10,6 +10,7 @@ using OpenRA.Traits; using OpenRA.Traits.Activities; +using OpenRA.Mods.RA.Move; namespace OpenRA.Mods.RA.Activities { diff --git a/OpenRA.Mods.RA/Activities/Harvest.cs b/OpenRA.Mods.RA/Activities/Harvest.cs index 0e4428148e..332e1cf4a6 100755 --- a/OpenRA.Mods.RA/Activities/Harvest.cs +++ b/OpenRA.Mods.RA/Activities/Harvest.cs @@ -12,6 +12,7 @@ using System.Linq; using OpenRA.Mods.RA.Render; using OpenRA.Traits; using OpenRA.Traits.Activities; +using OpenRA.Mods.RA.Move; namespace OpenRA.Mods.RA.Activities { @@ -67,7 +68,7 @@ namespace OpenRA.Mods.RA.Activities self.QueueActivity(mobile.MoveTo( () => { - return self.World.PathFinder.FindPath(PathSearch.Search(self.World, mobileInfo, true) + return self.World.WorldActor.Trait().FindPath(PathSearch.Search(self.World, mobileInfo, true) .WithHeuristic(loc => (res.GetResource(loc) != null && harv.Resources.Contains( res.GetResource(loc).info.Name )) ? 0 : 1) .FromPoint(self.Location)); })); diff --git a/OpenRA.Mods.RA/Activities/LayMines.cs b/OpenRA.Mods.RA/Activities/LayMines.cs index 32eedf1053..49e8fe75f3 100644 --- a/OpenRA.Mods.RA/Activities/LayMines.cs +++ b/OpenRA.Mods.RA/Activities/LayMines.cs @@ -12,6 +12,7 @@ using System.Linq; using OpenRA.FileFormats; using OpenRA.Traits; using OpenRA.Traits.Activities; +using OpenRA.Mods.RA.Move; namespace OpenRA.Mods.RA.Activities { diff --git a/OpenRA.Mods.RA/Activities/Leap.cs b/OpenRA.Mods.RA/Activities/Leap.cs index fa1c653c70..9f02f8c7e5 100644 --- a/OpenRA.Mods.RA/Activities/Leap.cs +++ b/OpenRA.Mods.RA/Activities/Leap.cs @@ -11,6 +11,7 @@ using System.Linq; using OpenRA.Mods.RA.Render; using OpenRA.Traits; +using OpenRA.Mods.RA.Move; namespace OpenRA.Mods.RA.Activities { diff --git a/OpenRA.Mods.RA/Activities/MoveAdjacentTo.cs b/OpenRA.Mods.RA/Activities/MoveAdjacentTo.cs index 66bcc2f695..4d6220f204 100755 --- a/OpenRA.Mods.RA/Activities/MoveAdjacentTo.cs +++ b/OpenRA.Mods.RA/Activities/MoveAdjacentTo.cs @@ -13,6 +13,7 @@ using System.Collections.Generic; using System.Linq; using OpenRA.Traits; using OpenRA.Traits.Activities; +using OpenRA.Mods.RA.Move; namespace OpenRA.Mods.RA.Activities { @@ -45,7 +46,7 @@ namespace OpenRA.Mods.RA.Activities ps1.heuristic = PathSearch.DefaultEstimator( mobile.toCell ); var ps2 = PathSearch.FromPoint( self.World, mobile.Info, mobile.toCell, target.Location, true ); - var ret = self.World.PathFinder.FindBidiPath( ps1, ps2 ); + var ret = self.World.WorldActor.Trait().FindBidiPath( ps1, ps2 ); if( ret.Count > 0 ) ret.RemoveAt( 0 ); return Util.SequenceActivities( mobile.MoveTo( () => ret ), this ); diff --git a/OpenRA.Mods.RA/Activities/UnloadCargo.cs b/OpenRA.Mods.RA/Activities/UnloadCargo.cs index 49b91f8394..6755aa7939 100644 --- a/OpenRA.Mods.RA/Activities/UnloadCargo.cs +++ b/OpenRA.Mods.RA/Activities/UnloadCargo.cs @@ -13,6 +13,7 @@ using OpenRA.Mods.RA.Render; using OpenRA.Traits; using OpenRA.Traits.Activities; using System.Drawing; +using OpenRA.Mods.RA.Move; namespace OpenRA.Mods.RA.Activities { diff --git a/OpenRA.Mods.RA/AttackMove.cs b/OpenRA.Mods.RA/AttackMove.cs index 0418af233f..77ae56e5eb 100644 --- a/OpenRA.Mods.RA/AttackMove.cs +++ b/OpenRA.Mods.RA/AttackMove.cs @@ -11,6 +11,7 @@ using System.Drawing; using OpenRA.Effects; using OpenRA.Traits; +using OpenRA.Mods.RA.Move; namespace OpenRA.Mods.RA { diff --git a/OpenRA.Mods.RA/AttackTurreted.cs b/OpenRA.Mods.RA/AttackTurreted.cs index 35a4c6f195..b54a632199 100644 --- a/OpenRA.Mods.RA/AttackTurreted.cs +++ b/OpenRA.Mods.RA/AttackTurreted.cs @@ -12,6 +12,7 @@ using System; using OpenRA.Mods.RA.Activities; using OpenRA.Traits; using System.Linq; +using OpenRA.Mods.RA.Move; namespace OpenRA.Mods.RA { diff --git a/OpenRA.Mods.RA/C4Demolition.cs b/OpenRA.Mods.RA/C4Demolition.cs index 87e1952c19..595cf8dee7 100644 --- a/OpenRA.Mods.RA/C4Demolition.cs +++ b/OpenRA.Mods.RA/C4Demolition.cs @@ -16,6 +16,7 @@ using OpenRA.Mods.RA.Activities; using OpenRA.Mods.RA.Orders; using OpenRA.Traits; using OpenRA.Traits.Activities; +using OpenRA.Mods.RA.Move; namespace OpenRA.Mods.RA { diff --git a/OpenRA.Mods.RA/Crates/GiveUnitCrateAction.cs b/OpenRA.Mods.RA/Crates/GiveUnitCrateAction.cs index b71716903f..640d30a556 100644 --- a/OpenRA.Mods.RA/Crates/GiveUnitCrateAction.cs +++ b/OpenRA.Mods.RA/Crates/GiveUnitCrateAction.cs @@ -12,6 +12,7 @@ using System.Collections.Generic; using System.Linq; using OpenRA.FileFormats; using OpenRA.Traits; +using OpenRA.Mods.RA.Move; namespace OpenRA.Mods.RA.Crates { diff --git a/OpenRA.Mods.RA/Harvester.cs b/OpenRA.Mods.RA/Harvester.cs index 80b9d60524..0c8c1a27e4 100644 --- a/OpenRA.Mods.RA/Harvester.cs +++ b/OpenRA.Mods.RA/Harvester.cs @@ -15,7 +15,8 @@ using OpenRA.Effects; using OpenRA.Mods.RA.Activities; using OpenRA.Traits; using OpenRA.Traits.Activities; -using OpenRA.Mods.RA.Orders; +using OpenRA.Mods.RA.Orders; +using OpenRA.Mods.RA.Move; namespace OpenRA.Mods.RA { @@ -65,7 +66,7 @@ namespace OpenRA.Mods.RA .Where(x => x != ignore && x.HasTrait()) .ToList(); var mi = self.Info.Traits.Get(); - var path = self.World.PathFinder.FindPath(PathSearch.FromPoints(self.World, mi, + var path = self.World.WorldActor.Trait().FindPath(PathSearch.FromPoints(self.World, mi, refs.Select(r => r.Location + r.Trait().DeliverOffset), self.Location, false)); diff --git a/OpenRA.Game/Traits/Activities/Drag.cs b/OpenRA.Mods.RA/Move/Drag.cs old mode 100644 new mode 100755 similarity index 93% rename from OpenRA.Game/Traits/Activities/Drag.cs rename to OpenRA.Mods.RA/Move/Drag.cs index 0655f3e735..8c042bc947 --- a/OpenRA.Game/Traits/Activities/Drag.cs +++ b/OpenRA.Mods.RA/Move/Drag.cs @@ -9,8 +9,9 @@ #endregion using System.Collections.Generic; +using OpenRA.Traits; -namespace OpenRA.Traits.Activities +namespace OpenRA.Mods.RA.Move { public class Drag : IActivity { diff --git a/OpenRA.Game/Traits/Mobile.cs b/OpenRA.Mods.RA/Move/Mobile.cs old mode 100644 new mode 100755 similarity index 95% rename from OpenRA.Game/Traits/Mobile.cs rename to OpenRA.Mods.RA/Move/Mobile.cs index da70dacd63..1650ff0945 --- a/OpenRA.Game/Traits/Mobile.cs +++ b/OpenRA.Mods.RA/Move/Mobile.cs @@ -17,8 +17,9 @@ using OpenRA.Traits.Activities; using OpenRA.FileFormats; using System.Diagnostics; using OpenRA.Orders; +using OpenRA.Traits; -namespace OpenRA.Traits +namespace OpenRA.Mods.RA.Move { public class MobileInfo : ITraitInfo { @@ -180,7 +181,7 @@ namespace OpenRA.Traits if( !order.Queued ) self.CancelActivity(); - self.QueueActivity(new Activities.Move(currentLocation, 8)); + self.QueueActivity(new Move(currentLocation, 8)); if (self.Owner == self.World.LocalPlayer) self.World.AddFrameEndTask(w => diff --git a/OpenRA.Game/Traits/Activities/Move.cs b/OpenRA.Mods.RA/Move/Move.cs similarity index 90% rename from OpenRA.Game/Traits/Activities/Move.cs rename to OpenRA.Mods.RA/Move/Move.cs index 01e6f1e4f7..478e7732a1 100755 --- a/OpenRA.Game/Traits/Activities/Move.cs +++ b/OpenRA.Mods.RA/Move/Move.cs @@ -12,8 +12,10 @@ using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; +using OpenRA.Traits; +using OpenRA.Traits.Activities; -namespace OpenRA.Traits.Activities +namespace OpenRA.Mods.RA.Move { class Move : CancelableActivity { @@ -28,7 +30,7 @@ namespace OpenRA.Traits.Activities public Move( int2 destination ) { this.getPath = (self,mobile) => - self.World.PathFinder.FindPath( + self.World.WorldActor.Trait().FindPath( PathSearch.FromPoint( self.World, mobile.Info, mobile.toCell, destination, false ) .WithoutLaneBias()); this.destination = destination; @@ -37,7 +39,7 @@ namespace OpenRA.Traits.Activities public Move( int2 destination, int nearEnough ) { - this.getPath = (self,mobile) => self.World.PathFinder.FindUnitPath( mobile.toCell, destination, self ); + this.getPath = (self,mobile) => self.World.WorldActor.Trait().FindUnitPath( mobile.toCell, destination, self ); this.destination = destination; this.nearEnough = nearEnough; } @@ -45,9 +47,9 @@ namespace OpenRA.Traits.Activities public Move(int2 destination, Actor ignoreBuilding) { this.getPath = (self,mobile) => - self.World.PathFinder.FindPath( + self.World.WorldActor.Trait().FindPath( PathSearch.FromPoint( self.World, mobile.Info, mobile.toCell, destination, false ) - .WithCustomBlocker( self.World.PathFinder.AvoidUnitsNear( mobile.toCell, 4, self )) + .WithCustomBlocker( self.World.WorldActor.Trait().AvoidUnitsNear( mobile.toCell, 4, self )) .WithIgnoredBuilding( ignoreBuilding )); this.destination = destination; @@ -57,7 +59,7 @@ namespace OpenRA.Traits.Activities public Move( Actor target, int range ) { - this.getPath = (self,mobile) => self.World.PathFinder.FindUnitPathToRange( + this.getPath = (self,mobile) => self.World.WorldActor.Trait().FindUnitPathToRange( mobile.toCell, target.Location, range, self ); this.destination = null; @@ -66,7 +68,7 @@ namespace OpenRA.Traits.Activities public Move(Target target, int range) { - this.getPath = (self,mobile) => self.World.PathFinder.FindUnitPathToRange( + this.getPath = (self,mobile) => self.World.WorldActor.Trait().FindUnitPathToRange( mobile.toCell, Util.CellContaining(target.CenterLocation), range, self); this.destination = null; diff --git a/OpenRA.Game/PathFinder.cs b/OpenRA.Mods.RA/Move/PathFinder.cs old mode 100644 new mode 100755 similarity index 89% rename from OpenRA.Game/PathFinder.cs rename to OpenRA.Mods.RA/Move/PathFinder.cs index 718c023bd1..59035f05b0 --- a/OpenRA.Game/PathFinder.cs +++ b/OpenRA.Mods.RA/Move/PathFinder.cs @@ -15,16 +15,17 @@ using System.Linq; using OpenRA.Support; using OpenRA.Traits; -namespace OpenRA +namespace OpenRA.Mods.RA.Move { + public class PathFinderInfo : ITraitInfo + { + public object Create( ActorInitializer init ) { return new PathFinder( init.world ); } + } + public class PathFinder { readonly World world; - - public PathFinder( World world ) - { - this.world = world; - } + public PathFinder( World world ) { this.world = world; } class CachedPath { @@ -45,8 +46,8 @@ namespace OpenRA var cached = CachedPaths.FirstOrDefault(p => p.from == from && p.to == target && p.actor == self); if (cached != null) { - Log.Write("debug", "Actor {0} asked for a path from {1} tick(s) ago", self.ActorID, Game.LocalTick - cached.tick); - cached.tick = Game.LocalTick; + Log.Write("debug", "Actor {0} asked for a path from {1} tick(s) ago", self.ActorID, world.FrameNumber - cached.tick); + cached.tick = world.FrameNumber; return new List(cached.result); } @@ -61,8 +62,8 @@ namespace OpenRA CheckSanePath2(pb, from, target); - CachedPaths.RemoveAll(p => Game.LocalTick - p.tick > MaxPathAge); - CachedPaths.Add(new CachedPath { from = from, to = target, actor = self, result = pb, tick = Game.LocalTick }); + CachedPaths.RemoveAll(p => world.FrameNumber - p.tick > MaxPathAge); + CachedPaths.Add(new CachedPath { from = from, to = target, actor = self, result = pb, tick = world.FrameNumber }); return new List(pb); } } @@ -98,8 +99,6 @@ namespace OpenRA while (!search.queue.Empty) { var p = search.Expand( world ); - PerfHistory.Increment("nodes_expanded", .01); - if (search.heuristic(p) == 0) return MakePath(search.cellInfo, p); } diff --git a/OpenRA.Game/PathSearch.cs b/OpenRA.Mods.RA/Move/PathSearch.cs similarity index 95% rename from OpenRA.Game/PathSearch.cs rename to OpenRA.Mods.RA/Move/PathSearch.cs index 2d4b73e3df..5b4e5cba2c 100755 --- a/OpenRA.Game/PathSearch.cs +++ b/OpenRA.Mods.RA/Move/PathSearch.cs @@ -13,7 +13,7 @@ using System.Collections.Generic; using OpenRA.FileFormats; using OpenRA.Traits; -namespace OpenRA +namespace OpenRA.Mods.RA.Move { public class PathSearch { diff --git a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj index c4281dff74..742baf4e1d 100644 --- a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj +++ b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj @@ -97,6 +97,11 @@ + + + + + diff --git a/OpenRA.Mods.RA/OreRefineryDockAction.cs b/OpenRA.Mods.RA/OreRefineryDockAction.cs index 6bf34214c5..1abd6fc795 100644 --- a/OpenRA.Mods.RA/OreRefineryDockAction.cs +++ b/OpenRA.Mods.RA/OreRefineryDockAction.cs @@ -12,7 +12,8 @@ using OpenRA.Mods.RA.Activities; using OpenRA.Mods.RA.Render; using OpenRA.Traits; using OpenRA.Traits.Activities; -using System.Drawing; +using System.Drawing; +using OpenRA.Mods.RA.Move; namespace OpenRA.Mods.RA { diff --git a/OpenRA.Mods.RA/Passenger.cs b/OpenRA.Mods.RA/Passenger.cs index c717a0c969..b91b989353 100644 --- a/OpenRA.Mods.RA/Passenger.cs +++ b/OpenRA.Mods.RA/Passenger.cs @@ -16,6 +16,7 @@ using OpenRA.Mods.RA.Activities; using OpenRA.Mods.RA.Orders; using OpenRA.Traits; using OpenRA.Traits.Activities; +using OpenRA.Mods.RA.Move; namespace OpenRA.Mods.RA { diff --git a/OpenRA.Mods.RA/Production.cs b/OpenRA.Mods.RA/Production.cs index 2894c486e4..238bb2e0dc 100755 --- a/OpenRA.Mods.RA/Production.cs +++ b/OpenRA.Mods.RA/Production.cs @@ -12,6 +12,7 @@ using System.Drawing; using OpenRA.FileFormats; using OpenRA.Traits; using OpenRA.Traits.Activities; +using OpenRA.Mods.RA.Move; namespace OpenRA.Mods.RA { diff --git a/OpenRA.Mods.RA/Render/RenderInfantry.cs b/OpenRA.Mods.RA/Render/RenderInfantry.cs index 472255d37c..dfadbd7425 100644 --- a/OpenRA.Mods.RA/Render/RenderInfantry.cs +++ b/OpenRA.Mods.RA/Render/RenderInfantry.cs @@ -12,6 +12,7 @@ using OpenRA.Mods.RA.Effects; using OpenRA.Traits; using OpenRA.Traits.Activities; using OpenRA.Mods.RA.Activities; +using OpenRA.Mods.RA.Move; namespace OpenRA.Mods.RA.Render { diff --git a/OpenRA.Mods.RA/Repairable.cs b/OpenRA.Mods.RA/Repairable.cs index d6c1f26d6c..638d30258b 100644 --- a/OpenRA.Mods.RA/Repairable.cs +++ b/OpenRA.Mods.RA/Repairable.cs @@ -16,6 +16,7 @@ using OpenRA.Traits.Activities; using System.Drawing; using System.Collections.Generic; using OpenRA.Mods.RA.Orders; +using OpenRA.Mods.RA.Move; namespace OpenRA.Mods.RA { diff --git a/OpenRA.Mods.RA/RepairableNear.cs b/OpenRA.Mods.RA/RepairableNear.cs index cfbdd8885d..b446932985 100644 --- a/OpenRA.Mods.RA/RepairableNear.cs +++ b/OpenRA.Mods.RA/RepairableNear.cs @@ -15,6 +15,7 @@ using OpenRA.Traits.Activities; using System.Drawing; using System.Collections.Generic; using OpenRA.Mods.RA.Orders; +using OpenRA.Mods.RA.Move; namespace OpenRA.Mods.RA { diff --git a/mods/cnc/rules/system.yaml b/mods/cnc/rules/system.yaml index b03b05132f..2f4d10df21 100644 --- a/mods/cnc/rules/system.yaml +++ b/mods/cnc/rules/system.yaml @@ -178,6 +178,7 @@ World: Maximum: 3 SpawnInterval: 120 WaterChance: 0 + PathFinder: CRATE: Tooltip: diff --git a/mods/ra/rules/system.yaml b/mods/ra/rules/system.yaml index 71719fc0a9..90cd719523 100644 --- a/mods/ra/rules/system.yaml +++ b/mods/ra/rules/system.yaml @@ -218,6 +218,7 @@ World: SpatialBins: BinSize: 4 Shroud: + PathFinder: MINP: Mine: