diff options
author | Jakub <53441451+kuba6000@users.noreply.github.com> | 2023-03-17 18:53:13 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-17 18:53:13 +0100 |
commit | a12768cd189fcbca175295a948291a81f8c4d350 (patch) | |
tree | 1dbc356bfd006c23fe484afa0d577cb790f68ab6 /src/main/java/kubatech/api | |
parent | e2b56dd43c9c1f4be7c4302591059f749716b0ff (diff) | |
download | GT5-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.java | 1 | ||||
-rw-r--r-- | src/main/java/kubatech/api/helpers/ProgressBarWrapper.java | 55 |
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); + } +} |