mirror of
https://github.com/Motschen/Blur.git
synced 2025-12-15 11:15:09 +01:00
feat: add mirror of blur radius to config screen
- The blur radius can normally be configured in Minecraft's Accessibility settings. However, this has caused confusion for some users, so it can now also be configured via the config screen.
This commit is contained in:
@@ -2,6 +2,7 @@ package eu.midnightdust.blur.config;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import eu.midnightdust.lib.config.MidnightConfig;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
@@ -22,6 +23,8 @@ public class BlurConfig extends MidnightConfig {
|
||||
public static int fadeOutTimeMillis = 300;
|
||||
@Entry(category = ANIMATIONS)
|
||||
public static BlurConfig.Easing animationCurve = Easing.FLAT;
|
||||
@Entry(category = STYLE, isSlider = true, min = 0, max = 20)
|
||||
public static int radius = 5;
|
||||
@Entry(category = STYLE)
|
||||
public static boolean useGradient = true;
|
||||
@Entry(category = STYLE, isColor = true, width = 7, min = 7)
|
||||
@@ -43,6 +46,11 @@ public class BlurConfig extends MidnightConfig {
|
||||
@Entry(category = SCREENS) // Screens where the vanilla blur effect should be force disabled
|
||||
public static List<String> forceDisabledScreens = Lists.newArrayList();
|
||||
|
||||
@Override
|
||||
public void writeChanges(String modid) {
|
||||
MinecraftClient.getInstance().options.getMenuBackgroundBlurriness().setValue(radius);
|
||||
}
|
||||
|
||||
public enum Easing {
|
||||
// Based on https://gist.github.com/dev-hydrogen/21a66f83f0386123e0c0acf107254843
|
||||
// Thank you very much!
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
package eu.midnightdust.blur.mixin;
|
||||
|
||||
import eu.midnightdust.blur.config.BlurConfig;
|
||||
import eu.midnightdust.lib.config.MidnightConfig;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
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(MidnightConfig.MidnightConfigScreen.class)
|
||||
public abstract class MixinMidnightConfigScreen {
|
||||
@Inject(at = @At(value = "INVOKE", target = "Lcom/google/gson/Gson;fromJson(Ljava/io/Reader;Ljava/lang/Class;)Ljava/lang/Object;", shift = At.Shift.AFTER), remap = false, method = "loadValues")
|
||||
private void blur$syncRadius(CallbackInfo ci) {
|
||||
BlurConfig.radius = MinecraftClient.getInstance().options.getMenuBackgroundBlurrinessValue();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package eu.midnightdust.blur.mixin;
|
||||
|
||||
import eu.midnightdust.lib.config.MidnightConfig;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import org.spongepowered.asm.mixin.Final;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
@Mixin(value = MidnightConfig.MidnightSliderWidget.class, remap = false)
|
||||
public abstract class MixinMidnightSliderWidget {
|
||||
@Shadow @Final private MidnightConfig.EntryInfo info;
|
||||
|
||||
@Inject(at = @At(value = "TAIL"), method = "applyValue")
|
||||
private void blur$instantlyApplyRadius(CallbackInfo ci) {
|
||||
// TODO: Make more fields in MidnightLib protected instead of private and improve this
|
||||
MinecraftClient.getInstance().options.getMenuBackgroundBlurriness().setValue(Integer.parseInt(this.info.toTemporaryValue()));
|
||||
}
|
||||
}
|
||||
@@ -18,6 +18,7 @@
|
||||
"blur.midnightconfig.enum.Easing.BACK": "Back",
|
||||
"blur.midnightconfig.enum.Easing.ELASTIC": "Elastic",
|
||||
"blur.midnightconfig.radius": "Radius",
|
||||
"blur.midnightconfig.radius.label.tooltip": "Mirror of \"Menu Background Blur\" found in Minecraft's Accessibility Settings",
|
||||
"blur.midnightconfig.rainbowMode": "Rainbow Mode \uD83C\uDF08",
|
||||
"blur.midnightconfig.useGradient": "Gradient as Background",
|
||||
"blur.midnightconfig.gradientStart": "Gradient Start Color",
|
||||
|
||||
@@ -4,13 +4,15 @@
|
||||
"package": "eu.midnightdust.blur.mixin",
|
||||
"compatibilityLevel": "JAVA_21",
|
||||
"client": [
|
||||
"MixinScreen",
|
||||
"ScreenAccessor",
|
||||
"MixinHandledScreen",
|
||||
"MixinMinecraftClient",
|
||||
"MixinGameOptions",
|
||||
"MixinGameRenderer",
|
||||
"MixinHandledScreen",
|
||||
"MixinInGameHud",
|
||||
"MixinGameOptions"
|
||||
"MixinMidnightConfigScreen",
|
||||
"MixinMidnightSliderWidget",
|
||||
"MixinMinecraftClient",
|
||||
"MixinScreen",
|
||||
"ScreenAccessor"
|
||||
],
|
||||
"injectors": {
|
||||
"defaultRequire": 1
|
||||
|
||||
@@ -8,7 +8,7 @@ yarn_mappings=1.21.4+build.1
|
||||
enabled_platforms=fabric,neoforge
|
||||
|
||||
# Mod Properties
|
||||
mod_version=5.0.2
|
||||
mod_version=5.1.0
|
||||
maven_group=eu.midnightdust.blur
|
||||
archives_base_name=blur
|
||||
release_type=release
|
||||
@@ -23,5 +23,5 @@ neoforge_version=21.4.10-beta
|
||||
yarn_mappings_patch_neoforge_version = 1.21+build.4
|
||||
|
||||
# Libraries
|
||||
midnightlib_version = 1.6.6
|
||||
midnightlib_version = 1.6.7
|
||||
modmenu_version = 11.0.2
|
||||
|
||||
Reference in New Issue
Block a user