public float getProgress() {
    float current = 0.0F;
    float total = 0.0F;

    synchronized (this.progressContainers) {
      for (ProgressContainer progress : this.progressContainers) {
        total += (float)progress.getTotal();
        current += (float)progress.getCurrent();
      }
    }

    float result = -1.0F;
    if (total > 0.0F) result = current / total;
    return result;
  }