@Override
  public void onUpdate() {
    super.onUpdate();

    if (!SimukraftReloaded.isDayTime()) {
      theStage = Stage.IDLE;
    }

    super.onUpdateGoingToWork(theFolk);

    if (System.currentTimeMillis() - timeSinceLastRun < runDelay) {
      return;
    }

    timeSinceLastRun = System.currentTimeMillis();

    // ////////////////IDLE
    if (theStage == Stage.IDLE && SimukraftReloaded.isDayTime()) {
      theStage = Stage.SCANFORTREE;
    } else if (theStage == Stage.ARRIVEDATMILL) {
      theStage = Stage.SCANFORTREE;
    } else if (theStage == Stage.SCANFORTREE) {
      stageScanForTree();
    } else if (theStage == Stage.GOTOTREE) {
      pickUpSaplings();
      stageGotoTree();
    } else if (theStage == Stage.CHOPPINGTREE) {
      stageChoppingTree();
      pickUpSaplings();
    } else if (theStage == Stage.RETURNWOOD) {
      stageReturnWood();
      pickUpSaplings();
    }
  }