code: private void extract(int curProgress)
      {
          if (extractable != null)
          {
              extractable.extractResource(curProgress - lastProgress);
          }
          for (final ExtractorListener listener : listeners)
          {
              listener.notifyExtracted(resourceType, curProgress);
          }
          lastProgress = curProgress;
  
          if (curProgress >= extractionCapacity)
          {
              progress = extractionCapacity;
              lastProgress = extractionCapacity;
              state = ExtractorState.GOTO_WAREHOUSE;
              for (final ExtractorListener listener : listeners)
              {
                  listener.notifyStartCarry(resourceType, lastProgress);
              }
          }
      }
docs: Perform extraction.
  
  @param curProgress Current extraction progress.