36 lines
1.2 KiB
C#
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);
|
|
} |