private boolean isOutOfBounds(Tetrimino tetrimino, boolean cutAtSkyline) {
		Tetrimino.Shape shape = tetrimino.getShape();
		Point position = tetrimino.getPosition();
		int rotation = tetrimino.getRotation();
		int[][] pattern = Constants.trueRotation.get(shape)[rotation];

		int size = pattern.length;
		int radius = (size - 1) / 2;

		for (int i = 0; i < size; i++) {
			for (int j = 0; j < size; j++) {
				if (pattern[j][i] == 1) {
					int x = i + position.x - radius;
					int y = j + position.y - radius;

					if (pattern[j][i] == 1) {
						if (x < 0 || x >= width || y < (cutAtSkyline ? SKY_HEIGHT : 0) || y >= height)
							return true;
					}
				}
			}
		}

		return false;
	}