Files
Giants/Src/Giants.Core/Src/Interfaces/IHexagonalGrid.cs

36 lines
1.2 KiB
C#

namespace Giants.Core.Interfaces;
/// <summary>
/// represente un outils qui permet de gérer une grille hexagonal
/// </summary>
public interface IHexagonalGrid
{
/// <summary>
/// indique le style de grille, voir https://www.redblobgames.com/grids/hexagons/ pour des détails
/// </summary>
public enum HexStyle
{
/// <summary> Pointe vers le haut, impaire a droite </summary>
PointyOdd,
/// <summary> Pointe vers le haut, pair a droite </summary>
PointyEven,
/// <summary> Pointe vers le coté, impaire en bas</summary>
FlatOdd,
/// <summary> Pointe vers le coté, impaire en haut</summary>
FlatEven
}
/// <summary>
/// Demande a la grille d'allouer sa taille et son type
/// </summary>
/// <param name="style">le style de grid</param>
public void Init(HexStyle style = HexStyle.PointyOdd);
/// <summary>
/// Permet de recupérer la liste des tiles voisines d'une tile fournie en parametre
/// </summary>
/// <param name="coords">La tuile de laquelle on cherche les voisins</param>
/// <returns>la liste des tiles voisines</returns>
public ICollection<AxialCoords> GetNeighbours(AxialCoords coords);
}