@Override
  public void positionReached(EntityMechanicalArm arm) {
    inProcess = false;

    if (worldObj.isRemote) {
      return;
    }

    double[] targ = arm.getTarget();
    targetX = (int) targ[0];
    targetY = (int) targ[1];
    targetZ = (int) targ[2];

    int i = targetX;
    int j = targetY - 1;
    int k = targetZ;

    int blockId = worldObj.getBlockId(i, j, k);

    if (isQuarriableBlock(blockId, i, j, k)) {
      powerProvider.getTimeTracker().markTime(worldObj);

      // Share this with mining well!

      ArrayList<ItemStack> stacks = BuildCraftBlockUtil.getItemStackFromBlock(worldObj, i, j, k);

      if (stacks != null) {
        for (ItemStack s : stacks) {
          if (s != null) {
            mineStack(s);
          }
        }
      }

      worldObj.setBlockWithNotify(i, j, k, 0);
    }

    // Collect any lost items laying around
    double[] armHead = arm.getHead();
    AxisAlignedBB axis =
        AxisAlignedBB.getBoundingBox(
            armHead[0] - 1.5,
            armHead[1],
            armHead[2] - 1.5,
            armHead[0] + 2.5,
            armHead[1] + 2.5,
            armHead[2] + 2.5);
    List result = worldObj.getEntitiesWithinAABB(EntityItem.class, axis);
    for (int ii = 0; ii < result.size(); ii++) {
      if (result.get(ii) instanceof EntityItem) {
        EntityItem entity = (EntityItem) result.get(ii);
        if (entity.isDead) continue;
        if (entity.item.stackSize <= 0) continue;
        ProxyCore.proxy.removeEntity(entity);
        mineStack(entity.item);
      }
    }
  }