public boolean checkShape(Shape shape) {
		ArrayList<Point> shapePoints = shape.getBlocks(location());
		boolean sameShape = false;
		
		if (attachedPoints.size() == shapePoints.size()) {
			Collections.sort(shapePoints, new PointCompare(true));
			Collections.sort(attachedPoints, new PointCompare(true));
			
			for (int i = 0; i < shapePoints.size(); i++) {
				if (!attachedPoints.get(i).equals(shapePoints.get(i))) {
					sameShape = false;
					break;
				} else {
					sameShape = true;
				}
			}
		}
		
		if (sameShape)
			attachedPoints.clear();
			
		return sameShape;
	}