package de.yogularm.minecraft.itemfinder.region;
public class ProgressReporter implements ProgressListener {
private ProgressListener listener;
private double currentProgress = 0;
public ProgressReporter(ProgressListener listener) {
this.listener = listener;
}
public void onAction(String action) {
listener.onAction(action);
}
public void onProgress(double progress) {
currentProgress = progress;
listener.onProgress(progress);
}
public void incProgress(double increment) {
onProgress(currentProgress + increment);
}
public ProgressListener startSubtask(final double weight) {
final double progressOnStart = currentProgress;
return new ProgressListener() {
@Override
public void onProgress(double progress) {
ProgressReporter.this.onProgress(progressOnStart + progress * weight);
}
@Override
public void onAction(String action) {
listener.onAction(action);
}
};
}
}