diff options
author | jackowski626 <jf@wikiera.net> | 2020-04-19 14:17:45 +0200 |
---|---|---|
committer | jackowski626 <jf@wikiera.net> | 2020-04-19 14:17:45 +0200 |
commit | d6050f313e24a0162ed9be67308366e15e048fee (patch) | |
tree | 13bbc2211b84ff4a6701cecc79fdecdcff025d59 /src | |
parent | 8496f9c32bea2d596e3426af86cb36db390732fd (diff) | |
download | GT5-Unofficial-d6050f313e24a0162ed9be67308366e15e048fee.tar.gz GT5-Unofficial-d6050f313e24a0162ed9be67308366e15e048fee.tar.bz2 GT5-Unofficial-d6050f313e24a0162ed9be67308366e15e048fee.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.
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/gregtech/GT_Mod.java | 62 | ||||
-rw-r--r-- | src/main/java/gregtech/common/GT_Proxy.java | 62 |
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 |