public boolean setDestination(Vector3D dest) {
		if (getBrain().isDebugging())
			getBrain().println("Navigator asked to plot path from " + getBrain().getLocation() + " to " + dest);
		uk.ac.derby.GameEngine2D.Map map = getBrain().getBlurredMap(mapScale, mapBlur);
		// Get start of A* (which is where we want to go) location as a map coordinate
		start = dest.multiply(mapScale);
		// Get the A* destination (our current location) as a map coordinate
		destination = getBrain().getLocation().multiply(mapScale);
		
		// Here's where we use the new A* implementation
		AStar astar = new AStar();
		AStarNode endOfPath = astar.findPath(start, destination, map);

		// Clear any existing path.
		clearPath();
		// If we're debugging, clear previous path markers.
		if (getBrain().isDebugging()) {
			if (pathMarkers != null) {
				for (SpriteStatic i: pathMarkers)
					i.suicide();
			} 
			pathMarkers = new Vector<SpriteStatic>();
		}
		// Found a destination?  If so, go there.
		if (endOfPath != null) {
			// Set new path.
			while (endOfPath != null) {
				Vector3D waypoint = Vector3D.divide(endOfPath.getLocation(), mapScale);
				if (getBrain().isDebugging()) {
					pathMarkers.add(getBrain().markPoint(waypoint));
					getBrain().println("Waypoint " + waypoint);
				}
				addToPath(waypoint);
				endOfPath = endOfPath.getParent();
			}
			// Go!
			setSpeedLimit(3.0f);
			start();
			return true;
		} else
			return false;
	}