Files
Blur/common/src/main/java/eu/midnightdust/blur/mixin/MixinHandledScreen.java
Martin Prokoph 695fa67270 feat: various improvements
- Update to MidnightLib 1.7.0 and use its features to make the config screen more reliable
- Fix background gradient being opaque briefly when fading out while not in a world
- Fix 1.21.5 compat (still compatible with 1.21.4 as well :D)
2025-03-28 23:35:46 +01:00

30 lines
1.5 KiB
Java

package eu.midnightdust.blur.mixin;
import eu.midnightdust.blur.Blur;
import eu.midnightdust.blur.config.BlurConfig;
import eu.midnightdust.lib.util.PlatformFunctions;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.screen.ingame.HandledScreen;
import net.minecraft.text.Text;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(HandledScreen.class)
public class MixinHandledScreen extends Screen {
protected MixinHandledScreen(Text title) {
super(title);
}
@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();
}
@Inject(at = @At("HEAD"), method = "render")
public void blur$processScreenChange(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci) {
if (PlatformFunctions.getPlatformName().equals("neoforge")) Blur.onRender(context, width, height, this.client, delta);
}
}