private WorldPath GenerateNewPath() { int num = (!moving || nextTile < 0 || !IsNextTilePassable()) ? warObject.Tile : nextTile; lastPathedTargetTile = destTile; WorldPath worldPath = Verse.Find.WorldPathFinder.FindPath(num, destTile, null); //caravan=null if (worldPath.Found && num != warObject.Tile) { if (worldPath.NodesLeftCount >= 2 && worldPath.Peek(1) == warObject.Tile) { worldPath.ConsumeNextNode(); if (moving) { previousTileForDrawingIfInDoubt = nextTile; nextTile = warObject.Tile; nextTileCostLeft = nextTileCostTotal - nextTileCostLeft; } } else { worldPath.AddNodeAtStart(warObject.Tile); } } return(worldPath); }
private WorldPath GenerateNewPath() { int num = (moving && nextTile >= 0 && IsNextTilePassable()) ? nextTile : caravan.Tile; lastPathedTargetTile = destTile; WorldPath worldPath = WorldVehiclePathfinder.Instance.FindPath(num, destTile, caravan, null); if (worldPath.Found && num != caravan.Tile) { if (worldPath.NodesLeftCount >= 2 && worldPath.Peek(1) == caravan.Tile) { worldPath.ConsumeNextNode(); if (moving) { previousTileForDrawingIfInDoubt = nextTile; nextTile = caravan.Tile; nextTileCostLeft = nextTileCostTotal - nextTileCostLeft; } } else { worldPath.AddNodeAtStart(caravan.Tile); } } return(worldPath); }
private WorldPath FinalizedPath(int lastTile) { WorldPath emptyWorldPath = Find.WorldPathPool.GetEmptyWorldPath(); int num = lastTile; for (;;) { int parentTile = calcGrid[num].parentTile; int num2 = num; emptyWorldPath.AddNodeAtStart(num2); if (num2 == parentTile) { break; } num = parentTile; } emptyWorldPath.SetupFound(calcGrid[lastTile].knownCost); return(emptyWorldPath); }
private WorldPath FinalizedPath(int lastTile) { WorldPath emptyWorldPath = Find.WorldPathPool.GetEmptyWorldPath(); int num = lastTile; while (true) { WorldShipPathFinder.PathFinderNodeFast pathFinderNodeFast = this.calcGrid[num]; int parentTile = pathFinderNodeFast.parentTile; int num2 = num; emptyWorldPath.AddNodeAtStart(num2); if (num2 == parentTile) { break; } num = parentTile; } emptyWorldPath.SetupFound((float)this.calcGrid[lastTile].knownCost); return(emptyWorldPath); }