aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/github/bartimaeusnek/crossmod/cls/CLSCompat.java16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/main/java/com/github/bartimaeusnek/crossmod/cls/CLSCompat.java b/src/main/java/com/github/bartimaeusnek/crossmod/cls/CLSCompat.java
index 930360bef4..13c4de03fb 100644
--- a/src/main/java/com/github/bartimaeusnek/crossmod/cls/CLSCompat.java
+++ b/src/main/java/com/github/bartimaeusnek/crossmod/cls/CLSCompat.java
@@ -34,6 +34,8 @@ public class CLSCompat {
private CLSCompat() {
}
+ private static final long MINIMAL_UPDATE_INTERVAL = 1000 / 30; // target 30 fps
+ private static long lastUpdate = 0;
private static Class alexiilMinecraftDisplayer;
private static Class alexiilProgressDisplayer;
private static Method displayProgress;
@@ -85,10 +87,14 @@ public class CLSCompat {
public static int invokeStepSize(Werkstoff werkstoff, Integer[] steps, int size) {
--steps[0];
- try {
- displayProgress.invoke(null, werkstoff.getDefaultName(), ((float) size) / 10000);
- } catch (IllegalAccessException | InvocationTargetException e) {
- e.printStackTrace();
+ long time = System.currentTimeMillis();
+ if (time - lastUpdate >= MINIMAL_UPDATE_INTERVAL) {
+ try {
+ displayProgress.invoke(null, werkstoff.getDefaultName(), ((float) size) / 10000);
+ } catch (IllegalAccessException | InvocationTargetException e) {
+ e.printStackTrace();
+ }
+ lastUpdate = time;
}
if (steps[0] == 0 && Werkstoff.werkstoffHashSet.size() >= 100)
@@ -105,4 +111,4 @@ public class CLSCompat {
e.printStackTrace();
}
}
-} \ No newline at end of file
+}