public boolean turnTowards(double angle) {
		while (dir < -Math.PI)
			dir += Math.PI * 2;
		while (dir >= Math.PI)
			dir -= Math.PI * 2;
		while (angle < -Math.PI)
			angle += Math.PI * 2;
		while (angle >= Math.PI)
			angle -= Math.PI * 2;

		double angleDiff = angle - dir;
		while (angleDiff < -Math.PI)
			angleDiff += Math.PI * 2;
		while (angleDiff >= Math.PI)
			angleDiff -= Math.PI * 2;

		double turnSpeed = 0.2;
		double near = 1.0;
		boolean wasAimed = angleDiff * angleDiff < near * near;
		if (angleDiff < -turnSpeed) angleDiff = -turnSpeed;
		if (angleDiff > +turnSpeed) angleDiff = +turnSpeed;
		dir += angleDiff;
		return wasAimed;

	}