GetLowestNeighbor() public method

public GetLowestNeighbor ( Generator generator ) : Direction
generator Generator
return Direction
    private void GenerateRivers()
    {
        int attempts   = 0;
        int rivercount = RiverCount;

        Rivers = new List <River> ();

        // Generate some rivers
        while (rivercount > 0 && attempts < MaxRiverAttempts)
        {
            // Get a random tile
            int  x    = UnityEngine.Random.Range(0, Width);
            int  y    = UnityEngine.Random.Range(0, Height);
            Tile tile = Tiles[x, y];

            // validate the tile
            if (!tile.Collidable)
            {
                continue;
            }
            if (tile.Rivers.Count > 0)
            {
                continue;
            }

            if (tile.HeightValue > MinRiverHeight)
            {
                // Tile is good to start river from
                River river = new River(rivercount);

                // Figure out the direction this river will try to flow
                river.CurrentDirection = tile.GetLowestNeighbor();

                // Recursively find a path to water
                FindPathToWater(tile, river.CurrentDirection, ref river);

                // Validate the generated river
                if (river.TurnCount < MinRiverTurns || river.Tiles.Count < MinRiverLength || river.Intersections > MaxRiverIntersections)
                {
                    //Validation failed - remove this river
                    for (int i = 0; i < river.Tiles.Count; i++)
                    {
                        Tile t = river.Tiles[i];
                        t.Rivers.Remove(river);
                    }
                }
                else if (river.Tiles.Count >= MinRiverLength)
                {
                    //Validation passed - Add river to list
                    Rivers.Add(river);
                    tile.Rivers.Add(river);
                    rivercount--;
                }
            }
            attempts++;
        }
    }