@Override
  protected void checkStateServer() {
    super.checkStateServer();
    if (scanning.getValue()) {
      int rf = StorageScannerConfiguration.rfPerOperation;
      rf = (int) (rf * (2.0f - getInfusedFactor()) / 2.0f);

      if (getEnergyStored(ForgeDirection.DOWN) < rf) {
        return;
      }
      consumeEnergy(rf);

      int scans = StorageScannerConfiguration.scansPerOperation;

      scans = scans * (int) (getInfusedFactor() + 1.01f);

      for (int i = 0; i < scans; i++) {
        Coordinate c = cur.getCoordinate();
        checkInventoryStatus(c.getX(), c.getY(), c.getZ());
        if (!advanceCurrent()) {
          return;
        }
      }
    }
  }