Beispiel #1
0
 void RemoveMovementDirection(GridIndex Index, Enums.MoveDirections dir)
 {
     if (!Index.IsValid())
     {
         return;
     }
     _GridMovements[Index.X, Index.Y, Index.Z] &= (byte)~dir;
 }
Beispiel #2
0
        public bool OtherIndexIsInDirection(GridIndex otherIndex, Enums.MoveDirections dir)
        {
            if (otherIndex == null)
            {
                return(false);
            }

            switch (dir)
            {
            case Enums.MoveDirections.Top:
                if ((otherIndex.Y - Y) > 0)
                {
                    return(true);
                }
                break;

            case Enums.MoveDirections.Bottom:
                if ((Y - otherIndex.Y) > 0)
                {
                    return(true);
                }
                break;

            case Enums.MoveDirections.Left:
                if ((X - otherIndex.X) > 0)
                {
                    return(true);
                }
                break;

            case Enums.MoveDirections.Right:
                if ((otherIndex.X - X) > 0)
                {
                    return(true);
                }
                break;

            case Enums.MoveDirections.Front:
                if ((Z - otherIndex.Z) > 0)
                {
                    return(true);
                }
                break;

            case Enums.MoveDirections.Back:
                if ((otherIndex.Z - Z) > 0)
                {
                    return(true);
                }
                break;
            }

            return(false);
        }
Beispiel #3
0
 public bool GridTileHasDirection(GridIndex index, Enums.MoveDirections dir)
 {
     if (index == null)
     {
         return(false);
     }
     if ((_GridMovements[index.X, index.Y, index.Z] & (byte)dir) != 0)
     {
         return(true);
     }
     return(false);
 }
Beispiel #4
0
        public static Enums.MoveDirections GetOppositeMovementDirection(Enums.MoveDirections dir)
        {
            switch (dir)
            {
            case Enums.MoveDirections.Top: return(Enums.MoveDirections.Bottom);

            case Enums.MoveDirections.Bottom: return(Enums.MoveDirections.Top);

            case Enums.MoveDirections.Left: return(Enums.MoveDirections.Right);

            case Enums.MoveDirections.Right: return(Enums.MoveDirections.Left);

            case Enums.MoveDirections.Front: return(Enums.MoveDirections.Back);

            default: return(Enums.MoveDirections.Front);      // Submitted 'Back', obviously
            }
        }
Beispiel #5
0
        public GridIndex GetAdjacent(Enums.MoveDirections dir)
        {
            switch (dir)
            {
            case Enums.MoveDirections.Bottom: return(GetBelow());

            case Enums.MoveDirections.Top: return(GetAbove());

            case Enums.MoveDirections.Left: return(GetLeft());

            case Enums.MoveDirections.Right: return(GetRight());

            case Enums.MoveDirections.Front: return(GetFront());

            case Enums.MoveDirections.Back: return(GetBack());

            default: return(this);
            }
        }
Beispiel #6
0
 void AddMovementDirection(GridIndex Index, Enums.MoveDirections dir)
 {
     _GridMovements[Index.X, Index.Y, Index.Z] |= (byte)dir;
 }
Beispiel #7
0
 public void LinkTiles(GridIndex index1, GridIndex index2, Enums.MoveDirections dir)
 {
     AddMovementDirection(index2, GetOppositeMovementDirection(dir));
     AddMovementDirection(index1, dir);
 }