private void ChangeSnakeDirection(Direction newDirection) { SnakePart snakeHead = gsm.GetSnake().GetSnakeHead(); if (newDirection != snakeHead.GetSnakeDirection().GetOppositeDirection()) { snakeHead.SetSnakePartDirection(newDirection); } }
void MoveSnakePartToTileOfNextSnakePart(MapManager mm, SnakePart snakePart, SnakePart nextSnakePart) { Tile nextTile = mm.GetTileWithItem(nextSnakePart); if (nextTile == null) { throw new Exception("nextTile is null"); } mm.PlaceItemOnTile(nextTile, snakePart); snakePart.SetSnakePartDirection(nextSnakePart.GetSnakeDirection().GetCurrentDirection()); }
public Tile GetTileInFrontOfSnakePart(SnakePart snakePart) { Direction partDirection = snakePart.GetSnakeDirection().GetCurrentDirection(); switch (partDirection) { case Direction.Up: return(FindUpwardsNeighbourToTile(GetTileWithItem(snakePart))); case Direction.Down: return(FindDownwardsNeighbourToTile(GetTileWithItem(snakePart))); case Direction.Left: return(FindLeftNeighbourToTile(GetTileWithItem(snakePart))); case Direction.Right: return(FindRightNeighbourToTile(GetTileWithItem(snakePart))); default: return(FindRightNeighbourToTile(GetTileWithItem(snakePart))); } }
public Tile GetTileBehindSnakePart(SnakePart snakePart) { Direction oppositeOfPartDirection = snakePart.GetSnakeDirection().GetOppositeDirection(); switch (oppositeOfPartDirection) { case Direction.Up: return(FindUpwardsNeighbourToTile(GetTileWithItem(snakePart))); case Direction.Down: return(FindDownwardsNeighbourToTile(GetTileWithItem(snakePart))); case Direction.Left: return(FindLeftNeighbourToTile(GetTileWithItem(snakePart))); case Direction.Right: return(FindRightNeighbourToTile(GetTileWithItem(snakePart))); default: return(FindRightNeighbourToTile(GetTileWithItem(snakePart))); } }