﻿using System.Collections.Generic;
using Gamelogic.Grids;

namespace Gamelogic.Grids.Examples
{
	public static class GridExtensions
	{
		public static PointyHexPoint[] directions =
		{
			PointyHexPoint.East,
			PointyHexPoint.NorthEast,
			PointyHexPoint.NorthWest,
			PointyHexPoint.West,
			PointyHexPoint.SouthWest,
			PointyHexPoint.SouthEast
		};

		public static IEnumerable<PointyHexPoint> GetPointsInRing<TCell>(this PointyHexGrid<TCell> grid, int ringNumber)
		{
			var hexPoint = new PointyHexPoint(0, 0);

			hexPoint = hexPoint + directions[4]*(ringNumber);
			
			for (int i = 0; i < 6; i++)
			{
				for (int j = 0; j < ringNumber; j++)
				{
					if (grid.Contains(hexPoint))
					{
						yield return hexPoint;
					}
					
					hexPoint = hexPoint + directions[i];
				}
			}
		}
	}
}