feat: title screen blur

- Also fix config changes not being saved
This commit is contained in:
Martin Prokoph
2025-01-25 18:53:32 +01:00
parent 75bfeb2ce3
commit f7465ee08e
6 changed files with 39 additions and 1 deletions

View File

@@ -17,6 +17,10 @@ public class BlurConfig extends MidnightConfig {
@Entry(category = SCREENS)
public static boolean blurContainers = true;
@Entry(category = SCREENS)
public static boolean blurTitleScreen = false;
@Entry(category = SCREENS)
public static boolean darkenTitleScreen = false;
@Entry(category = ANIMATIONS, min = 0, max = 2000, isSlider = true)
public static int fadeTimeMillis = 300;
@Entry(category = ANIMATIONS, min = 0, max = 2000, isSlider = true)
@@ -48,6 +52,7 @@ public class BlurConfig extends MidnightConfig {
@Override
public void writeChanges(String modid) {
super.writeChanges(modid);
MinecraftClient.getInstance().options.getMenuBackgroundBlurriness().setValue(radius);
}

View File

@@ -0,0 +1,28 @@
package eu.midnightdust.blur.mixin;
import eu.midnightdust.blur.Blur;
import eu.midnightdust.blur.config.BlurConfig;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.screen.TitleScreen;
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(TitleScreen.class)
public abstract class MixinTitleScreen extends Screen {
protected MixinTitleScreen(Text title) {
super(title);
}
@Inject(method = "renderPanoramaBackground", at = @At("TAIL"))
private void blur$renderTitleBlur(DrawContext context, float delta, CallbackInfo ci) { // Applies the blur effect in containers (Inventory, Chest, etc.)
if (BlurConfig.blurTitleScreen) {
Blur.updateProgress(true);
this.applyBlur();
if (BlurConfig.darkenTitleScreen) this.renderDarkening(context);
}
}
}

View File

@@ -3,6 +3,8 @@
"blur.midnightconfig.category.animations": "Animationen",
"blur.midnightconfig.category.style": "Stil",
"blur.midnightconfig.blurContainers": "Unschärfe in Containern",
"blur.midnightconfig.blurTitleScreen": "Unschärfe im Titelbildschirm",
"blur.midnightconfig.darkenTitleScreen": "Abgedunkelter Titelhintergrund",
"blur.midnightconfig.fadeTimeMillis": "Überblendzeit (in Millisekunden)",
"blur.midnightconfig.fadeOutTimeMillis": "Ausblendzeit (in Millisekunden)",
"blur.midnightconfig.animationCurve": "Animationskurve",

View File

@@ -4,6 +4,8 @@
"blur.midnightconfig.category.style": "Style",
"blur.midnightconfig.category.screens": "Screens",
"blur.midnightconfig.blurContainers": "Apply Blur to Containers",
"blur.midnightconfig.blurTitleScreen": "Apply Blur to Title Screen",
"blur.midnightconfig.darkenTitleScreen": "Darken Title Screen Background",
"blur.midnightconfig.fadeTimeMillis": "Fade Time (in milliseconds)",
"blur.midnightconfig.fadeOutTimeMillis": "Fade Out Time (in milliseconds)",
"blur.midnightconfig.animationCurve": "Animation Curve",

View File

@@ -12,6 +12,7 @@
"MixinMidnightSliderWidget",
"MixinMinecraftClient",
"MixinScreen",
"MixinTitleScreen",
"ScreenAccessor"
],
"injectors": {