aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kubatech/api
diff options
context:
space:
mode:
authorJakub <53441451+kuba6000@users.noreply.github.com>2023-03-17 18:58:12 +0100
committerGitHub <noreply@github.com>2023-03-17 18:58:12 +0100
commit032d63ad73432b0643cd42b8b1897d9593b4f728 (patch)
treefeb6c6454cd45e31ad988bf6bbe0cdccbcefee5e /src/main/java/kubatech/api
parentc5f2184b6b0e9375f75a860c51ec54d8c40c689e (diff)
parenta12768cd189fcbca175295a948291a81f8c4d350 (diff)
downloadGT5-Unofficial-032d63ad73432b0643cd42b8b1897d9593b4f728.tar.gz
GT5-Unofficial-032d63ad73432b0643cd42b8b1897d9593b4f728.tar.bz2
GT5-Unofficial-032d63ad73432b0643cd42b8b1897d9593b4f728.zip
Merge branch 'master' into test
Diffstat (limited to 'src/main/java/kubatech/api')
-rw-r--r--src/main/java/kubatech/api/LoaderReference.java3
-rw-r--r--src/main/java/kubatech/api/helpers/ProgressBarWrapper.java55
2 files changed, 57 insertions, 1 deletions
diff --git a/src/main/java/kubatech/api/LoaderReference.java b/src/main/java/kubatech/api/LoaderReference.java
index 5d6545adae..192a7158a4 100644
--- a/src/main/java/kubatech/api/LoaderReference.java
+++ b/src/main/java/kubatech/api/LoaderReference.java
@@ -19,5 +19,6 @@ public class LoaderReference {
public static final boolean DraconicEvolution = Loader.isModLoaded("DraconicEvolution");
public static final boolean Avaritia = Loader.isModLoaded("Avaritia");
public static final boolean ProjRedIllumination = Loader.isModLoaded("ProjRed|Illumination");
- public static final boolean RandomThings = Loader.isModLoaded("RandomThings");
+ public static final boolean RandomThings = Loader.isModLoaded("RandomThings")
+ public static final boolean BetterLoadingScreen = Loader.isModLoaded("betterloadingscreen");
}
diff --git a/src/main/java/kubatech/api/helpers/ProgressBarWrapper.java b/src/main/java/kubatech/api/helpers/ProgressBarWrapper.java
new file mode 100644
index 0000000000..f1243c4d46
--- /dev/null
+++ b/src/main/java/kubatech/api/helpers/ProgressBarWrapper.java
@@ -0,0 +1,55 @@
+package kubatech.api.helpers;
+
+import static kubatech.api.utils.ModUtils.isClientSided;
+
+import java.io.IOException;
+
+import kubatech.Tags;
+import kubatech.api.LoaderReference;
+import alexiil.mods.load.ProgressDisplayer;
+import cpw.mods.fml.common.FMLCommonHandler;
+import cpw.mods.fml.common.ProgressManager;
+
+@SuppressWarnings("deprecation")
+public class ProgressBarWrapper {
+
+ ProgressManager.ProgressBar internalFMLBar;
+ boolean isFMLBar;
+ String name;
+ int maxSteps;
+ int steps = 0;
+
+ public ProgressBarWrapper(String name, int steps) {
+ if (!isClientSided) return;
+ maxSteps = steps;
+ this.name = name;
+ if (!LoaderReference.BetterLoadingScreen) {
+ internalFMLBar = ProgressManager.push(name, steps);
+ isFMLBar = true;
+ return;
+ }
+ isFMLBar = false;
+ }
+
+ public void step(String message) {
+ if (!isClientSided) return;
+ if (isFMLBar) internalFMLBar.step(message);
+ else {
+ steps++;
+ try {
+ ProgressDisplayer.displayProgress(
+ Tags.MODNAME + ": " + name + " -> " + message,
+ (float) steps / (float) maxSteps);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ // Prevent game freeze
+ FMLCommonHandler.instance().processWindowMessages();
+ }
+ }
+
+ public void end() {
+ if (!isClientSided) return;
+ if (isFMLBar) ProgressManager.pop(internalFMLBar);
+ }
+}