public Vector<Door> nearbyDoors(Game game)
	{
		Vector<Door> doors = new Vector<Door>();
		
		for (Tile tile: game.getMap().getTiles())
		{
			// Ignore non-doors
			if (!(tile instanceof Door))
				continue;
			
			Door door = (Door)tile;
			
			// Ignore open doors
			if (door.getState() == Door.OPEN)
				continue;
			
			// Find the nearest point
			Rectangle2D door_rect = door.getArea();
			double left = door_rect.getX();
			double right = left + door_rect.getWidth();
			double top = door_rect.getY();
			double bottom = top + door_rect.getHeight();
			double x = fLocation.getX();
			double y = fLocation.getY();
			if (x < left)
				x = left;
			if (x > right)
				x = right;
			if (y < top)
				y = top;
			if (y > bottom)
				y = bottom;
			Point2D door_point = new Point2D.Double(x, y);
			
			// How far away are we?
			double distance = fLocation.distance(door_point);
			distance -= getSize();
			
			if (distance <= getReach())
				doors.add(door);
		}
		
		return doors;
	}