2022-01-19 20:56:48 +03:00

66 lines
1.6 KiB
C#

namespace HexFiled
{
public enum HexDirection
{
NE,
E,
SE,
SW,
W,
NW
}
public static class HexDirectionExtensions
{
public static HexDirection Back(this HexDirection direction)
{
return (int)direction < 3 ? (direction + 3) : (direction - 3);
}
public static HexDirection PlusSixtyDeg(this HexDirection direction)
{
return (int)direction < 5 ? (direction + 1) : (HexDirection)0;
}
public static HexDirection MinusSixtyDeg(this HexDirection direction)
{
return (int)direction > 0 ? (direction - 1) : (HexDirection)5;
}
public static HexDirection Plus120Deg(this HexDirection direction)
{
if ((int)direction < 4)
{
direction = direction + 2;
}
else if ((int)direction == 4)
{
direction = (HexDirection)0;
}
else
{
direction = (HexDirection)1;
}
return direction;
}
public static HexDirection Minus120Deg(this HexDirection direction)
{
if ((int)direction > 1)
{
direction = (direction - 2);
}
else if ((int)direction == 1)
{
direction = (HexDirection)5;
}
else
{
direction = (HexDirection)4;
}
return direction;
}
}
}