private boolean doAction(final String action, final SceneObject obj) {
		if(Players.getLocal().getAnimation() == -1 && !Players.getLocal().isMoving()) {
			if(obj.getLocation().distanceTo() > 5) {
				Walking.walk(obj.getLocation());
			} else {
				if(!obj.isOnScreen()) {
					Camera.turnTo(obj);
				} else {
					if(obj.interact(action, obj.getDefinition().getName())) {
						final Timer timeout = new Timer(3000);
						while(Players.getLocal().getAnimation() == -1 && timeout.isRunning()) {
							Task.sleep(50);
						}
						return true;
					}
				}
			}
		}
		return false;
	}