diff --git a/README.md b/README.md index 01e73a0..312e2e5 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,7 @@ -![Banner art for the mod Blur+](https://i.ibb.co/GM4HVDC/PoBrnNM.png) - Ever thought that the world behind your inventory was just too distracting? Or that the default Minecraft blur effect is just too boring? Then this mod is just right for you! ![Image showing the Minecraft inventory with a blur effect in the background](https://cdn.modrinth.com/data/NK39zBp2/images/213f18fcf3d6c55cad164077d569e2f0339551da.webp) -Download now on [Modrinth](https://modrinth.com/mod/blur-plus) \ No newline at end of file +Download now on [Modrinth](https://modrinth.com/mod/blur-plus) diff --git a/build.gradle b/build.gradle index a3292bb..35ec41f 100755 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ import groovy.json.JsonOutput plugins { id "architectury-plugin" version "3.4-SNAPSHOT" - id "dev.architectury.loom" version "1.7-SNAPSHOT" apply false + id "dev.architectury.loom" version "1.10-SNAPSHOT" apply false id "me.shedaniel.unified-publishing" version "0.1.+" apply false id 'com.github.johnrengelman.shadow' version '8.1.1' apply false } diff --git a/common/src/main/java/eu/midnightdust/blur/Blur.java b/common/src/main/java/eu/midnightdust/blur/Blur.java index d8addbf..a0c6b4a 100644 --- a/common/src/main/java/eu/midnightdust/blur/Blur.java +++ b/common/src/main/java/eu/midnightdust/blur/Blur.java @@ -3,6 +3,7 @@ package eu.midnightdust.blur; import eu.midnightdust.blur.config.BlurConfig; import eu.midnightdust.blur.util.RainbowColor; import eu.midnightdust.lib.util.MidnightColorUtil; +import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import org.joml.Math; import org.joml.Matrix4f; @@ -15,12 +16,29 @@ import static eu.midnightdust.blur.util.RainbowColor.hue; import static eu.midnightdust.blur.util.RainbowColor.hue2; public class Blur { + public static final String MOD_ID = "blur"; public static void init() { - BlurConfig.init("blur", BlurConfig.class); + BlurConfig.init(MOD_ID, BlurConfig.class); } public static boolean doFade = false; + public static void onRender() { + if (!BlurInfo.doTest && BlurInfo.screenChanged) { // After the tests for blur and background color have been completed + Blur.onScreenChange(); + BlurInfo.screenChanged = false; + } + BlurInfo.doTest = false; // Set the test state to completed, as tests will happen in the same tick. + } + 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.getRenderTickCounter().getTickDelta(true)); + client.getFramebuffer().beginWrite(false); + + if (BlurInfo.prevScreenHasBackground && BlurConfig.useGradient) Blur.renderRotatedGradient(context, width, height); + } + } + public static void onScreenChange() { if (screenHasBlur) { if (doFade) { @@ -61,10 +79,10 @@ public class Blur { int b = (col.getRGB() >> 8) & 0xFF; int g = col.getRGB() & 0xFF; float prog = progress; - a *= prog; - r *= prog; - g *= prog; - b *= prog; + a = (int) (prog * a); + r = (int) (prog * r); + g = (int) (prog * g); + b = (int) (prog * b); return a << 24 | r << 16 | b << 8 | g; } public static int getRotation() { diff --git a/common/src/main/java/eu/midnightdust/blur/config/BlurConfig.java b/common/src/main/java/eu/midnightdust/blur/config/BlurConfig.java index c65bddc..cff6814 100644 --- a/common/src/main/java/eu/midnightdust/blur/config/BlurConfig.java +++ b/common/src/main/java/eu/midnightdust/blur/config/BlurConfig.java @@ -1,9 +1,18 @@ package eu.midnightdust.blur.config; import com.google.common.collect.Lists; +import eu.midnightdust.blur.Blur; import eu.midnightdust.lib.config.MidnightConfig; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.widget.SliderWidget; +import net.minecraft.client.gui.widget.TextIconButtonWidget; +import net.minecraft.client.option.GameOptions; +import net.minecraft.text.Text; +import net.minecraft.util.Identifier; +import java.lang.annotation.Annotation; import java.util.List; +import java.util.Objects; import java.util.function.Function; import static java.lang.Math.*; @@ -14,28 +23,17 @@ public class BlurConfig extends MidnightConfig { public static final String SCREENS = "screens"; @Entry @Hidden public static int configVersion = 2; + @Comment(category = SCREENS, centered = true) + public static Comment _general; @Entry(category = SCREENS) public static boolean blurContainers = true; - @Entry(category = ANIMATIONS, min = 0, max = 2000, isSlider = true) - public static int fadeTimeMillis = 300; - @Entry(category = ANIMATIONS, min = 0, max = 2000, isSlider = true) - public static int fadeOutTimeMillis = 300; - @Entry(category = ANIMATIONS) - public static BlurConfig.Easing animationCurve = Easing.FLAT; - @Entry(category = STYLE) - public static boolean useGradient = true; - @Entry(category = STYLE, isColor = true, width = 7, min = 7) - public static String gradientStart = "#000000"; - @Entry(category = STYLE, isSlider = true, min = 0, max = 255) - public static int gradientStartAlpha = 75; - @Entry(category = STYLE, isColor = true, width = 7, min = 7) - public static String gradientEnd = "#000000"; - @Entry(category = STYLE, isSlider = true, min = 0, max = 255) - public static int gradientEndAlpha = 75; - @Entry(category = STYLE, isSlider = true, min = 0, max = 360) - public static int gradientRotation = 0; - @Entry(category = STYLE) - public static boolean rainbowMode = false; + @Entry(category = SCREENS) + public static boolean blurTitleScreen = false; + @Condition(requiredOption = "blurTitleScreen", visibleButLocked = true) + @Entry(category = SCREENS) + public static boolean darkenTitleScreen = false; + @Comment(category = SCREENS, centered = true) + public static Comment _advanced; @Entry(category = SCREENS) // Screens where Blur+ should not apply transition effects (mostly dynamically blurred screens) public static List excludedScreens = Lists.newArrayList("net.irisshaders.iris.gui.screen.ShaderPackScreen"); @Entry(category = SCREENS) // Screens where the vanilla blur effect should be force enabled @@ -43,6 +41,37 @@ public class BlurConfig extends MidnightConfig { @Entry(category = SCREENS) // Screens where the vanilla blur effect should be force disabled public static List forceDisabledScreens = Lists.newArrayList(); + @Comment(category = STYLE, centered = true) + public static Comment _gradient; + @Entry(category = STYLE) + public static boolean useGradient = true; + @Condition(requiredOption = "useGradient", visibleButLocked = true) + @Entry(category = STYLE, isColor = true, width = 7, min = 7) + public static String gradientStart = "#000000"; + @Condition(requiredOption = "useGradient", visibleButLocked = true) + @Entry(category = STYLE, isSlider = true, min = 0, max = 255) + public static int gradientStartAlpha = 75; + @Condition(requiredOption = "useGradient", visibleButLocked = true) + @Entry(category = STYLE, isColor = true, width = 7, min = 7) + public static String gradientEnd = "#000000"; + @Condition(requiredOption = "useGradient", visibleButLocked = true) + @Entry(category = STYLE, isSlider = true, min = 0, max = 255) + public static int gradientEndAlpha = 75; + @Condition(requiredOption = "useGradient", visibleButLocked = true) + @Entry(category = STYLE, isSlider = true, min = 0, max = 360) + public static int gradientRotation = 0; + @Entry(category = STYLE) + public static boolean rainbowMode = false; + + @Comment(category = ANIMATIONS, centered = true) + public static Comment _animations; + @Entry(category = ANIMATIONS, min = 0, max = 2000, isSlider = true) + public static int fadeTimeMillis = 300; + @Entry(category = ANIMATIONS, min = 0, max = 2000, isSlider = true) + public static int fadeOutTimeMillis = 300; + @Entry(category = ANIMATIONS) + public static BlurConfig.Easing animationCurve = Easing.FLAT; + public enum Easing { // Based on https://gist.github.com/dev-hydrogen/21a66f83f0386123e0c0acf107254843 // Thank you very much! @@ -70,4 +99,51 @@ public class BlurConfig extends MidnightConfig { return functionOut.apply(x).doubleValue(); } } + private static GameOptions options; + + @Override + public void onTabInit(String tabName, MidnightConfigListWidget list, MidnightConfigScreen screen) { + options = MinecraftClient.getInstance().options; + if (Objects.equals(tabName, STYLE)) { + EntryInfo centered = new EntryInfo(null, Blur.MOD_ID); + centered.comment = new Comment(){ + @Override + public boolean centered() { + return true; + } + public Class annotationType() {return null;} + public String category() {return "";} + public String name() {return "";} + public String url() {return "";} + public String requiredMod() {return "";} + }; + RadiusSliderWidget slider = new RadiusSliderWidget(screen.width - 185, 0, 150, 20); + + TextIconButtonWidget resetButton = TextIconButtonWidget.builder(Text.translatable("controls.reset"), (button -> { + options.getMenuBackgroundBlurriness().setValue(5); + screen.updateList(); + }), true).texture(Identifier.of("midnightlib","icon/reset"), 12, 12).dimension(20, 20).build(); + resetButton.setPosition(screen.width - 205 + 150 + 25, 0); + slider.resetButton = resetButton; + slider.updateMessage(); + + list.addButton(Lists.newArrayList(), Text.translatable("blur.midnightconfig._blur"), centered); + list.addButton(Lists.newArrayList(slider, resetButton), Text.translatable("blur.midnightconfig.radius"), new EntryInfo(null, Blur.MOD_ID)); + } + } + + public static class RadiusSliderWidget extends SliderWidget { + TextIconButtonWidget resetButton; + public RadiusSliderWidget(int x, int y, int width, int height) { + super(x, y, width, height, Text.empty(), options.getMenuBackgroundBlurrinessValue() / 20d); + } + public void updateMessage() { + this.setMessage(Text.of(String.valueOf(options.getMenuBackgroundBlurrinessValue()))); + if (resetButton != null) resetButton.active = options.getMenuBackgroundBlurrinessValue() != 5; + } + + public void applyValue() { + options.getMenuBackgroundBlurriness().setValue(Double.valueOf(this.value * 20).intValue()); + } + } } \ No newline at end of file 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 2857c6e..6ac904b 100644 --- a/common/src/main/java/eu/midnightdust/blur/mixin/MixinHandledScreen.java +++ b/common/src/main/java/eu/midnightdust/blur/mixin/MixinHandledScreen.java @@ -1,6 +1,8 @@ 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; @@ -17,7 +19,11 @@ 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(delta); + 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) { + if (PlatformFunctions.getPlatformName().equals("neoforge")) Blur.onRender(); } } 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 c7a3367..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,26 +26,15 @@ public abstract class MixinScreen { @Shadow protected MinecraftClient client; @Shadow public int width; @Shadow public int height; - @Shadow protected abstract void applyBlur(float delta); @Inject(at = @At("HEAD"), method = "render") public void blur$processScreenChange(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci) { - if (!BlurInfo.doTest && BlurInfo.screenChanged) { // After the tests for blur and background color have been completed - Blur.onScreenChange(); - BlurInfo.screenChanged = false; - } - - if (BlurInfo.start >= 0 && !BlurInfo.screenHasBlur && BlurInfo.prevScreenHasBlur) { // Fade out in non-blurred screens - this.client.gameRenderer.renderBlur(delta); - this.client.getFramebuffer().beginWrite(false); - - if (BlurInfo.prevScreenHasBackground) Blur.renderRotatedGradient(context, width, height); - } - BlurInfo.doTest = false; // Set the test state to completed, as tests will happen in the same tick. + Blur.onRender(); + Blur.renderFadeout(context, width, height, client); } @Inject(at = @At("HEAD"), method = "applyBlur", cancellable = true) - public void blur$getBlurEnabled(float delta, CallbackInfo ci) { + public void blur$getBlurEnabled(CallbackInfo ci) { if (BlurConfig.forceDisabledScreens.contains(this.getClass().getCanonicalName())) { ci.cancel(); return; } @@ -70,6 +59,5 @@ public abstract class MixinScreen { this.applyBlur(client.getRenderTickCounter().getTickDelta(true)); Blur.renderRotatedGradient(context, width, height); // Replaces the default gradient with our rotated one - } } diff --git a/common/src/main/java/eu/midnightdust/blur/mixin/MixinTitleScreen.java b/common/src/main/java/eu/midnightdust/blur/mixin/MixinTitleScreen.java new file mode 100644 index 0000000..6f87266 --- /dev/null +++ b/common/src/main/java/eu/midnightdust/blur/mixin/MixinTitleScreen.java @@ -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 = "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(delta); + if (BlurConfig.darkenTitleScreen) this.renderDarkening(context); + } + } +} diff --git a/common/src/main/java/eu/midnightdust/blur/mixin/ScreenAccessor.java b/common/src/main/java/eu/midnightdust/blur/mixin/ScreenAccessor.java deleted file mode 100644 index 68d123c..0000000 --- a/common/src/main/java/eu/midnightdust/blur/mixin/ScreenAccessor.java +++ /dev/null @@ -1,11 +0,0 @@ -package eu.midnightdust.blur.mixin; - -import net.minecraft.client.gui.screen.Screen; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Invoker; - -@Mixin(Screen.class) -public interface ScreenAccessor { - @Invoker("applyBlur") - void forceApplyBlur(float delta); -} diff --git a/common/src/main/resources/assets/blur/lang/de_de.json b/common/src/main/resources/assets/blur/lang/de_de.json index 290a84e..5925e79 100644 --- a/common/src/main/resources/assets/blur/lang/de_de.json +++ b/common/src/main/resources/assets/blur/lang/de_de.json @@ -1,8 +1,11 @@ { "blur.midnightconfig.title": "Blur+ Konfiguration", "blur.midnightconfig.category.animations": "Animationen", + "blur.midnightconfig.category.screens": "Bildschirme", "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", @@ -24,5 +27,10 @@ "blur.midnightconfig.gradientStartAlpha": "Farbverlauf-Anfangstransparenz", "blur.midnightconfig.gradientEndAlpha": "Farbverlauf-Endstransparenz", "blur.midnightconfig.gradientRotation": "Farbverlauf-Rotation", - "blur.midnightconfig.excludedScreens": "Ausgeschlossene Bildschirme" + "blur.midnightconfig.excludedScreens": "Ausgeschlossene Bildschirme", + "blur.midnightconfig._general": "⛏ Generell", + "blur.midnightconfig._advanced": "⚒ Fortgeschritten", + "blur.midnightconfig._blur": "▒ Unschärfe", + "blur.midnightconfig._gradient": "\uD83D\uDFE2 Farbverlauf", + "blur.midnightconfig._animations": "\uD83D\uDCFD Animationen" } \ No newline at end of file diff --git a/common/src/main/resources/assets/blur/lang/en_us.json b/common/src/main/resources/assets/blur/lang/en_us.json index ebc6c53..e4c56b4 100755 --- a/common/src/main/resources/assets/blur/lang/en_us.json +++ b/common/src/main/resources/assets/blur/lang/en_us.json @@ -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", @@ -18,6 +20,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", @@ -30,5 +33,10 @@ "blur.midnightconfig.forceEnabledScreens": "Force-enabled Screens", "blur.midnightconfig.forceEnabledScreens.tooltip": "Screens where the vanilla blur effect should be force-enabled\nMight not work 100% of the time", "blur.midnightconfig.forceDisabledScreens": "Force-disabled Screens", - "blur.midnightconfig.forceDisabledScreens.tooltip": "Screens where the vanilla blur effect should be force-disabled" + "blur.midnightconfig.forceDisabledScreens.tooltip": "Screens where the vanilla blur effect should be force-disabled", + "blur.midnightconfig._general": "⛏ General", + "blur.midnightconfig._advanced": "⚒ Advanced", + "blur.midnightconfig._blur": "▒ Blur", + "blur.midnightconfig._gradient": "\uD83D\uDFE2 Gradient", + "blur.midnightconfig._animations": "\uD83D\uDCFD Animations" } \ No newline at end of file diff --git a/common/src/main/resources/assets/blur/lang/es_ar.json b/common/src/main/resources/assets/blur/lang/es_ar.json new file mode 100644 index 0000000..53fda8b --- /dev/null +++ b/common/src/main/resources/assets/blur/lang/es_ar.json @@ -0,0 +1,41 @@ +{ + "blur.midnightconfig.title": "Configuración de Blur+", + "blur.midnightconfig.category.animations": "Animaciones", + "blur.midnightconfig.category.style": "Estilo", + "blur.midnightconfig.category.screens": "Pantallas", + + "blur.midnightconfig.blurContainers": "Aplicar Desenfoque a Contenedores", + "blur.midnightconfig.fadeTimeMillis": "Tiempo de Aparición (en milisegundos)", + "blur.midnightconfig.fadeOutTimeMillis": "Tiempo de Desaparición (en milisegundos)", + "blur.midnightconfig.animationCurve": "Curva de Animación", + + "blur.midnightconfig.enum.Easing.FLAT": "Plano", + "blur.midnightconfig.enum.Easing.SINE": "Seno", + "blur.midnightconfig.enum.Easing.QUAD": "Cuadrática", + "blur.midnightconfig.enum.Easing.CUBIC": "Cúbica", + "blur.midnightconfig.enum.Easing.QUART": "Cuártica", + "blur.midnightconfig.enum.Easing.QUINT": "Quíntica", + "blur.midnightconfig.enum.Easing.EXPO": "Exponencial", + "blur.midnightconfig.enum.Easing.CIRC": "Circular", + "blur.midnightconfig.enum.Easing.BACK": "Retroceso", + "blur.midnightconfig.enum.Easing.ELASTIC": "Elástica", + + "blur.midnightconfig.radius": "Radio", + "blur.midnightconfig.rainbowMode": "Modo Arcoíris \ud83c\udf08", + + "blur.midnightconfig.useGradient": "Usar Gradiente como Fondo", + "blur.midnightconfig.gradientStart": "Color Inicial del Gradiente", + "blur.midnightconfig.gradientEnd": "Color Final del Gradiente", + "blur.midnightconfig.gradientStartAlpha": "Transparencia Inicial del Gradiente", + "blur.midnightconfig.gradientEndAlpha": "Transparencia Final del Gradiente", + "blur.midnightconfig.gradientRotation": "Rotación del Gradiente", + + "blur.midnightconfig.excludedScreens": "Pantallas Excluidas", + "blur.midnightconfig.excludedScreens.tooltip": "Pantallas donde Blur+ no debería animar", + + "blur.midnightconfig.forceEnabledScreens": "Pantallas con Blur Forzado", + "blur.midnightconfig.forceEnabledScreens.tooltip": "Pantallas donde el desenfoque vanilla debería forzarse habilitado\nPuede que no funcione siempre al 100%", + + "blur.midnightconfig.forceDisabledScreens": "Pantallas con Blur Deshabilitado", + "blur.midnightconfig.forceDisabledScreens.tooltip": "Pantallas donde el desenfoque vanilla debería forzarse deshabilitado" +} diff --git a/common/src/main/resources/blur.mixins.json b/common/src/main/resources/blur.mixins.json index bdf04c5..f583583 100644 --- a/common/src/main/resources/blur.mixins.json +++ b/common/src/main/resources/blur.mixins.json @@ -4,13 +4,13 @@ "package": "eu.midnightdust.blur.mixin", "compatibilityLevel": "JAVA_21", "client": [ - "MixinScreen", - "ScreenAccessor", - "MixinHandledScreen", - "MixinMinecraftClient", + "MixinGameOptions", "MixinGameRenderer", + "MixinHandledScreen", "MixinInGameHud", - "MixinGameOptions" + "MixinMinecraftClient", + "MixinScreen", + "MixinTitleScreen" ], "injectors": { "defaultRequire": 1 diff --git a/fabric/build.gradle b/fabric/build.gradle index a78ec20..2c02ab6 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -83,7 +83,8 @@ unifiedPublishing { curseforge { token = CURSEFORGE_TOKEN id = rootProject.curseforge_id - gameVersions.addAll "Java 21", project.minecraft_version, project.supported_versions + gameVersions.addAll "Java 21", project.minecraft_version + if (project.supported_versions != "") gameVersions.addAll project.supported_versions } } @@ -93,7 +94,8 @@ unifiedPublishing { token = MODRINTH_TOKEN id = rootProject.modrinth_id version = "$rootProject.version-$project.name" - gameVersions.addAll project.minecraft_version, project.supported_versions + gameVersions.addAll project.minecraft_version + if (project.supported_versions != "") gameVersions.addAll project.supported_versions } } } diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json index a84f04c..e831a43 100755 --- a/fabric/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -1,7 +1,7 @@ { "schemaVersion": 1, "id": "blur", - "name": "Blur+ (Fabric)", + "name": "Blur+", "version": "$version", "environment": "client", "license": "MIT", @@ -22,7 +22,9 @@ "authors": [ "Motschen", "tterrag1098", - "Pyrofab", + "Pyrofab" + ], + "contributors": [ "backryun", "byquanton" ], @@ -31,6 +33,7 @@ "blur.mixins.json" ], "depends": { - "minecraft": ">=1.20.5" + "minecraft": ">=1.21", + "midnightlib": ">=1.7.5" } } diff --git a/gradle.properties b/gradle.properties index d446dd3..81d117a 100755 --- a/gradle.properties +++ b/gradle.properties @@ -8,7 +8,7 @@ yarn_mappings=1.21.1+build.3 enabled_platforms=fabric,neoforge # Mod Properties -mod_version=5.0.0-hotfix.1 +mod_version=5.2.2+1.21.1 maven_group=eu.midnightdust.blur archives_base_name=blur release_type=release @@ -19,9 +19,9 @@ 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 -midnightlib_version = 1.6.9+1.21 +midnightlib_version = 1.7.5+1.21.1 modmenu_version = 11.0.2 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index e4a5f61..e0246c0 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.2-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/neoforge/build.gradle b/neoforge/build.gradle index 7c6325b..6bf9ec2 100644 --- a/neoforge/build.gradle +++ b/neoforge/build.gradle @@ -96,7 +96,8 @@ unifiedPublishing { curseforge { token = CURSEFORGE_TOKEN id = rootProject.curseforge_id - gameVersions.addAll "Java 21", project.minecraft_version, project.supported_versions + gameVersions.addAll "Java 21", project.minecraft_version + if (project.supported_versions != "") gameVersions.addAll project.supported_versions } } @@ -106,7 +107,8 @@ unifiedPublishing { token = MODRINTH_TOKEN id = rootProject.modrinth_id version = "$rootProject.version-$project.name" - gameVersions.addAll project.minecraft_version, project.supported_versions + gameVersions.addAll project.minecraft_version + if (project.supported_versions != "") gameVersions.addAll project.supported_versions } } } 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 4f99669..862a58c 100644 --- a/neoforge/src/main/java/eu/midnightdust/blur/neoforge/BlurNeoForge.java +++ b/neoforge/src/main/java/eu/midnightdust/blur/neoforge/BlurNeoForge.java @@ -8,13 +8,13 @@ import net.neoforged.fml.common.EventBusSubscriber; import net.neoforged.fml.common.Mod; import net.neoforged.neoforge.client.event.ClientTickEvent; -@Mod(value = "blur", dist = Dist.CLIENT) +@Mod(value = Blur.MOD_ID, dist = Dist.CLIENT) public class BlurNeoForge { public BlurNeoForge() { Blur.init(); } - @EventBusSubscriber(modid = "blur", 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 e9c16bc..1059d97 100644 --- a/neoforge/src/main/resources/META-INF/neoforge.mods.toml +++ b/neoforge/src/main/resources/META-INF/neoforge.mods.toml @@ -26,6 +26,13 @@ side = "CLIENT" [[dependencies.blur]] modId = "minecraft" mandatory = true -versionRange = "[1.21,)" +versionRange = "[1.21,1.21.1]" +ordering = "NONE" +side = "CLIENT" + +[[dependencies.blur]] +modId = "midnightlib" +mandatory = true +versionRange = "[1.7.5,)" ordering = "NONE" side = "CLIENT" \ No newline at end of file