} //buildRoom //Builds a corridor private void buildCorridor(p2D start, int direction) { //The start and end coordinates are saved p2D end = new p2D(0, 0); int x = start.getX(); int y = start.getY(); switch (direction) { case 1: //East for (int i = x; i <= x + corridorLength; i++) { dungeonMaze[i, y] = 1; end.setP(i, y); } break; case 3: //West for (int i = x; i >= x - corridorLength; i--) { dungeonMaze[i, y] = 1; end.setP(i, y); } break; case 0: //North for (int i = y; i <= y + corridorLength; i++) { dungeonMaze[x, i] = 1; end.setP(x, i); } break; case 2: //South for (int i = y; i >= y - corridorLength; i--) { dungeonMaze[x, i] = 1; end.setP(x, i); } break; default: //System.err.println("BuildCorridor end 0,0 added"); break; } //The start and end are added to the list or doorwayss doorways.Add(end); doorways.Add(start); } //buildCorridor
public static p2D translateDirectional2(p2D coord, int delta, int direction) { p2D translated = new p2D(int.MaxValue, int.MaxValue); translated.setP(coord.X, coord.Y); switch (direction) { case 0: translated.setY(coord.Y + delta); break; case 1: translated.setX(coord.X + delta); break; case 2: translated.setY(coord.Y - delta); break; case 3: translated.setX(coord.X - delta); break; default: //Debug.Log(direction + " " + coord.X + ", " + coord.Y + " Not translated, max,max returned"); break; } return(translated); }