mirror of
https://github.com/Motschen/Blur.git
synced 2025-12-16 11:45:09 +01:00
Compare commits
1 Commits
plus-1.21.
...
plus-1.21.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6c7c81b462 |
@@ -3,7 +3,7 @@ import groovy.json.JsonOutput
|
|||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id "architectury-plugin" version "3.4-SNAPSHOT"
|
id "architectury-plugin" version "3.4-SNAPSHOT"
|
||||||
id "dev.architectury.loom" version "1.10-SNAPSHOT" apply false
|
id "dev.architectury.loom" version "1.11-SNAPSHOT" apply false
|
||||||
id "me.shedaniel.unified-publishing" version "0.1.+" apply false
|
id "me.shedaniel.unified-publishing" version "0.1.+" apply false
|
||||||
id 'com.github.johnrengelman.shadow' version '8.1.1' apply false
|
id 'com.github.johnrengelman.shadow' version '8.1.1' apply false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import eu.midnightdust.lib.util.MidnightColorUtil;
|
|||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
import net.minecraft.client.gui.DrawContext;
|
import net.minecraft.client.gui.DrawContext;
|
||||||
import org.joml.Math;
|
import org.joml.Math;
|
||||||
import org.joml.Matrix4f;
|
import org.joml.Matrix3x2f;
|
||||||
|
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.lang.Double;
|
import java.lang.Double;
|
||||||
@@ -32,8 +32,7 @@ public class Blur {
|
|||||||
}
|
}
|
||||||
public static void renderFadeout(DrawContext context, int width, int height, MinecraftClient client) {
|
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
|
if (BlurInfo.start >= 0 && !BlurInfo.screenHasBlur && BlurInfo.prevScreenHasBlur) { // Fade out in non-blurred screens
|
||||||
client.gameRenderer.renderBlur(client.getRenderTickCounter().getTickDelta(true));
|
client.gameRenderer.renderBlur();
|
||||||
client.getFramebuffer().beginWrite(false);
|
|
||||||
|
|
||||||
if (BlurInfo.prevScreenHasBackground && BlurConfig.useGradient) Blur.renderRotatedGradient(context, width, height);
|
if (BlurInfo.prevScreenHasBackground && BlurConfig.useGradient) Blur.renderRotatedGradient(context, width, height);
|
||||||
}
|
}
|
||||||
@@ -93,13 +92,12 @@ public class Blur {
|
|||||||
float diagonal = Math.sqrt((float) width*width + height*height);
|
float diagonal = Math.sqrt((float) width*width + height*height);
|
||||||
int smallestDimension = Math.min(width, height);
|
int smallestDimension = Math.min(width, height);
|
||||||
|
|
||||||
context.getMatrices().push();
|
context.getMatrices().pushMatrix();
|
||||||
Matrix4f posMatrix = context.getMatrices().peek().getPositionMatrix();
|
Matrix3x2f posMatrix = context.getMatrices();
|
||||||
posMatrix.rotationZ(Math.toRadians(getRotation()));
|
posMatrix.rotate(Math.toRadians(getRotation()));
|
||||||
posMatrix.setTranslation(width / 2f, height / 2f, -1000); // Make the gradient's center the pivot point
|
posMatrix.setTranslation(width / 2f, height / 2f); // Make the gradient's center the pivot point
|
||||||
posMatrix.scale(diagonal / smallestDimension); // Scales the gradient to the maximum diagonal value needed
|
posMatrix.scale(diagonal / smallestDimension); // Scales the gradient to the maximum diagonal value needed
|
||||||
context.fillGradient(-width / 2, -height / 2, width / 2, height / 2, Blur.getBackgroundColor(false), Blur.getBackgroundColor(true)); // Actually draw the gradient
|
context.fillGradient(-width / 2, -height / 2, width / 2, height / 2, Blur.getBackgroundColor(false), Blur.getBackgroundColor(true)); // Actually draw the gradient
|
||||||
posMatrix.rotationZ(0);
|
context.getMatrices().popMatrix();
|
||||||
context.getMatrices().pop();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package eu.midnightdust.blur.config;
|
|||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import eu.midnightdust.blur.Blur;
|
import eu.midnightdust.blur.Blur;
|
||||||
import eu.midnightdust.lib.config.MidnightConfig;
|
import eu.midnightdust.lib.config.*;
|
||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
import net.minecraft.client.gui.widget.SliderWidget;
|
import net.minecraft.client.gui.widget.SliderWidget;
|
||||||
import net.minecraft.client.gui.widget.TextIconButtonWidget;
|
import net.minecraft.client.gui.widget.TextIconButtonWidget;
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ public abstract class MixinGameOptions {
|
|||||||
@Shadow @Final private SimpleOption<Integer> menuBackgroundBlurriness;
|
@Shadow @Final private SimpleOption<Integer> menuBackgroundBlurriness;
|
||||||
@Shadow @Final private SimpleOption<Double> chatLineSpacing;
|
@Shadow @Final private SimpleOption<Double> chatLineSpacing;
|
||||||
|
|
||||||
@Redirect(method = "<init>", at = @At(value = "NEW", target = "net/minecraft/client/option/SimpleOption$ValidatingIntSliderCallbacks", ordinal = 2))
|
@Redirect(method = "<init>", at = @At(value = "NEW", target = "net/minecraft/client/option/SimpleOption$ValidatingIntSliderCallbacks", ordinal = 3))
|
||||||
private SimpleOption.ValidatingIntSliderCallbacks blur$increaseMaxBlurriness(int minInclusive, int maxInclusive) {
|
private SimpleOption.ValidatingIntSliderCallbacks blur$increaseMaxBlurriness(int minInclusive, int maxInclusive) {
|
||||||
if (this.menuBackgroundBlurriness == null && this.chatLineSpacing != null)
|
if (this.menuBackgroundBlurriness == null && this.chatLineSpacing != null)
|
||||||
return new SimpleOption.ValidatingIntSliderCallbacks(minInclusive, 20);
|
return new SimpleOption.ValidatingIntSliderCallbacks(minInclusive, 20);
|
||||||
|
|||||||
@@ -1,18 +1,21 @@
|
|||||||
package eu.midnightdust.blur.mixin;
|
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.Blur;
|
||||||
import eu.midnightdust.blur.BlurInfo;
|
import eu.midnightdust.blur.BlurInfo;
|
||||||
|
import net.minecraft.client.option.GameOptions;
|
||||||
import net.minecraft.client.render.GameRenderer;
|
import net.minecraft.client.render.GameRenderer;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
import org.spongepowered.asm.mixin.injection.ModifyVariable;
|
|
||||||
|
|
||||||
@Mixin(GameRenderer.class)
|
@Mixin(GameRenderer.class)
|
||||||
public class MixinGameRenderer {
|
public class MixinGameRenderer {
|
||||||
@ModifyVariable(method = "renderBlur", at = @At("STORE"), ordinal = 1)
|
@WrapOperation(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/option/GameOptions;getMenuBackgroundBlurrinessValue()I"))
|
||||||
private float blur$modifyRadius(float radius) { // Modify the radius based on the animation progress
|
private int blur$modifyRadius(GameOptions instance, Operation<Integer> original) {
|
||||||
|
int radius = instance.getMenuBackgroundBlurrinessValue();
|
||||||
if (!BlurInfo.screenChanged && BlurInfo.start >= 0) // Only update the progress after all tests have been completed
|
if (!BlurInfo.screenChanged && BlurInfo.start >= 0) // Only update the progress after all tests have been completed
|
||||||
Blur.updateProgress(BlurInfo.screenHasBlur);
|
Blur.updateProgress(BlurInfo.screenHasBlur);
|
||||||
return radius * BlurInfo.progress;
|
return (int) (radius * BlurInfo.progress);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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))
|
@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 tickDelta, CallbackInfo ci) { // Applies the blur effect in containers (Inventory, Chest, etc.)
|
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(tickDelta);
|
if (BlurConfig.blurContainers) this.applyBlur(context);
|
||||||
}
|
}
|
||||||
@Inject(at = @At("HEAD"), method = "render")
|
@Inject(at = @At("HEAD"), method = "render")
|
||||||
public void blur$processScreenChange(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci) {
|
public void blur$processScreenChange(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci) {
|
||||||
|
|||||||
@@ -22,8 +22,7 @@ public class MixinInGameHud {
|
|||||||
if (client.currentScreen == null && client.world != null && BlurInfo.start >= 0 && BlurInfo.prevScreenHasBlur) {
|
if (client.currentScreen == null && client.world != null && BlurInfo.start >= 0 && BlurInfo.prevScreenHasBlur) {
|
||||||
BlurInfo.doTest = false;
|
BlurInfo.doTest = false;
|
||||||
BlurInfo.screenChanged = false;
|
BlurInfo.screenChanged = false;
|
||||||
this.client.gameRenderer.renderBlur(tickCounter.getTickDelta(true));
|
context.applyBlur();
|
||||||
this.client.getFramebuffer().beginWrite(false);
|
|
||||||
|
|
||||||
if (BlurInfo.prevScreenHasBackground) Blur.renderRotatedGradient(context, client.getWindow().getScaledWidth(), client.getWindow().getScaledHeight());
|
if (BlurInfo.prevScreenHasBackground) Blur.renderRotatedGradient(context, client.getWindow().getScaledWidth(), client.getWindow().getScaledHeight());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,13 +26,14 @@ public abstract class MixinScreen {
|
|||||||
@Shadow protected MinecraftClient client;
|
@Shadow protected MinecraftClient client;
|
||||||
@Shadow public int width;
|
@Shadow public int width;
|
||||||
@Shadow public int height;
|
@Shadow public int height;
|
||||||
@Shadow protected abstract void applyBlur(float delta);
|
@Shadow protected abstract void applyBlur(DrawContext context);
|
||||||
|
|
||||||
@Inject(at = @At("HEAD"), method = "render")
|
@Inject(at = @At("HEAD"), method = "render")
|
||||||
public void blur$processScreenChange(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci) {
|
public void blur$processScreenChange(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci) {
|
||||||
Blur.onRender();
|
Blur.onRender();
|
||||||
Blur.renderFadeout(context, width, height, client);
|
Blur.renderFadeout(context, width, height, client);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Inject(at = @At("HEAD"), method = "applyBlur", cancellable = true)
|
@Inject(at = @At("HEAD"), method = "applyBlur", cancellable = true)
|
||||||
public void blur$getBlurEnabled(CallbackInfo ci) {
|
public void blur$getBlurEnabled(CallbackInfo ci) {
|
||||||
if (BlurConfig.forceDisabledScreens.contains(this.getClass().getCanonicalName())) {
|
if (BlurConfig.forceDisabledScreens.contains(this.getClass().getCanonicalName())) {
|
||||||
@@ -41,6 +42,7 @@ public abstract class MixinScreen {
|
|||||||
if (!BlurConfig.excludedScreens.contains(this.getClass().getCanonicalName()))
|
if (!BlurConfig.excludedScreens.contains(this.getClass().getCanonicalName()))
|
||||||
BlurInfo.screenHasBlur = true; // Test if the screen has blur
|
BlurInfo.screenHasBlur = true; // Test if the screen has blur
|
||||||
}
|
}
|
||||||
|
|
||||||
@WrapOperation(at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/Screen;renderBackgroundTexture(Lnet/minecraft/client/gui/DrawContext;Lnet/minecraft/util/Identifier;IIFFII)V"), method = "renderDarkening(Lnet/minecraft/client/gui/DrawContext;IIII)V")
|
@WrapOperation(at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/Screen;renderBackgroundTexture(Lnet/minecraft/client/gui/DrawContext;Lnet/minecraft/util/Identifier;IIFFII)V"), method = "renderDarkening(Lnet/minecraft/client/gui/DrawContext;IIII)V")
|
||||||
private void blur$applyGradient(DrawContext context, Identifier texture, int x, int y, float u, float v, int width, int height, Operation<Void> original) {
|
private void blur$applyGradient(DrawContext context, Identifier texture, int x, int y, float u, float v, int width, int height, Operation<Void> original) {
|
||||||
if (BlurConfig.useGradient) {
|
if (BlurConfig.useGradient) {
|
||||||
@@ -56,7 +58,7 @@ public abstract class MixinScreen {
|
|||||||
private void blur$renderGradient(DrawContext context) {
|
private void blur$renderGradient(DrawContext context) {
|
||||||
BlurInfo.screenHasBackground = true; // Test if the screen has a background
|
BlurInfo.screenHasBackground = true; // Test if the screen has a background
|
||||||
if (BlurConfig.forceEnabledScreens.contains(this.getClass().getCanonicalName()))
|
if (BlurConfig.forceEnabledScreens.contains(this.getClass().getCanonicalName()))
|
||||||
this.applyBlur(client.getRenderTickCounter().getTickDelta(true));
|
this.applyBlur(context);
|
||||||
|
|
||||||
Blur.renderRotatedGradient(context, width, height); // Replaces the default gradient with our rotated one
|
Blur.renderRotatedGradient(context, width, height); // Replaces the default gradient with our rotated one
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,11 +17,11 @@ public abstract class MixinTitleScreen extends Screen {
|
|||||||
super(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))
|
@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 delta, CallbackInfo ci) {
|
private void blur$renderTitleBlur(DrawContext context, int mouseX, int mouseY, float deltaTicks, CallbackInfo ci) {
|
||||||
if (BlurConfig.blurTitleScreen) {
|
if (BlurConfig.blurTitleScreen) {
|
||||||
Blur.updateProgress(true);
|
Blur.updateProgress(true);
|
||||||
this.applyBlur(delta);
|
this.applyBlur(context);
|
||||||
if (BlurConfig.darkenTitleScreen) this.renderDarkening(context);
|
if (BlurConfig.darkenTitleScreen) this.renderDarkening(context);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
"blur.mixins.json"
|
"blur.mixins.json"
|
||||||
],
|
],
|
||||||
"depends": {
|
"depends": {
|
||||||
"minecraft": ">=1.21",
|
"minecraft": ">=1.21.2",
|
||||||
"midnightlib": ">=1.7.5"
|
"midnightlib": ">=1.7.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,13 +2,13 @@
|
|||||||
org.gradle.jvmargs=-Xmx2G
|
org.gradle.jvmargs=-Xmx2G
|
||||||
org.gradle.parallel=true
|
org.gradle.parallel=true
|
||||||
|
|
||||||
minecraft_version=1.21.1
|
minecraft_version=1.21.9
|
||||||
supported_versions=1.21
|
supported_versions=1.21.10
|
||||||
yarn_mappings=1.21.1+build.3
|
yarn_mappings=1.21.9+build.1
|
||||||
enabled_platforms=fabric,neoforge
|
enabled_platforms=fabric,neoforge
|
||||||
|
|
||||||
# Mod Properties
|
# Mod Properties
|
||||||
mod_version=5.2.2+1.21.1
|
mod_version=5.2.3
|
||||||
maven_group=eu.midnightdust.blur
|
maven_group=eu.midnightdust.blur
|
||||||
archives_base_name=blur
|
archives_base_name=blur
|
||||||
release_type=release
|
release_type=release
|
||||||
@@ -16,12 +16,12 @@ curseforge_id=393563
|
|||||||
modrinth_id=NK39zBp2
|
modrinth_id=NK39zBp2
|
||||||
|
|
||||||
# Modloaders
|
# Modloaders
|
||||||
fabric_loader_version=0.16.13
|
fabric_loader_version=0.17.2
|
||||||
fabric_api_version=0.115.4+1.21.1
|
fabric_api_version=0.134.0+1.21.9
|
||||||
|
|
||||||
neoforge_version=21.1.192
|
neoforge_version=21.9.11-beta
|
||||||
yarn_mappings_patch_neoforge_version = 1.21+build.4
|
yarn_mappings_patch_neoforge_version = 1.21+build.4
|
||||||
|
|
||||||
# Libraries
|
# Libraries
|
||||||
midnightlib_version = 1.7.5+1.21.1
|
midnightlib_version = 1.8.3+1.21.9
|
||||||
modmenu_version = 11.0.2
|
modmenu_version = 11.0.2
|
||||||
|
|||||||
@@ -26,13 +26,13 @@ side = "CLIENT"
|
|||||||
[[dependencies.blur]]
|
[[dependencies.blur]]
|
||||||
modId = "minecraft"
|
modId = "minecraft"
|
||||||
mandatory = true
|
mandatory = true
|
||||||
versionRange = "[1.21,1.21.1]"
|
versionRange = "[1.21.2,)"
|
||||||
ordering = "NONE"
|
ordering = "NONE"
|
||||||
side = "CLIENT"
|
side = "CLIENT"
|
||||||
|
|
||||||
[[dependencies.blur]]
|
[[dependencies.blur]]
|
||||||
modId = "midnightlib"
|
modId = "midnightlib"
|
||||||
mandatory = true
|
mandatory = true
|
||||||
versionRange = "[1.7.5,)"
|
versionRange = "[1.7.3,)"
|
||||||
ordering = "NONE"
|
ordering = "NONE"
|
||||||
side = "CLIENT"
|
side = "CLIENT"
|
||||||
Reference in New Issue
Block a user