private Set<Point> generateDoors(Room room, Direction existingDirection) {
        Set<Point> doors = new LinkedHashSet<Point>();
        
        for (Direction direction : Direction.values()) {
            if (direction == existingDirection) continue;
            if (generator.nextDouble() <= generationProbability) {
                doors.add(generateDoor(room, direction));
            }
        }
        
        return doors;
    }