aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kubatech/api
diff options
context:
space:
mode:
authorJakub <53441451+kuba6000@users.noreply.github.com>2023-03-17 18:53:13 +0100
committerGitHub <noreply@github.com>2023-03-17 18:53:13 +0100
commita12768cd189fcbca175295a948291a81f8c4d350 (patch)
tree1dbc356bfd006c23fe484afa0d577cb790f68ab6 /src/main/java/kubatech/api
parente2b56dd43c9c1f4be7c4302591059f749716b0ff (diff)
downloadGT5-Unofficial-a12768cd189fcbca175295a948291a81f8c4d350.tar.gz
GT5-Unofficial-a12768cd189fcbca175295a948291a81f8c4d350.tar.bz2
GT5-Unofficial-a12768cd189fcbca175295a948291a81f8c4d350.zip
Show progress bar when generating mob recipe map (#59)
* Show progress bar when generating mob recipe map * test * Check for BLS * Process on server start * Buildscript
Diffstat (limited to 'src/main/java/kubatech/api')
-rw-r--r--src/main/java/kubatech/api/LoaderReference.java1
-rw-r--r--src/main/java/kubatech/api/helpers/ProgressBarWrapper.java55
2 files changed, 56 insertions, 0 deletions
diff --git a/src/main/java/kubatech/api/LoaderReference.java b/src/main/java/kubatech/api/LoaderReference.java
index 5ae387ed63..16526b2b9e 100644
--- a/src/main/java/kubatech/api/LoaderReference.java
+++ b/src/main/java/kubatech/api/LoaderReference.java
@@ -18,4 +18,5 @@ public class LoaderReference {
public static final boolean Forestry = Loader.isModLoaded("Forestry");
public static final boolean DraconicEvolution = Loader.isModLoaded("DraconicEvolution");
public static final boolean Avaritia = Loader.isModLoaded("Avaritia");
+ 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);
+ }
+}