moved Game.PathFinder into World

This commit is contained in:
Bob
2010-01-18 02:04:31 +13:00
parent 2f568ce829
commit a98296c4c4
6 changed files with 14 additions and 13 deletions

View File

@@ -19,7 +19,6 @@ namespace OpenRa
public static World world;
internal static Viewport viewport;
public static PathFinder PathFinder;
public static Controller controller;
internal static Chrome chrome;
public static UserSettings Settings;
@@ -90,8 +89,6 @@ namespace OpenRa
LoadMapActors(Rules.AllRules);
skipMakeAnims = false;
PathFinder = new PathFinder();
chrome = new Chrome(renderer);
SpawnPoints = Rules.AllRules.GetSection("Waypoints")
@@ -336,7 +333,7 @@ namespace OpenRa
foreach (var t in Footprint.Tiles(buildingName, bi, position)) search.AddInitialCell(t);
return Game.PathFinder.FindPath(search).Count != 0;
return Game.world.PathFinder.FindPath(search).Count != 0;
}
public static void SyncLobbyInfo(string data)

View File

@@ -11,15 +11,15 @@ namespace OpenRa
{
float[][,] passableCost = new float[4][,];
public PathFinder()
public PathFinder( World world )
{
for (var umt = UnitMovementType.Foot; umt <= UnitMovementType.Float; umt++)
passableCost[(int)umt] = new float[128, 128];
for( int x = 0 ; x < 128 ; x++ )
for( int y = 0 ; y < 128 ; y++ )
for (var umt = UnitMovementType.Foot; umt <= UnitMovementType.Float; umt++ )
passableCost[(int)umt][ x, y ] = ( Game.world.Map.IsInMap( x, y ) )
? (float)TerrainCosts.Cost( umt, Game.world.TileSet.GetWalkability( Game.world.Map.MapTiles[ x, y ] ) )
passableCost[(int)umt][ x, y ] = ( world.Map.IsInMap( x, y ) )
? (float)TerrainCosts.Cost( umt, world.TileSet.GetWalkability( world.Map.MapTiles[ x, y ] ) )
: float.PositiveInfinity;
}

View File

@@ -50,7 +50,7 @@ namespace OpenRa.Traits.Activities
foreach( var r in refineries )
search.AddInitialCell( r.Location + refineryDeliverOffset );
var path = Game.PathFinder.FindPath( search );
var path = Game.world.PathFinder.FindPath( search );
path.Reverse();
if( path.Count != 0 )
{

View File

@@ -63,7 +63,7 @@ namespace OpenRa.Traits.Activities
checkForBlocked = true
};
search.AddInitialCell(self.Location);
return Game.PathFinder.FindPath(search);
return Game.world.PathFinder.FindPath(search);
}));
self.QueueActivity(new Harvest());
}

View File

@@ -20,7 +20,7 @@ namespace OpenRa.Traits.Activities
public Move( int2 destination, int nearEnough )
{
this.getPath = ( self, mobile ) => Game.PathFinder.FindUnitPath(
this.getPath = ( self, mobile ) => Game.world.PathFinder.FindUnitPath(
self.Location, destination,
mobile.GetMovementType() );
this.destination = destination;
@@ -30,9 +30,9 @@ namespace OpenRa.Traits.Activities
public Move(int2 destination, Actor ignoreBuilding)
{
this.getPath = (self, mobile) =>
Game.PathFinder.FindPath(
Game.world.PathFinder.FindPath(
PathSearch.FromPoint( self.Location, destination, mobile.GetMovementType(), false )
.WithCustomBlocker( Game.PathFinder.AvoidUnitsNear( self.Location, 4 )).WithIgnoredBuilding( ignoreBuilding ));
.WithCustomBlocker( Game.world.PathFinder.AvoidUnitsNear( self.Location, 4 )).WithIgnoredBuilding( ignoreBuilding ));
this.destination = destination;
this.nearEnough = 0;
@@ -41,7 +41,7 @@ namespace OpenRa.Traits.Activities
public Move( Actor target, int range )
{
this.getPath = ( self, mobile ) => Game.PathFinder.FindUnitPathToRange(
this.getPath = ( self, mobile ) => Game.world.PathFinder.FindUnitPathToRange(
self.Location, target.Location,
mobile.GetMovementType(), range );
this.destination = null;

View File

@@ -16,6 +16,8 @@ namespace OpenRa
public readonly BuildingInfluenceMap BuildingInfluence;
public readonly UnitInfluenceMap UnitInfluence;
public readonly PathFinder PathFinder;
public readonly Map Map;
public readonly TileSet TileSet;
@@ -37,6 +39,8 @@ namespace OpenRa
oreTicks = oreFrequency;
Map.InitOreDensity();
PathFinder = new PathFinder(this);
CreateActor("World", new int2(int.MaxValue, int.MaxValue), null);
WorldRenderer = new WorldRenderer(this, Game.renderer);