aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech
diff options
context:
space:
mode:
authorjackowski626 <jf@wikiera.net>2020-04-19 14:07:16 +0200
committerjackowski626 <jf@wikiera.net>2020-04-19 14:07:16 +0200
commit76c7090220f83008b157eb4ae9e1541c9ac6c1ee (patch)
tree13bbc2211b84ff4a6701cecc79fdecdcff025d59 /src/main/java/gregtech
parentfcc29fa66ffd1ce2880c6896730f8cc3fff37a9f (diff)
downloadGT5-Unofficial-76c7090220f83008b157eb4ae9e1541c9ac6c1ee.tar.gz
GT5-Unofficial-76c7090220f83008b157eb4ae9e1541c9ac6c1ee.tar.bz2
GT5-Unofficial-76c7090220f83008b157eb4ae9e1541c9ac6c1ee.zip
CLS support
OpenGL is a bit of a pita, wants only to be used in main thread. The easiest solution was to trigger CLS screen updates from GT. It is a soft dependency, if CLS isn't present, nothing breaks. Second pr because cloned fresh repo or else it attributed not my changes to me
Diffstat (limited to 'src/main/java/gregtech')
-rw-r--r--src/main/java/gregtech/GT_Mod.java62
-rw-r--r--src/main/java/gregtech/common/GT_Proxy.java62
2 files changed, 120 insertions, 4 deletions
diff --git a/src/main/java/gregtech/GT_Mod.java b/src/main/java/gregtech/GT_Mod.java
index 22b677337e..eb7610ddf4 100644
--- a/src/main/java/gregtech/GT_Mod.java
+++ b/src/main/java/gregtech/GT_Mod.java
@@ -799,7 +799,59 @@ public class GT_Mod implements IGT_Mod {
GT_FML_LOGGER.info("Replacing Vanilla Materials in recipes, please wait.");
ProgressManager.ProgressBar progressBar = ProgressManager.push("Register materials", replaceVanillaItemsSet.size());
+ //CLS
+ int sizeStep = 0;
+ int sizeStep2 = 0;
+ int originalSizeStep = 0;
+ int size = 0;
+ int counter = 0;
+ if (Loader.isModLoaded("betterloadingscreen")) {
+ originalSizeStep = sizeStep;
+ counter = replaceVanillaItemsSet.size();
+ alexiil.mods.load.MinecraftDisplayer.isReplacingVanillaMaterials = true;
+ if (replaceVanillaItemsSet.size() >= 100) {
+ sizeStep = replaceVanillaItemsSet.size()/100-1;
+ sizeStep2 = 1;
+ } else {
+ sizeStep = 100/replaceVanillaItemsSet.size();
+ sizeStep2 = sizeStep;
+ }
+ }
+ //end CLS
for (Materials m : replaceVanillaItemsSet) {
+ //CLS
+ if (Loader.isModLoaded("betterloadingscreen")) {
+ counter--;
+ sizeStep--;
+ if (counter == 1) {
+ try {
+ alexiil.mods.load.ProgressDisplayer.displayProgress(m.mDefaultLocalName, ((float)95)/100);
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ } else if (counter == 0) {
+ latestMaterial = m.mDefaultLocalName;
+ try {
+ alexiil.mods.load.ProgressDisplayer.displayProgress(m.mDefaultLocalName, (float)1);
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ } else {
+ try {
+ alexiil.mods.load.ProgressDisplayer.displayProgress(m.mDefaultLocalName, ((float)size)/100);
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ }
+ if( sizeStep == 0 && replaceVanillaItemsSet.size() >= 100) {
+ sizeStep = originalSizeStep;
+ //size+=10;
+ size+=sizeStep2;
+ } else {
+ size+=sizeStep2;
+ }
+ }
+ //end CLS
progressBar.step(m.mDefaultLocalName);
//GT_FML_LOGGER.info("Replacing Vanilla Recipes for: " + m.mDefaultLocalName);
String platename = OrePrefixes.plate.get(m).toString();
@@ -811,6 +863,16 @@ public class GT_Mod implements IGT_Mod {
if (m.getBlocks(1) != null)
GT_RecipeRegistrator.registerUsagesForMaterials(null, noSmash, m.getBlocks(1));
}
+ //CLS
+ if (Loader.isModLoaded("betterloadingscreen")) {
+ try {
+ alexiil.mods.load.MinecraftDisplayer.isReplacingVanillaMaterials = false;
+ alexiil.mods.load.ProgressDisplayer.displayProgress("Post Initialization: loading GregTech", alexiil.mods.load.MinecraftDisplayer.getLastPercent());
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ }
+ //end CLS
ProgressManager.pop(progressBar);
GT_FML_LOGGER.info("Congratulations, you have been waiting long enough (" + (System.currentTimeMillis() - ms) / 1000 + "s / " + (System.currentTimeMillis() - ms) + "ms). Have a Cake.");
//Add default IC2 recipe to GT
diff --git a/src/main/java/gregtech/common/GT_Proxy.java b/src/main/java/gregtech/common/GT_Proxy.java
index 3b668d805d..09399daceb 100644
--- a/src/main/java/gregtech/common/GT_Proxy.java
+++ b/src/main/java/gregtech/common/GT_Proxy.java
@@ -1933,19 +1933,73 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
ProgressManager.ProgressBar progressBar = ProgressManager.push("Register materials", mEvents.size());
int sizeStep = mEvents.size()/20-1;
int size = 5;
+ //CLS
+ boolean hasSetNice = false;
+ if (Loader.isModLoaded("betterloadingscreen")) {
+ try {
+ alexiil.mods.load.MinecraftDisplayer.isRegisteringGTmaterials = true;
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ sizeStep = mEvents.size()/100-1;
+ size = 0;
+ hasSetNice = false;
+ }
+ //end CLS
OreDictEventContainer tEvent;
for (Iterator i$ = this.mEvents.iterator(); i$.hasNext(); registerRecipes(tEvent)) {
tEvent = (OreDictEventContainer) i$.next();
sizeStep--;
- progressBar.step(tEvent.mMaterial == null ? "" : tEvent.mMaterial.toString());
- if( sizeStep == 0 )
- {
- GT_FML_LOGGER.info("Baking : " + size + "%", new Object[0]);
+ //CLS
+ if (Loader.isModLoaded("betterloadingscreen")) {
+ if (!(tEvent.mMaterial == null)) {
+ try {
+ alexiil.mods.load.ProgressDisplayer.displayProgress(tEvent.mMaterial.toString(), ((float)size)/100);
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ if (size == 70 && !hasSetNice) {
+ hasSetNice = true;
+ try {
+ alexiil.mods.load.MinecraftDisplayer.isNice = true;
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ GT_FML_LOGGER.info("nice");
+ } else if (size != 70) {
+ try{
+ alexiil.mods.load.MinecraftDisplayer.isNice = false;
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+ //end CLS
+ if( sizeStep == 0 ) {
+ GT_FML_LOGGER.info("Baking : " + size + "%", new Object[0]);
+ //CLS
+ if (Loader.isModLoaded("betterloadingscreen")) {
+ sizeStep = mEvents.size()/100-1;
+ size++;
+ } else {
+ //end CLS
sizeStep = mEvents.size()/20-1;
size += 5;
}
+ }
+ progressBar.step(tEvent.mMaterial == null ? "" : tEvent.mMaterial.toString());
}
ProgressManager.pop(progressBar);
+ //CLS
+ if (Loader.isModLoaded("betterloadingscreen")) {
+ try {
+ alexiil.mods.load.MinecraftDisplayer.isRegisteringGTmaterials = false;
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ }
+ //end CLS
}
public static final HashMap<Integer,HashMap<ChunkCoordIntPair,int []>> dimensionWiseChunkData = new HashMap<>(16);//stores chunk data that is loaded/saved