protected void handleMouseMoved(MouseEvent event) {
		synchronized (simulator) {
			if (simulator.isRunning()) {
				return;
			}

			if (inspector == null) {
				inspector = new CreatureInspector();
			}

			Point2D point;
			try {
				point = getTransform().inverseTransform(event.getPoint(), null);
			} catch (NoninvertibleTransformException e) {
				throw new RuntimeException(e);
			}
			
			Iterator<ICreature> nearBy = simulator.creaturesNearByAPoint(point, 10.0).iterator();
			
			if (!nearBy.hasNext()) {
				inspector.setCreature(null);
				return;
			}

			if (!inspector.isVisible()) {
				inspector.setVisible(true);
			}

			inspector.setCreature(nearBy.next());
		}
	}