From 5ccdb4c1657bcd33101a3c42fc15323cf629c6f8 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Mon, 10 Apr 2023 11:49:12 -0400 Subject: [PATCH] Don't count render ticks until recipes and tags are sent --- .../embeddedt/modernfix/ModernFixClient.java | 28 +++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/embeddedt/modernfix/ModernFixClient.java b/src/main/java/org/embeddedt/modernfix/ModernFixClient.java index 148ac4d7..3247ea38 100644 --- a/src/main/java/org/embeddedt/modernfix/ModernFixClient.java +++ b/src/main/java/org/embeddedt/modernfix/ModernFixClient.java @@ -9,12 +9,10 @@ import net.minecraft.client.gui.screens.TitleScreen; import net.minecraft.network.syncher.EntityDataAccessor; import net.minecraft.network.syncher.SynchedEntityData; import net.minecraft.world.entity.Entity; -import net.minecraftforge.client.event.ClientPlayerNetworkEvent; -import net.minecraftforge.client.event.GuiOpenEvent; -import net.minecraftforge.client.event.GuiScreenEvent; -import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.*; import net.minecraftforge.client.gui.ForgeIngameGui; import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.TagsUpdatedEvent; import net.minecraftforge.event.TickEvent; import net.minecraftforge.event.world.WorldEvent; import net.minecraftforge.eventbus.api.EventPriority; @@ -40,6 +38,8 @@ public class ModernFixClient { public static float gameStartTimeSeconds = -1; + private static boolean recipesUpdated, tagsUpdated = false; + private String brandingString = null; public ModernFixClient() { @@ -58,6 +58,8 @@ public class ModernFixClient { public void resetWorldLoadStateMachine() { numRenderTicks = 0; worldLoadStartTime = -1; + recipesUpdated = false; + tagsUpdated = false; } @SubscribeEvent(priority = EventPriority.LOWEST) @@ -70,9 +72,25 @@ public class ModernFixClient { } } + @SubscribeEvent(priority = EventPriority.LOW) + public void onRecipesUpdated(RecipesUpdatedEvent event) { + recipesUpdated = true; + } + + @SubscribeEvent(priority = EventPriority.LOW) + public void onTagsUpdated(TagsUpdatedEvent event) { + tagsUpdated = true; + } + @SubscribeEvent public void onRenderTickEnd(TickEvent.RenderTickEvent event) { - if(event.phase == TickEvent.Phase.END && !(Minecraft.getInstance().screen instanceof DeferredLevelLoadingScreen) && worldLoadStartTime != -1 && Minecraft.getInstance().player != null && numRenderTicks++ >= 10) { + if(event.phase == TickEvent.Phase.END + && recipesUpdated + && tagsUpdated + && !(Minecraft.getInstance().screen instanceof DeferredLevelLoadingScreen) + && worldLoadStartTime != -1 + && Minecraft.getInstance().player != null + && numRenderTicks++ >= 10) { float timeSpentLoading = ((float)(System.nanoTime() - worldLoadStartTime) / 1000000000f); ModernFix.LOGGER.warn("Time from main menu to in-game was " + timeSpentLoading + " seconds"); ModernFix.LOGGER.warn("Total time to load game and open world was " + (timeSpentLoading + gameStartTimeSeconds) + " seconds");