Kick off render loop from client tick

This commit is contained in:
2026-08-11 00:14:21 +01:00
parent 1f94923ab4
commit 05e4380996
@@ -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);