void RemoveMovementDirection(GridIndex Index, Enums.MoveDirections dir) { if (!Index.IsValid()) { return; } _GridMovements[Index.X, Index.Y, Index.Z] &= (byte)~dir; }
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); }
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); }
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 } }
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); } }
void AddMovementDirection(GridIndex Index, Enums.MoveDirections dir) { _GridMovements[Index.X, Index.Y, Index.Z] |= (byte)dir; }
public void LinkTiles(GridIndex index1, GridIndex index2, Enums.MoveDirections dir) { AddMovementDirection(index2, GetOppositeMovementDirection(dir)); AddMovementDirection(index1, dir); }