From 05e4380996c199f8d721c6e5400ea4b0d2f71ef1 Mon Sep 17 00:00:00 2001 From: Mark Rapson Date: Tue, 11 Aug 2026 00:14:21 +0100 Subject: [PATCH] Kick off render loop from client tick --- .../github/copilot/renameable/RenderCatalogClient.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/build/client-renderer/src/client/java/dev/github/copilot/renameable/RenderCatalogClient.java b/build/client-renderer/src/client/java/dev/github/copilot/renameable/RenderCatalogClient.java index c4ae364..7820f81 100644 --- a/build/client-renderer/src/client/java/dev/github/copilot/renameable/RenderCatalogClient.java +++ b/build/client-renderer/src/client/java/dev/github/copilot/renameable/RenderCatalogClient.java @@ -15,6 +15,7 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents; import net.minecraft.client.Minecraft; import net.minecraft.client.Screenshot; import net.minecraft.client.gui.GuiGraphicsExtractor; @@ -35,6 +36,7 @@ public final class RenderCatalogClient implements ClientModInitializer { private Path outputDir; private int currentJobIndex; private RenderScreen renderScreen; + private boolean renderStarted; @Override public void onInitializeClient() { @@ -64,6 +66,14 @@ public final class RenderCatalogClient implements ClientModInitializer { client.setScreenAndShow(renderScreen); }); + ClientTickEvents.END_CLIENT_TICK.register(tickedClient -> { + if (!renderStarted && tickedClient.screen == renderScreen) { + renderStarted = true; + System.out.println("[renderer] starting render loop from client tick"); + renderCurrentJob(tickedClient, renderScreen); + } + }); + Thread activationWatchdog = new Thread(() -> { try { Thread.sleep(SCREEN_ACTIVATION_TIMEOUT_MILLIS);