@Override
 public IProgWidget getOutputWidget(IDroneBase drone, List<IProgWidget> allWidgets) {
   if (evaluator != null) {
     return ProgWidgetJump.jumpToLabel(allWidgets, this, evaluate(drone, this));
   } else {
     Log.error("Shouldn't be happening! ProgWidgetCondition");
     return super.getOutputWidget(drone, allWidgets);
   }
 }
 @Override
 public IProgWidget getOutputWidget(IDroneBase drone, List<IProgWidget> allWidgets) {
   List<String> locations = getPossibleJumpLocations();
   if (locations.size() > 0
       && ai != null
       && (traversedPositions.size() == 1
           || !aiManager.getCoordinate(elementVariable).equals(new ChunkPosition(0, 0, 0)))) {
     ChunkPosition pos = ai.getCurCoord();
     if (pos != null) {
       aiManager.setCoordinate(elementVariable, pos);
       return ProgWidgetJump.jumpToLabel(allWidgets, locations.get(0));
     }
   }
   traversedPositions.clear();
   return super.getOutputWidget(drone, allWidgets);
 }