diff --git a/src/main/java/org/embeddedt/modernfix/mixin/perf/async_jei/ClientLifecycleHandlerMixin.java b/src/main/java/org/embeddedt/modernfix/mixin/perf/async_jei/ClientLifecycleHandlerMixin.java index fb86dc24..329b0018 100644 --- a/src/main/java/org/embeddedt/modernfix/mixin/perf/async_jei/ClientLifecycleHandlerMixin.java +++ b/src/main/java/org/embeddedt/modernfix/mixin/perf/async_jei/ClientLifecycleHandlerMixin.java @@ -16,6 +16,7 @@ import net.minecraftforge.client.event.ClientPlayerNetworkEvent; import org.embeddedt.modernfix.ModernFix; import org.embeddedt.modernfix.jei.async.JEILoadingInterruptedException; import org.embeddedt.modernfix.jei.async.JEIReloadThread; +import org.embeddedt.modernfix.util.JEIUtil; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Overwrite; @@ -58,6 +59,7 @@ public class ClientLifecycleHandlerMixin { @Inject(method = "", at = @At("TAIL")) private void setupCancellationHandler(NetworkHandler networkHandler, Textures textures, CallbackInfo ci) { EventBusHelper.addListener(this, ClientPlayerNetworkEvent.LoggedOutEvent.class, event -> cancelPreviousStart()); + JEIUtil.registerLoadingRenderer(() -> reloadThread != null); } private void cancelPreviousStart() { diff --git a/src/main/java/org/embeddedt/modernfix/util/JEIUtil.java b/src/main/java/org/embeddedt/modernfix/util/JEIUtil.java new file mode 100644 index 00000000..230045ea --- /dev/null +++ b/src/main/java/org/embeddedt/modernfix/util/JEIUtil.java @@ -0,0 +1,30 @@ +package org.embeddedt.modernfix.util; + +import com.mojang.blaze3d.vertex.PoseStack; +import mezz.jei.Internal; +import mezz.jei.api.runtime.IIngredientListOverlay; +import mezz.jei.runtime.JeiRuntime; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraftforge.client.event.GuiScreenEvent; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.eventbus.api.SubscribeEvent; + +import java.util.function.Supplier; + +public class JEIUtil { + private static Supplier isLoading = null; + + public static void registerLoadingRenderer(Supplier isLoading) { + JEIUtil.isLoading = isLoading; + MinecraftForge.EVENT_BUS.register(JEIUtil.class); + } + + @SubscribeEvent + public static void renderLoad(GuiScreenEvent.DrawScreenEvent.Post event) { + if(isLoading.get()) { + Gui.drawString(new PoseStack(), Minecraft.getInstance().font, new TranslatableComponent("modernfix.jei_load"), 0, 0, 0xffffff); + } + } +} diff --git a/src/main/resources/assets/modernfix/lang/en_us.json b/src/main/resources/assets/modernfix/lang/en_us.json new file mode 100644 index 00000000..de5ec29a --- /dev/null +++ b/src/main/resources/assets/modernfix/lang/en_us.json @@ -0,0 +1,3 @@ +{ + "modernfix.jei_load": "Loading JEI..." +} \ No newline at end of file