From 06876d98e441a04c29c464e55d6b0a25d62a1ec6 Mon Sep 17 00:00:00 2001 From: Martin Prokoph Date: Tue, 15 Jul 2025 18:43:59 +0200 Subject: [PATCH] backport: adjust for 1.21.1 phew... --- common/src/main/java/eu/midnightdust/blur/Blur.java | 5 +++-- .../eu/midnightdust/blur/mixin/MixinGameOptions.java | 2 +- .../eu/midnightdust/blur/mixin/MixinGameRenderer.java | 11 ++++------- .../midnightdust/blur/mixin/MixinHandledScreen.java | 4 ++-- .../eu/midnightdust/blur/mixin/MixinInGameHud.java | 3 ++- .../java/eu/midnightdust/blur/mixin/MixinScreen.java | 2 -- .../eu/midnightdust/blur/mixin/MixinTitleScreen.java | 6 +++--- fabric/src/main/resources/fabric.mod.json | 4 ++-- gradle.properties | 2 +- .../eu/midnightdust/blur/neoforge/BlurNeoForge.java | 2 +- .../src/main/resources/META-INF/neoforge.mods.toml | 4 ++-- 11 files changed, 21 insertions(+), 24 deletions(-) diff --git a/common/src/main/java/eu/midnightdust/blur/Blur.java b/common/src/main/java/eu/midnightdust/blur/Blur.java index ef00133..a0c6b4a 100644 --- a/common/src/main/java/eu/midnightdust/blur/Blur.java +++ b/common/src/main/java/eu/midnightdust/blur/Blur.java @@ -6,7 +6,7 @@ import eu.midnightdust.lib.util.MidnightColorUtil; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import org.joml.Math; -import org.joml.Matrix3x2f; +import org.joml.Matrix4f; import java.awt.Color; import java.lang.Double; @@ -32,7 +32,8 @@ public class Blur { } public static void renderFadeout(DrawContext context, int width, int height, MinecraftClient client) { if (BlurInfo.start >= 0 && !BlurInfo.screenHasBlur && BlurInfo.prevScreenHasBlur) { // Fade out in non-blurred screens - client.gameRenderer.renderBlur(); + client.gameRenderer.renderBlur(client.getRenderTickCounter().getTickDelta(true)); + client.getFramebuffer().beginWrite(false); if (BlurInfo.prevScreenHasBackground && BlurConfig.useGradient) Blur.renderRotatedGradient(context, width, height); } diff --git a/common/src/main/java/eu/midnightdust/blur/mixin/MixinGameOptions.java b/common/src/main/java/eu/midnightdust/blur/mixin/MixinGameOptions.java index 19d54f7..ec7720e 100644 --- a/common/src/main/java/eu/midnightdust/blur/mixin/MixinGameOptions.java +++ b/common/src/main/java/eu/midnightdust/blur/mixin/MixinGameOptions.java @@ -13,7 +13,7 @@ public abstract class MixinGameOptions { @Shadow @Final private SimpleOption menuBackgroundBlurriness; @Shadow @Final private SimpleOption chatLineSpacing; - @Redirect(method = "", at = @At(value = "NEW", target = "net/minecraft/client/option/SimpleOption$ValidatingIntSliderCallbacks", ordinal = 3)) + @Redirect(method = "", at = @At(value = "NEW", target = "net/minecraft/client/option/SimpleOption$ValidatingIntSliderCallbacks", ordinal = 2)) private SimpleOption.ValidatingIntSliderCallbacks blur$increaseMaxBlurriness(int minInclusive, int maxInclusive) { if (this.menuBackgroundBlurriness == null && this.chatLineSpacing != null) return new SimpleOption.ValidatingIntSliderCallbacks(minInclusive, 20); diff --git a/common/src/main/java/eu/midnightdust/blur/mixin/MixinGameRenderer.java b/common/src/main/java/eu/midnightdust/blur/mixin/MixinGameRenderer.java index c6f1004..8ec9aad 100644 --- a/common/src/main/java/eu/midnightdust/blur/mixin/MixinGameRenderer.java +++ b/common/src/main/java/eu/midnightdust/blur/mixin/MixinGameRenderer.java @@ -1,21 +1,18 @@ package eu.midnightdust.blur.mixin; -import com.llamalad7.mixinextras.injector.wrapoperation.Operation; -import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; import eu.midnightdust.blur.Blur; import eu.midnightdust.blur.BlurInfo; -import net.minecraft.client.option.GameOptions; import net.minecraft.client.render.GameRenderer; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.ModifyVariable; @Mixin(GameRenderer.class) public class MixinGameRenderer { - @WrapOperation(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/option/GameOptions;getMenuBackgroundBlurrinessValue()I")) - private int blur$modifyRadius(GameOptions instance, Operation original) { - int radius = instance.getMenuBackgroundBlurrinessValue(); + @ModifyVariable(method = "renderBlur", at = @At("STORE"), ordinal = 1) + private float blur$modifyRadius(float radius) { // Modify the radius based on the animation progress if (!BlurInfo.screenChanged && BlurInfo.start >= 0) // Only update the progress after all tests have been completed Blur.updateProgress(BlurInfo.screenHasBlur); - return (int) (radius * BlurInfo.progress); + return radius * BlurInfo.progress; } } diff --git a/common/src/main/java/eu/midnightdust/blur/mixin/MixinHandledScreen.java b/common/src/main/java/eu/midnightdust/blur/mixin/MixinHandledScreen.java index 53599c0..6ac904b 100644 --- a/common/src/main/java/eu/midnightdust/blur/mixin/MixinHandledScreen.java +++ b/common/src/main/java/eu/midnightdust/blur/mixin/MixinHandledScreen.java @@ -19,8 +19,8 @@ public class MixinHandledScreen extends Screen { } @Inject(method = "renderBackground", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/ingame/HandledScreen;drawBackground(Lnet/minecraft/client/gui/DrawContext;FII)V", shift = At.Shift.BEFORE)) - private void blur$renderContainerBlur(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci) { // Applies the blur effect in containers (Inventory, Chest, etc.) - if (BlurConfig.blurContainers) this.applyBlur(context); + private void blur$renderContainerBlur(DrawContext context, int mouseX, int mouseY, float tickDelta, CallbackInfo ci) { // Applies the blur effect in containers (Inventory, Chest, etc.) + if (BlurConfig.blurContainers) this.applyBlur(tickDelta); } @Inject(at = @At("HEAD"), method = "render") public void blur$processScreenChange(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci) { diff --git a/common/src/main/java/eu/midnightdust/blur/mixin/MixinInGameHud.java b/common/src/main/java/eu/midnightdust/blur/mixin/MixinInGameHud.java index 9202257..966498c 100644 --- a/common/src/main/java/eu/midnightdust/blur/mixin/MixinInGameHud.java +++ b/common/src/main/java/eu/midnightdust/blur/mixin/MixinInGameHud.java @@ -22,7 +22,8 @@ public class MixinInGameHud { if (client.currentScreen == null && client.world != null && BlurInfo.start >= 0 && BlurInfo.prevScreenHasBlur) { BlurInfo.doTest = false; BlurInfo.screenChanged = false; - context.applyBlur(); + this.client.gameRenderer.renderBlur(tickCounter.getTickDelta(true)); + this.client.getFramebuffer().beginWrite(false); if (BlurInfo.prevScreenHasBackground) Blur.renderRotatedGradient(context, client.getWindow().getScaledWidth(), client.getWindow().getScaledHeight()); } diff --git a/common/src/main/java/eu/midnightdust/blur/mixin/MixinScreen.java b/common/src/main/java/eu/midnightdust/blur/mixin/MixinScreen.java index c5da7ce..fdd17ce 100755 --- a/common/src/main/java/eu/midnightdust/blur/mixin/MixinScreen.java +++ b/common/src/main/java/eu/midnightdust/blur/mixin/MixinScreen.java @@ -26,8 +26,6 @@ public abstract class MixinScreen { @Shadow protected MinecraftClient client; @Shadow public int width; @Shadow public int height; - @Shadow protected abstract void applyBlur(DrawContext context); - @Shadow protected abstract void applyBlur(float delta); @Inject(at = @At("HEAD"), method = "render") diff --git a/common/src/main/java/eu/midnightdust/blur/mixin/MixinTitleScreen.java b/common/src/main/java/eu/midnightdust/blur/mixin/MixinTitleScreen.java index 00d37bf..6f87266 100644 --- a/common/src/main/java/eu/midnightdust/blur/mixin/MixinTitleScreen.java +++ b/common/src/main/java/eu/midnightdust/blur/mixin/MixinTitleScreen.java @@ -17,11 +17,11 @@ public abstract class MixinTitleScreen extends Screen { super(title); } - @Inject(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/TitleScreen;renderPanoramaBackground(Lnet/minecraft/client/gui/DrawContext;F)V")) - private void blur$renderTitleBlur(DrawContext context, int mouseX, int mouseY, float deltaTicks, CallbackInfo ci) { + @Inject(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/TitleScreen;renderPanoramaBackground(Lnet/minecraft/client/gui/DrawContext;F)V", shift = At.Shift.AFTER)) + private void blur$renderTitleBlur(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci) { if (BlurConfig.blurTitleScreen) { Blur.updateProgress(true); - this.applyBlur(context); + this.applyBlur(delta); if (BlurConfig.darkenTitleScreen) this.renderDarkening(context); } } diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json index 9331400..e831a43 100755 --- a/fabric/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -33,7 +33,7 @@ "blur.mixins.json" ], "depends": { - "minecraft": ">=1.21.2", - "midnightlib": ">=1.7.3" + "minecraft": ">=1.21", + "midnightlib": ">=1.7.5" } } diff --git a/gradle.properties b/gradle.properties index b07520f..81d117a 100755 --- a/gradle.properties +++ b/gradle.properties @@ -19,7 +19,7 @@ modrinth_id=NK39zBp2 fabric_loader_version=0.16.13 fabric_api_version=0.115.4+1.21.1 -neoforge_version=21.1.153 +neoforge_version=21.1.192 yarn_mappings_patch_neoforge_version = 1.21+build.4 # Libraries diff --git a/neoforge/src/main/java/eu/midnightdust/blur/neoforge/BlurNeoForge.java b/neoforge/src/main/java/eu/midnightdust/blur/neoforge/BlurNeoForge.java index 85e6e0f..862a58c 100644 --- a/neoforge/src/main/java/eu/midnightdust/blur/neoforge/BlurNeoForge.java +++ b/neoforge/src/main/java/eu/midnightdust/blur/neoforge/BlurNeoForge.java @@ -14,7 +14,7 @@ public class BlurNeoForge { Blur.init(); } - @EventBusSubscriber(modid = Blur.MOD_ID, bus = EventBusSubscriber.Bus.GAME, value = Dist.CLIENT) + @EventBusSubscriber(modid = Blur.MOD_ID, value = Dist.CLIENT) public static class ClientGameEvents { @SubscribeEvent public static void endClientTick(ClientTickEvent.Post event) { diff --git a/neoforge/src/main/resources/META-INF/neoforge.mods.toml b/neoforge/src/main/resources/META-INF/neoforge.mods.toml index 1bf80e2..1059d97 100644 --- a/neoforge/src/main/resources/META-INF/neoforge.mods.toml +++ b/neoforge/src/main/resources/META-INF/neoforge.mods.toml @@ -26,13 +26,13 @@ side = "CLIENT" [[dependencies.blur]] modId = "minecraft" mandatory = true -versionRange = "[1.21.2,)" +versionRange = "[1.21,1.21.1]" ordering = "NONE" side = "CLIENT" [[dependencies.blur]] modId = "midnightlib" mandatory = true -versionRange = "[1.7.3,)" +versionRange = "[1.7.5,)" ordering = "NONE" side = "CLIENT" \ No newline at end of file