From 7ac44e3187868efdb7174b3ef3b8b8f950b5fd11 Mon Sep 17 00:00:00 2001 From: Jason Penilla <11360596+jpenilla@users.noreply.github.com> Date: Tue, 26 Nov 2024 15:39:07 -0700 Subject: [PATCH] Disable immediate loading screen closure by default --- .../common/config/moonrise/MoonriseConfig.java | 17 +++++++++++++++++ .../LevelLoadStatusManagerMixin.java | 4 ++++ 2 files changed, 21 insertions(+) diff --git a/src/main/java/ca/spottedleaf/moonrise/common/config/moonrise/MoonriseConfig.java b/src/main/java/ca/spottedleaf/moonrise/common/config/moonrise/MoonriseConfig.java index 14c73d4c..9a4a6822 100644 --- a/src/main/java/ca/spottedleaf/moonrise/common/config/moonrise/MoonriseConfig.java +++ b/src/main/java/ca/spottedleaf/moonrise/common/config/moonrise/MoonriseConfig.java @@ -251,4 +251,21 @@ public static final class BugFixes { ) public boolean fixMC159283 = false; } + + @Serializable + public Misc misc = new Misc(); + + @Adaptable + public static final class Misc { + + @Serializable( + serializedKey = "immediately-close-loading-screen", + comment = """ + Whether the loading screen should be closed immediately when joining servers/SP worlds. + This will let you in game faster, but may result in getting in game before enough chunks are + loaded for rendering. + """ + ) + public boolean immediatelyCloseLoadingScreen = false; + } } diff --git a/src/main/java/ca/spottedleaf/moonrise/mixin/loading_screen/LevelLoadStatusManagerMixin.java b/src/main/java/ca/spottedleaf/moonrise/mixin/loading_screen/LevelLoadStatusManagerMixin.java index 87b357e7..532a46b9 100644 --- a/src/main/java/ca/spottedleaf/moonrise/mixin/loading_screen/LevelLoadStatusManagerMixin.java +++ b/src/main/java/ca/spottedleaf/moonrise/mixin/loading_screen/LevelLoadStatusManagerMixin.java @@ -1,5 +1,6 @@ package ca.spottedleaf.moonrise.mixin.loading_screen; +import ca.spottedleaf.moonrise.common.util.ConfigHolder; import net.minecraft.client.multiplayer.LevelLoadStatusManager; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -25,6 +26,9 @@ abstract class LevelLoadStatusManagerMixin { ) ) private void immediatelyClose(final CallbackInfo ci) { + if (!ConfigHolder.getConfig().misc.immediatelyCloseLoadingScreen) { + return; + } if (this.status == LevelLoadStatusManager.Status.WAITING_FOR_SERVER) { this.status = LevelLoadStatusManager.Status.LEVEL_READY; ci.cancel();