diff options
author | Jakub <53441451+kuba6000@users.noreply.github.com> | 2023-03-17 18:58:12 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-17 18:58:12 +0100 |
commit | 032d63ad73432b0643cd42b8b1897d9593b4f728 (patch) | |
tree | feb6c6454cd45e31ad988bf6bbe0cdccbcefee5e /src/main/java/kubatech | |
parent | c5f2184b6b0e9375f75a860c51ec54d8c40c689e (diff) | |
parent | a12768cd189fcbca175295a948291a81f8c4d350 (diff) | |
download | GT5-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')
-rw-r--r-- | src/main/java/kubatech/ClientProxy.java | 9 | ||||
-rw-r--r-- | src/main/java/kubatech/CommonProxy.java | 5 | ||||
-rw-r--r-- | src/main/java/kubatech/api/LoaderReference.java | 3 | ||||
-rw-r--r-- | src/main/java/kubatech/api/helpers/ProgressBarWrapper.java | 55 | ||||
-rw-r--r-- | src/main/java/kubatech/kubatech.java | 5 | ||||
-rw-r--r-- | src/main/java/kubatech/loaders/MobRecipeLoader.java | 25 | ||||
-rw-r--r-- | src/main/java/kubatech/loaders/RecipeLoader.java | 1 |
7 files changed, 81 insertions, 22 deletions
diff --git a/src/main/java/kubatech/ClientProxy.java b/src/main/java/kubatech/ClientProxy.java index 618518a016..f14ce56e74 100644 --- a/src/main/java/kubatech/ClientProxy.java +++ b/src/main/java/kubatech/ClientProxy.java @@ -11,11 +11,7 @@ package kubatech; import kubatech.api.utils.ModUtils; -import kubatech.loaders.MobRecipeLoader; import kubatech.nei.IMCForNEI; - -import net.minecraftforge.common.MinecraftForge; - import cpw.mods.fml.common.event.*; @SuppressWarnings("unused") @@ -29,7 +25,6 @@ public class ClientProxy extends CommonProxy { public void init(FMLInitializationEvent event) { super.init(event); IMCForNEI.IMCSender(); - MinecraftForge.EVENT_BUS.register(MobRecipeLoader.instance); } public void postInit(FMLPostInitializationEvent event) { @@ -55,4 +50,8 @@ public class ClientProxy extends CommonProxy { public void serverStopped(FMLServerStoppedEvent event) { super.serverStopped(event); } + + public void loadComplete(FMLLoadCompleteEvent event) { + super.loadComplete(event); + } } diff --git a/src/main/java/kubatech/CommonProxy.java b/src/main/java/kubatech/CommonProxy.java index b2297b5105..db62bf7c97 100644 --- a/src/main/java/kubatech/CommonProxy.java +++ b/src/main/java/kubatech/CommonProxy.java @@ -17,6 +17,7 @@ import kubatech.api.LoaderReference; import kubatech.commands.*; import kubatech.config.Config; import kubatech.loaders.MTLoader; +import kubatech.loaders.MobRecipeLoader; import kubatech.loaders.RecipeLoader; import kubatech.loaders.TCLoader; import kubatech.savedata.PlayerDataManager; @@ -65,4 +66,8 @@ public class CommonProxy { public void serverStopping(FMLServerStoppingEvent event) {} public void serverStopped(FMLServerStoppedEvent event) {} + + public void loadComplete(FMLLoadCompleteEvent event) { + MobRecipeLoader.generateMobRecipeMap(); + } } 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); + } +} diff --git a/src/main/java/kubatech/kubatech.java b/src/main/java/kubatech/kubatech.java index a459116d83..b0868a3f30 100644 --- a/src/main/java/kubatech/kubatech.java +++ b/src/main/java/kubatech/kubatech.java @@ -135,6 +135,11 @@ public class kubatech { proxy.serverStopped(event); } + @Mod.EventHandler + public void loadComplete(FMLLoadCompleteEvent event) { + proxy.loadComplete(event); + } + public static void debug(String message) { LOG.debug(message); } diff --git a/src/main/java/kubatech/loaders/MobRecipeLoader.java b/src/main/java/kubatech/loaders/MobRecipeLoader.java index a63f3dad13..bfa94eb632 100644 --- a/src/main/java/kubatech/loaders/MobRecipeLoader.java +++ b/src/main/java/kubatech/loaders/MobRecipeLoader.java @@ -28,6 +28,7 @@ import kubatech.Tags; import kubatech.api.LoaderReference; import kubatech.api.helpers.EnderIOHelper; import kubatech.api.helpers.InfernalHelper; +import kubatech.api.helpers.ProgressBarWrapper; import kubatech.api.mobhandler.MobDrop; import kubatech.api.network.LoadConfigPacket; import kubatech.api.utils.GSONUtils; @@ -59,8 +60,6 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.StatCollector; import net.minecraft.world.World; -import net.minecraftforge.client.event.GuiOpenEvent; -import net.minecraftforge.common.MinecraftForge; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -74,7 +73,6 @@ import atomicstryker.infernalmobs.common.mods.api.ModifierLoader; import com.google.common.io.Files; import com.google.gson.Gson; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.util.GT_Utility; @@ -84,15 +82,6 @@ public class MobRecipeLoader { private static final Logger LOG = LogManager.getLogger(Tags.MODID + "[Mob Recipe Loader]"); - public static final MobRecipeLoader instance = new MobRecipeLoader(); - - @SuppressWarnings("unused") - @SubscribeEvent - public void onOpenGui(GuiOpenEvent event) { - MobRecipeLoader.generateMobRecipeMap(); - MinecraftForge.EVENT_BUS.unregister(instance); - } - private static final String dropFewItemsName = isDeobfuscatedEnvironment ? "dropFewItems" : "func_70628_a"; private static final String dropRareDropName = isDeobfuscatedEnvironment ? "dropRareDrop" : "func_70600_l"; private static final String setSlimeSizeName = isDeobfuscatedEnvironment ? "setSlimeSize" : "func_70799_a"; @@ -620,7 +609,9 @@ public class MobRecipeLoader { MobRecipeLoaderCacheStructure s = gson.fromJson(reader, MobRecipeLoaderCacheStructure.class); if (Config.MobHandler.regenerationTrigger == Config.MobHandler._CacheRegenerationTrigger.Never || s.version.equals(modlistversion)) { + ProgressBarWrapper bar = new ProgressBarWrapper("Parsing cached Mob Recipe Map", s.moblist.size()); for (Map.Entry<String, ArrayList<MobDrop>> entry : s.moblist.entrySet()) { + bar.step(entry.getKey()); try { EntityLiving e; String mobName = entry.getKey(); @@ -637,6 +628,7 @@ public class MobRecipeLoader { new GeneralMappedMob(e, MobRecipe.generateMobRecipe(e, mobName, drops), drops)); } catch (Exception ignored) {} } + bar.end(); LOG.info("Parsed cached map, skipping generation"); return; } else { @@ -691,8 +683,9 @@ public class MobRecipeLoader { Map<String, Class<? extends Entity>> stringToClassMapping = (Map<String, Class<? extends Entity>>) EntityList.stringToClassMapping; boolean registeringWitherSkeleton = !stringToClassMapping.containsKey("witherSkeleton"); if (registeringWitherSkeleton) stringToClassMapping.put("witherSkeleton", EntitySkeleton.class); - + ProgressBarWrapper bar = new ProgressBarWrapper("Generating Mob Recipe Map", stringToClassMapping.size()); stringToClassMapping.forEach((k, v) -> { + bar.step(k); if (v == null) return; if (Modifier.isAbstract(v.getModifiers())) { @@ -727,10 +720,10 @@ public class MobRecipeLoader { return; } - e.captureDrops = true; - // POWERFULL GENERATION + e.captureDrops = true; + if (e instanceof EntitySlime) try { setSlimeSize.invoke(e, 1); } catch (Exception ex) { @@ -1101,6 +1094,8 @@ public class MobRecipeLoader { LOG.info("Recipe map generated ! It took " + time + "ms"); + bar.end(); + isInGenerationProcess = false; LOG.info("Saving generated map to file"); diff --git a/src/main/java/kubatech/loaders/RecipeLoader.java b/src/main/java/kubatech/loaders/RecipeLoader.java index cf8c0e0163..9437b965a3 100644 --- a/src/main/java/kubatech/loaders/RecipeLoader.java +++ b/src/main/java/kubatech/loaders/RecipeLoader.java @@ -161,7 +161,6 @@ public class RecipeLoader { if (lateRecipesInitialized) return; lateRecipesInitialized = true; - MobRecipeLoader.generateMobRecipeMap(); MobRecipeLoader.processMobRecipeMap(); } |