@Override
	public int loop() {
		final GroundItem nest = getNests();
		if(nest != null) {
			status = "Picking up nest";
			nest.interact("Take");
		} else {
			if(Players.getLocal().getAnimation() == -1) {
				Timer timer = new Timer(1000);
				while(timer.isRunning()) {
					status = "Ensuring animation is done..";
					Task.sleep(20);
				}
				if(Players.getLocal().getAnimation() == -1) {
					final SceneObject ivy = SceneEntities.getNearest(IVY);
					if(ivy != null) {
						if(!ivy.isOnScreen()) {
							status = "Turning to ivy";
							Camera.turnTo(ivy);
						} else {
							status = "Interacting with ivy";
							ivy.interact("Chop");
						}
					} else {
						status = "Waiting for trees to respawn";
					}
				}
			} else {
				status = "Idling while chopping";
				int rnd = Random.nextInt(0, 500);
				switch(rnd) {
				case 275:
					Camera.setAngle(Random.nextInt(0, 360));
					break;
				}
			}
		}
		return 50;
	}