From 87ebfdd3b6274821cb35defd68f1bc20715a6ea6 Mon Sep 17 00:00:00 2001 From: Motschen Date: Sun, 12 Jun 2022 21:57:15 +0200 Subject: [PATCH] Puzzle 1.3.3 - Better Splashscreen - Only apply puzzle-splashscreen when needed (fixes #34, fixes #8) --- gradle.properties | 2 +- .../net/puzzlemc/core/config/PuzzleConfig.java | 2 +- .../java/net/puzzlemc/gui/PuzzleClient.java | 4 ---- .../splashscreen/PuzzleSplashScreen.java | 7 +++++-- .../splashscreen/mixin/MixinSplashScreen.java | 17 +++++++++-------- 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/gradle.properties b/gradle.properties index 58762a7..eb3f62c 100755 --- a/gradle.properties +++ b/gradle.properties @@ -8,7 +8,7 @@ org.gradle.jvmargs=-Xmx1G loader_version=0.14.6 # Mod Properties - mod_version = 1.3.2 + mod_version = 1.3.3 maven_group = net.puzzlemc archives_base_name = puzzle diff --git a/puzzle-base/src/main/java/net/puzzlemc/core/config/PuzzleConfig.java b/puzzle-base/src/main/java/net/puzzlemc/core/config/PuzzleConfig.java index 6ca3bca..59d3ee6 100755 --- a/puzzle-base/src/main/java/net/puzzlemc/core/config/PuzzleConfig.java +++ b/puzzle-base/src/main/java/net/puzzlemc/core/config/PuzzleConfig.java @@ -13,7 +13,6 @@ public class PuzzleConfig extends MidnightConfig { @Entry public static boolean checkUpdates = true; @Entry public static boolean showPuzzleInfo = true; @Entry public static boolean resourcepackSplashScreen = true; - @Entry public static boolean betterSplashScreenBlend = true; @Entry public static boolean unlimitedRotations = true; @Entry public static boolean biggerModels = true; @@ -21,4 +20,5 @@ public class PuzzleConfig extends MidnightConfig { @Entry public static int progressBarColor = 16777215; @Entry public static int progressBarBackgroundColor = 15675965; @Entry public static int progressFrameColor = 16777215; + @Entry public static boolean disableBlend = false; } diff --git a/puzzle-gui/src/main/java/net/puzzlemc/gui/PuzzleClient.java b/puzzle-gui/src/main/java/net/puzzlemc/gui/PuzzleClient.java index aa06b3f..1d95676 100755 --- a/puzzle-gui/src/main/java/net/puzzlemc/gui/PuzzleClient.java +++ b/puzzle-gui/src/main/java/net/puzzlemc/gui/PuzzleClient.java @@ -54,10 +54,6 @@ public void onInitializeClient() { PuzzleSplashScreen.resetColors(); MinecraftClient.getInstance().getTextureManager().registerTexture(PuzzleSplashScreen.LOGO, new PuzzleSplashScreen.LogoTexture()); })); - PuzzleApi.addToResourceOptions(new PuzzleWidget(Text.translatable("puzzle.option.better_splash_screen_blend"), (button) -> button.setMessage(PuzzleConfig.betterSplashScreenBlend ? YES : NO), (button) -> { - PuzzleConfig.betterSplashScreenBlend = !PuzzleConfig.betterSplashScreenBlend; - PuzzleConfig.write(id); - })); } if (FabricLoader.getInstance().isModLoaded("puzzle-models") && !PuzzleConfig.disabledIntegrations.contains("puzzle-models")) { PuzzleApi.addToResourceOptions(new PuzzleWidget(Text.translatable("puzzle.option.unlimited_model_rotations"), (button) -> button.setMessage(PuzzleConfig.unlimitedRotations ? YES : NO), (button) -> { diff --git a/puzzle-splashscreen/src/main/java/net/puzzlemc/splashscreen/PuzzleSplashScreen.java b/puzzle-splashscreen/src/main/java/net/puzzlemc/splashscreen/PuzzleSplashScreen.java index 572ce00..d1f5d2c 100755 --- a/puzzle-splashscreen/src/main/java/net/puzzlemc/splashscreen/PuzzleSplashScreen.java +++ b/puzzle-splashscreen/src/main/java/net/puzzlemc/splashscreen/PuzzleSplashScreen.java @@ -43,6 +43,7 @@ public static void resetColors() { PuzzleConfig.progressBarColor = 16777215; PuzzleConfig.progressBarBackgroundColor = 15675965; PuzzleConfig.progressFrameColor = 16777215; + PuzzleConfig.disableBlend = false; PuzzleConfig.write("puzzle"); } @@ -89,9 +90,11 @@ public void reload(ResourceManager manager) { if (properties.get("screen.loading.outline") != null) { PuzzleConfig.progressFrameColor = MidnightColorUtil.hex2Rgb(properties.get("screen.loading.outline").toString()).getRGB(); } - if (properties.get("screen.loading") != null) { - PuzzleConfig.write("puzzle"); + if (properties.get("screen.loading.blend") != null) { + PuzzleConfig.disableBlend = properties.get("screen.loading.blend").toString().equals("off"); + PuzzleConfig.progressFrameColor = MidnightColorUtil.hex2Rgb(properties.get("screen.loading.outline").toString()).getRGB(); } + PuzzleConfig.write("puzzle"); } catch (Exception e) { LogManager.getLogger("Puzzle").error("Error occurred while loading color.properties " + id.toString(), e); } diff --git a/puzzle-splashscreen/src/main/java/net/puzzlemc/splashscreen/mixin/MixinSplashScreen.java b/puzzle-splashscreen/src/main/java/net/puzzlemc/splashscreen/mixin/MixinSplashScreen.java index 3c33cd8..4857da5 100755 --- a/puzzle-splashscreen/src/main/java/net/puzzlemc/splashscreen/mixin/MixinSplashScreen.java +++ b/puzzle-splashscreen/src/main/java/net/puzzlemc/splashscreen/mixin/MixinSplashScreen.java @@ -28,6 +28,11 @@ public abstract class MixinSplashScreen extends Overlay { @Shadow @Final static Identifier LOGO; @Shadow private long reloadCompleteTime; + @Shadow + private static int withAlpha(int color, int alpha) { + return 0; + } + @Inject(method = "init(Lnet/minecraft/client/MinecraftClient;)V", at = @At("TAIL")) private static void puzzle$initSplashscreen(MinecraftClient client, CallbackInfo ci) { // Load our custom textures at game start // if (PuzzleConfig.resourcepackSplashScreen && PuzzleSplashScreen.LOGO_TEXTURE.toFile().exists()) { @@ -39,11 +44,11 @@ public abstract class MixinSplashScreen extends Overlay { } @Redirect(method = "render", at = @At(value = "INVOKE", target = "Ljava/util/function/IntSupplier;getAsInt()I")) private int puzzle$modifyBackground(IntSupplier instance) { // Set the Progress Bar Frame Color to our configured value // - return PuzzleConfig.backgroundColor | 255 << 24; + return (!PuzzleConfig.resourcepackSplashScreen || PuzzleConfig.progressBarBackgroundColor == 15675965) ? instance.getAsInt() : PuzzleConfig.backgroundColor | 255 << 24; } @Inject(method = "render", at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/systems/RenderSystem;blendFunc(II)V", shift = At.Shift.AFTER), remap = false) private void puzzle$betterBlend(MatrixStack matrices, int mouseX, int mouseY, float delta, CallbackInfo ci) { - if (PuzzleConfig.betterSplashScreenBlend) RenderSystem.defaultBlendFunc(); + if (PuzzleConfig.disableBlend) RenderSystem.defaultBlendFunc(); } @Inject(method = "renderProgressBar", at = @At("HEAD")) private void puzzle$addProgressBarBackground(MatrixStack matrices, int minX, int minY, int maxX, int maxY, float opacity, CallbackInfo ci) { @@ -65,14 +70,10 @@ public abstract class MixinSplashScreen extends Overlay { @ModifyArg(method = "renderProgressBar", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/SplashOverlay;fill(Lnet/minecraft/client/util/math/MatrixStack;IIIII)V"), index = 5) private int puzzle$modifyProgressFrame(int color) { // Set the Progress Bar Frame Color to our configured value // - return PuzzleConfig.progressFrameColor | 255 << 24; + return (!PuzzleConfig.resourcepackSplashScreen || PuzzleConfig.progressFrameColor == 16777215) ? color : PuzzleConfig.progressFrameColor | 255 << 24; } @ModifyArg(method = "renderProgressBar", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/SplashOverlay;fill(Lnet/minecraft/client/util/math/MatrixStack;IIIII)V", ordinal = 4), index = 5) private int puzzle$modifyProgressColor(int color) { // Set the Progress Bar Color to our configured value // - return PuzzleConfig.progressBarColor | 255 << 24; + return (!PuzzleConfig.resourcepackSplashScreen || PuzzleConfig.progressBarColor == 16777215) ? color : PuzzleConfig.progressBarColor | 255 << 24; } - private static int withAlpha(int color, int alpha) { - return color & 0xFFFFFF | alpha << 24; - } - }