diff --git a/src/main/java/org/betterx/bclib/client/gui/screens/BCLibLayoutScreen.java b/src/main/java/org/betterx/bclib/client/gui/screens/BCLibLayoutScreen.java index 612d63ec..39fe6c59 100644 --- a/src/main/java/org/betterx/bclib/client/gui/screens/BCLibLayoutScreen.java +++ b/src/main/java/org/betterx/bclib/client/gui/screens/BCLibLayoutScreen.java @@ -35,4 +35,21 @@ public abstract class BCLibLayoutScreen extends LayoutScreenWithIcon { ) { super(parent, BCLIB_LOGO_LOCATION, component, topPadding, bottomPadding, sidePadding); } + + public BCLibLayoutScreen( + @Nullable Runnable onClose, + Component component + ) { + super(onClose, BCLIB_LOGO_LOCATION, component); + } + + public BCLibLayoutScreen( + @Nullable Runnable onClose, + Component component, + int topPadding, + int bottomPadding, + int sidePadding + ) { + super(onClose, BCLIB_LOGO_LOCATION, component, topPadding, bottomPadding, sidePadding); + } } diff --git a/src/main/java/org/betterx/bclib/client/gui/screens/UpdatesScreen.java b/src/main/java/org/betterx/bclib/client/gui/screens/UpdatesScreen.java index b089da1f..29e4eab7 100644 --- a/src/main/java/org/betterx/bclib/client/gui/screens/UpdatesScreen.java +++ b/src/main/java/org/betterx/bclib/client/gui/screens/UpdatesScreen.java @@ -30,10 +30,14 @@ public class UpdatesScreen extends BCLibLayoutScreen { public static final String DONATION_URL = "https://www.buymeacoffee.com/quiqueck"; static final ResourceLocation UPDATE_LOGO_LOCATION = new ResourceLocation(BCLib.MOD_ID, "icon_updater.png"); + public UpdatesScreen(Runnable onClose) { + super(onClose, Component.translatable("bclib.updates.title"), 10, 10, 10); + } + public UpdatesScreen(Screen parent) { super(parent, Component.translatable("bclib.updates.title"), 10, 10, 10); } - + public static void showUpdateUI() { if (!RenderSystem.isOnRenderThread()) { RenderSystem.recordRenderCall(() -> Minecraft.getInstance() diff --git a/src/main/java/org/betterx/bclib/client/gui/screens/WelcomeScreen.java b/src/main/java/org/betterx/bclib/client/gui/screens/WelcomeScreen.java index 9eb5edcf..42c354b6 100644 --- a/src/main/java/org/betterx/bclib/client/gui/screens/WelcomeScreen.java +++ b/src/main/java/org/betterx/bclib/client/gui/screens/WelcomeScreen.java @@ -11,7 +11,6 @@ import org.betterx.worlds.together.WorldsTogether; import org.betterx.worlds.together.worldPreset.WorldPresets; import net.minecraft.client.gui.GuiGraphics; -import net.minecraft.client.gui.screens.Screen; import net.minecraft.network.chat.CommonComponents; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Style; @@ -19,11 +18,11 @@ import net.minecraft.resources.ResourceLocation; public class WelcomeScreen extends BCLibLayoutScreen { static final ResourceLocation BETTERX_LOCATION = new ResourceLocation(BCLib.MOD_ID, "betterx.png"); - static final ResourceLocation BACKGROUND = new ResourceLocation(BCLib.MOD_ID, "header.jpg"); + static final ResourceLocation BACKGROUND = new ResourceLocation(BCLib.MOD_ID, "header.png"); static final ResourceLocation ICON_BETTERNETHER = new ResourceLocation(BCLib.MOD_ID, "icon_betternether.png"); static final ResourceLocation ICON_BETTEREND = new ResourceLocation(BCLib.MOD_ID, "icon_betterend.png"); - public WelcomeScreen(Screen parent) { + public WelcomeScreen(Runnable parent) { super(parent, translatable("bclib.welcome.title")); } diff --git a/src/main/java/org/betterx/bclib/mixin/client/MinecraftMixin.java b/src/main/java/org/betterx/bclib/mixin/client/MinecraftMixin.java index ab3f828b..28bc08f3 100644 --- a/src/main/java/org/betterx/bclib/mixin/client/MinecraftMixin.java +++ b/src/main/java/org/betterx/bclib/mixin/client/MinecraftMixin.java @@ -17,6 +17,8 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import java.util.List; +import java.util.function.Function; import org.jetbrains.annotations.Nullable; @Mixin(Minecraft.class) @@ -34,6 +36,14 @@ public abstract class MinecraftMixin { @Nullable public Screen screen; + @Inject( + method = "addInitialScreens", + at = @At("TAIL") + ) + private void bclib_onScreenInit(List> list, CallbackInfo ci) { + VersionCheckerClient.presentUpdateScreen(list); + } + @Inject(method = "*", at = @At("TAIL")) private void bclib_onMCInit(GameConfig args, CallbackInfo info) { BuiltInRegistries.BLOCK.forEach(block -> { @@ -42,7 +52,5 @@ public abstract class MinecraftMixin { itemColors.register(provider.getItemProvider(), block.asItem()); } }); - - VersionCheckerClient.presentUpdateScreen(screen); } } diff --git a/src/main/java/org/betterx/bclib/networking/VersionCheckerClient.java b/src/main/java/org/betterx/bclib/networking/VersionCheckerClient.java index f6baae73..be7d3f86 100644 --- a/src/main/java/org/betterx/bclib/networking/VersionCheckerClient.java +++ b/src/main/java/org/betterx/bclib/networking/VersionCheckerClient.java @@ -4,21 +4,22 @@ import org.betterx.bclib.client.gui.screens.UpdatesScreen; import org.betterx.bclib.client.gui.screens.WelcomeScreen; import org.betterx.bclib.config.Configs; -import net.minecraft.client.Minecraft; import net.minecraft.client.gui.screens.Screen; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; +import java.util.List; +import java.util.function.Function; + @Environment(EnvType.CLIENT) public class VersionCheckerClient extends VersionChecker { - public static void presentUpdateScreen(Screen parent) { + public static void presentUpdateScreen(List> screens) { if (!Configs.CLIENT_CONFIG.didShowWelcomeScreen()) { - Minecraft.getInstance().setScreen(new WelcomeScreen(parent)); - + screens.add(WelcomeScreen::new); } else if (Configs.CLIENT_CONFIG.showUpdateInfo() && !VersionChecker.isEmpty()) { - Minecraft.getInstance().setScreen(new UpdatesScreen(parent)); + screens.add(UpdatesScreen::new); } } } diff --git a/src/main/resources/assets/bclib/header.jpg b/src/main/resources/assets/bclib/header.jpg deleted file mode 100644 index 14f30a77..00000000 Binary files a/src/main/resources/assets/bclib/header.jpg and /dev/null differ diff --git a/src/main/resources/assets/bclib/header.png b/src/main/resources/assets/bclib/header.png new file mode 100644 index 00000000..2967e891 Binary files /dev/null and b/src/main/resources/assets/bclib/header.png differ