public static Vector3 ToRotation(this HexDirection3D direction)
 {
     if ((int)direction < 6)
     {
         return(new Vector3(0, 30 + (int)direction * 60, 0));
     }
     return(new Vector3(0, 0, 0));
 }
 public HexCoordinates DirectionTransform(HexDirection3D dir)
 {
     if (dir == HexDirection3D.DOWN)
     {
         return(new HexCoordinates(this.X, this.Z, this.Depth - 1));
     }
     if (dir == HexDirection3D.UP)
     {
         return(new HexCoordinates(this.X, this.Z, this.Depth + 1));
     }
     return(DirectionTransform((HexDirection)dir, 0));
 }
 public static HexDirection3D Next(this HexDirection3D direction) //clockwise
 {
     if ((int)direction < 6)
     {
         return(direction == HexDirection3D.NW ? HexDirection3D.NE : (direction + 1)); //has specific check for the final index
     }
     if (direction == HexDirection3D.UP)
     {
         return(HexDirection3D.DOWN);
     }
     { return(HexDirection3D.UP); }
 }
    public static HexDirection3D Previous(this HexDirection3D direction) //counterclockwise
    {
        if ((int)direction < 6)
        {
            return(direction == HexDirection3D.NE ? HexDirection3D.NW : (direction - 1)); //does what youd expect
        }

        if (direction == HexDirection3D.UP)
        {
            return(HexDirection3D.DOWN);
        }
        { return(HexDirection3D.UP); }
    }
 public static HexDirection3D Opposite(this HexDirection3D direction)
 {
     if ((int)direction < 3)    //still works, ish
     {
         return(direction + 3); // 0->3, 1->4, 2->5
     }
     if ((int)direction < 6)
     {
         return(direction - 3);  //etc
     }
     if (direction == HexDirection3D.UP)
     {
         return(HexDirection3D.DOWN);
     }
     return(HexDirection3D.UP);
 }
Exemple #6
0
 public static HexDirection3DFlags ConvertToFlag(this HexDirection3D value)
 {
     return((HexDirection3DFlags)(1 << (int)value));
 }
Exemple #7
0
 public static bool CompareToNotFlag(this HexDirection3DFlags a, HexDirection3D b)
 {
     return((a & b.ConvertToFlag()) == b.ConvertToFlag());
 }