private boolean isNotSeparatorRoom(Room separatorRoom, Room joinerRoom) { if (separatorRoom == null) return false; if (separatorRoom.isRotatable() && separatorRoom != joinerRoom) { separatorRoom.rotateRightRotatedType(); rotationMap.put( separatorRoom.getDistance() - Math.abs(separatorRoom.getRotation()), separatorRoom); return false; } if (separatorRoom.isRotatable() && separatorRoom == joinerRoom && separatorRoom.getExit() != null) { if (separatorRoom.getRotatedType() == RoomType.TYPE_7) { separatorRoom.rotateRightRotatedType(); } else if (separatorRoom.getRotatedType() == RoomType.TYPE_8 && separatorRoom.getEntrance() == Direction.LEFT) { separatorRoom.rotateLeftRotatedType(); } else if (separatorRoom.getRotatedType() == RoomType.TYPE_8 && separatorRoom.getEntrance() == Direction.RIGHT) { separatorRoom.rotateRightRotatedType(); } else if (separatorRoom.getRotatedType() == RoomType.TYPE_9 && separatorRoom.getEntrance() == Direction.TOP) { separatorRoom.rotateLeftRotatedType(); } else if (separatorRoom.getRotatedType() == RoomType.TYPE_9 && separatorRoom.getEntrance() == Direction.LEFT) { separatorRoom.rotateRightRotatedType(); } rotationMap.put( separatorRoom.getDistance() - Math.abs(separatorRoom.getRotation()), separatorRoom); return false; } return true; }