public static void PackRoom(Room room, int floor, Dungeon building) { room.xSize = (int)Mathf.Sqrt(room.size); room.ySize = (int)(room.size / (float)room.xSize); int swapRoll = Random.Range(0, 2); if (swapRoll == 0) { var temp = room.xSize; room.xSize = room.ySize; room.ySize = temp; } for (int x = 0; x < building.maxDimensions - room.xSize; x++) { for (int y = 0; y < building.maxDimensions - room.ySize; y++) { if (LevelGenValidationUtils.RoomFits(room, floor, x, y, building.grid)) { room.x = x; room.y = y; room.floor = floor; LevelGenGridUtils.FillRoom(room, floor, x, y, building.grid); return; } } } building.maxDimensions = (int)(building.maxDimensions * 1.2); PackRoom(room, floor, building); }
private static bool PlaceStartingRoom(Dungeon building, Room room) { room.size = 25; room.xSize = 5; room.ySize = 5; room.x = (building.maxDimensions / 2) - 2; // 58; room.y = (building.maxDimensions / 2) - 2; // 58; room.SetEntrance((building.maxDimensions / 2) - 2, (building.maxDimensions / 2) - 2, 3); //room.SetEntrance(58, 58, 3); LevelGenGridUtils.FillRoom(room, 0, room.x, room.y, building.grid); building.grid[0, (building.maxDimensions / 2) - 3, (building.maxDimensions / 2) - 2] = "x"; building.grid[0, (building.maxDimensions / 2) - 4, (building.maxDimensions / 2) - 2] = "E"; return(true); }