aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/bwcrossmod/cls/CLSCompat.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/bwcrossmod/cls/CLSCompat.java')
-rw-r--r--src/main/java/bwcrossmod/cls/CLSCompat.java63
1 files changed, 8 insertions, 55 deletions
diff --git a/src/main/java/bwcrossmod/cls/CLSCompat.java b/src/main/java/bwcrossmod/cls/CLSCompat.java
index 9cb9c6fc9c..18033ea23b 100644
--- a/src/main/java/bwcrossmod/cls/CLSCompat.java
+++ b/src/main/java/bwcrossmod/cls/CLSCompat.java
@@ -13,92 +13,45 @@
package bwcrossmod.cls;
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.Optional;
+import java.io.IOException;
+import alexiil.mods.load.MinecraftDisplayer;
+import alexiil.mods.load.ProgressDisplayer;
import bartworks.system.material.Werkstoff;
-@SuppressWarnings({ "rawtypes", "unchecked" })
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;
- private static Field isRegisteringBartWorks;
-
- static {
- try {
- alexiilMinecraftDisplayer = Class.forName("alexiil.mods.load.MinecraftDisplayer");
- alexiilProgressDisplayer = Class.forName("alexiil.mods.load.ProgressDisplayer");
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- }
-
- Optional.ofNullable(alexiilMinecraftDisplayer)
- .ifPresent(e -> {
- try {
- isRegisteringBartWorks = e.getField("isRegisteringBartWorks");
- } catch (NoSuchFieldException ex) {
- ex.printStackTrace();
- }
- });
-
- Optional.ofNullable(alexiilProgressDisplayer)
- .ifPresent(e -> {
- try {
- displayProgress = e.getMethod("displayProgress", String.class, float.class);
- } catch (NoSuchMethodException ex) {
- ex.printStackTrace();
- }
- });
- }
public static Integer[] initCls() {
int sizeStep;
int sizeStep2 = 1;
-
- try {
- isRegisteringBartWorks.set(null, true);
- } catch (IllegalAccessException e) {
- e.printStackTrace();
- }
-
+ MinecraftDisplayer.isRegisteringBartWorks = true;
if (Werkstoff.werkstoffHashSet.size() >= 100) sizeStep = Werkstoff.werkstoffHashSet.size() / 100 - 1;
else sizeStep = sizeStep2 = Werkstoff.werkstoffHashSet.size();
-
return new Integer[] { sizeStep, sizeStep2, sizeStep };
}
public static int invokeStepSize(Werkstoff werkstoff, Integer[] steps, int size) {
--steps[0];
-
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();
+ ProgressDisplayer.displayProgress(werkstoff.getDefaultName(), (float) size / 10000);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
}
lastUpdate = time;
}
-
if (steps[0] == 0 && Werkstoff.werkstoffHashSet.size() >= 100) steps[0] = steps[2];
-
size += steps[1];
return size;
}
public static void disableCls() {
- try {
- isRegisteringBartWorks.set(null, false);
- } catch (IllegalAccessException e) {
- e.printStackTrace();
- }
+ MinecraftDisplayer.isRegisteringBartWorks = false;
}
}