5 Commits

Author SHA1 Message Date
Motschen
b4efd59322 Blur 3.1.0 - 1.20 & Fade Out Fix
- Update to 1.20
- Fix fade out applying to screens without blur
- Enable fade out effect by default
2023-06-10 16:42:44 +02:00
Martin Prokoph
98b398ab6c Merge pull request #74 from backryun/fabric-1.19.4
Upstream Fabric dependencys
2023-06-10 15:09:23 +02:00
Martin Prokoph
66e0c0408a Merge pull request #68 from HhiPyrene/fabric-1.19.4
zh_cn
2023-06-10 15:09:02 +02:00
backryun
11dde13801 Upstream Fabric dependencys 2023-04-28 19:47:29 +09:00
HhiPyrene
3ea75d519c Add files via upload 2023-03-26 10:57:10 +08:00
8 changed files with 31 additions and 24 deletions

View File

@@ -1,5 +1,5 @@
plugins { plugins {
id 'fabric-loom' version '1.1-SNAPSHOT' id 'fabric-loom' version '1.2-SNAPSHOT'
id 'maven-publish' id 'maven-publish'
} }

View File

@@ -3,17 +3,17 @@ org.gradle.jvmargs=-Xmx1G
# Fabric Properties # Fabric Properties
# check these on https://fabricmc.net/develop # check these on https://fabricmc.net/develop
minecraft_version=1.19.4 minecraft_version=1.20
yarn_mappings=1.19.4+build.1 yarn_mappings=1.20+build.1
loader_version=0.14.17 loader_version=0.14.21
# Mod Properties # Mod Properties
mod_version=3.0.0 mod_version=3.1.0
maven_group=com.tterrag.blur maven_group=com.tterrag.blur
archives_base_name=blur archives_base_name=blur
# Dependencies # Dependencies
# currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api # currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api
fabric_version=0.76.0+1.19.4 fabric_version=0.83.0+1.20
satin_version=1.11.0 satin_version=1.13.0
midnightlib_version=1.2.1-fabric midnightlib_version=1.4.1-fabric

View File

@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists

View File

@@ -11,6 +11,8 @@ import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.Screen;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import java.util.Objects;
public class Blur implements ClientModInitializer { public class Blur implements ClientModInitializer {
public static final String MODID = "blur"; public static final String MODID = "blur";
@@ -49,7 +51,7 @@ public class Blur implements ClientModInitializer {
doFade = false; doFade = false;
} }
prevScreen = newGui.getClass().getName(); prevScreen = newGui.getClass().getName();
} else if (newGui == null && BlurConfig.fadeOutTimeMillis > 0 && !BlurConfig.blurExclusions.contains(prevScreen)) { } else if (newGui == null && BlurConfig.fadeOutTimeMillis > 0 && !Objects.equals(prevScreen, "")) {
blur.setUniformValue("Radius", (float) BlurConfig.radius); blur.setUniformValue("Radius", (float) BlurConfig.radius);
start = System.currentTimeMillis(); start = System.currentTimeMillis();
doFade = true; doFade = true;
@@ -57,25 +59,26 @@ public class Blur implements ClientModInitializer {
screenHasBackground = false; screenHasBackground = false;
start = -1; start = -1;
doFade = true; doFade = true;
prevScreen = "";
} }
} }
} }
private static float getProgress(boolean fadeIn) { private static float getProgress(boolean fadeIn) {
float x;
if (fadeIn) { if (fadeIn) {
float x = Math.min((System.currentTimeMillis() - start) / (float) BlurConfig.fadeTimeMillis, 1); x = Math.min((System.currentTimeMillis() - start) / (float) BlurConfig.fadeTimeMillis, 1);
if (BlurConfig.ease) x *= (2 - x); // easeInCubic if (BlurConfig.ease) x *= (2 - x); // easeInCubic
return x;
} }
else { else {
float x = Math.max(1+(start - System.currentTimeMillis()) / (float) BlurConfig.fadeOutTimeMillis, 0); x = Math.max(1 + (start - System.currentTimeMillis()) / (float) BlurConfig.fadeOutTimeMillis, 0);
if (BlurConfig.ease) x *= (2 - x); // easeOutCubic if (BlurConfig.ease) x *= (2 - x); // easeOutCubic
if (x <= 0) { if (x <= 0) {
start = 0; start = 0;
screenHasBackground = false; screenHasBackground = false;
} }
return x;
} }
return x;
} }
public static int getBackgroundColor(boolean second, boolean fadeIn) { public static int getBackgroundColor(boolean second, boolean fadeIn) {

View File

@@ -21,7 +21,7 @@ public class BlurConfig extends MidnightConfig {
@Entry(category = style, min = 0, max = 5000, width = 4) @Entry(category = style, min = 0, max = 5000, width = 4)
public static int fadeTimeMillis = 200; public static int fadeTimeMillis = 200;
@Entry(category = style, min = 0, max = 5000, width = 4) @Entry(category = style, min = 0, max = 5000, width = 4)
public static int fadeOutTimeMillis = 0; public static int fadeOutTimeMillis = 200;
@Entry(category = style) @Entry(category = style)
public static boolean ease = true; public static boolean ease = true;
@Entry(category = style, isSlider = true, min = 0, max = 100) @Entry(category = style, isSlider = true, min = 0, max = 100)

View File

@@ -1,11 +1,11 @@
package com.tterrag.blur.mixin; package com.tterrag.blur.mixin;
import com.mojang.blaze3d.systems.RenderSystem;
import com.tterrag.blur.Blur; import com.tterrag.blur.Blur;
import com.tterrag.blur.config.BlurConfig; import com.tterrag.blur.config.BlurConfig;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.DrawableHelper; import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.hud.InGameHud; import net.minecraft.client.gui.hud.InGameHud;
import net.minecraft.client.util.math.MatrixStack;
import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Shadow;
@@ -14,14 +14,14 @@ import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(InGameHud.class) @Mixin(InGameHud.class)
public class MixinInGameHud extends DrawableHelper { public class MixinInGameHud {
@Shadow private int scaledWidth; @Shadow private int scaledWidth;
@Shadow private int scaledHeight; @Shadow private int scaledHeight;
@Final @Shadow private MinecraftClient client; @Final @Shadow private MinecraftClient client;
@Inject(at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/systems/RenderSystem;setShaderTexture(ILnet/minecraft/util/Identifier;)V", ordinal = 0, shift = At.Shift.BEFORE), method = "render") @Inject(at = @At("TAIL"), method = "render")
public void blur$onRender(MatrixStack matrices, float tickDelta, CallbackInfo ci) { public void blur$onRender(DrawContext context, float tickDelta, CallbackInfo ci) {
if (client.currentScreen == null && client.world != null && Blur.start > 0 && !BlurConfig.blurExclusions.contains(Blur.prevScreen) && Blur.screenHasBackground) { if (client.currentScreen == null && client.world != null && Blur.start > 0 && !BlurConfig.blurExclusions.contains(Blur.prevScreen) && Blur.screenHasBackground) {
fillGradient(matrices, 0, 0, this.scaledWidth, this.scaledHeight, Blur.getBackgroundColor(false, false), Blur.getBackgroundColor(true, false)); context.fillGradient(0, 0, this.scaledWidth, this.scaledHeight, Blur.getBackgroundColor(false, false), Blur.getBackgroundColor(true, false));
} }
} }
} }

View File

@@ -1,6 +1,7 @@
package com.tterrag.blur.mixin; package com.tterrag.blur.mixin;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@@ -32,7 +33,7 @@ public abstract class MixinScreen {
} }
} }
@Inject(at = @At("HEAD"), method = "renderBackground") @Inject(at = @At("HEAD"), method = "renderBackground")
public void blur$getBackgroundEnabled(MatrixStack matrices, CallbackInfo ci) { public void blur$getBackgroundEnabled(DrawContext context, CallbackInfo ci) {
if (this.client != null && this.client.world != null) { if (this.client != null && this.client.world != null) {
Blur.screenHasBackground = true; Blur.screenHasBackground = true;
} }

View File

@@ -1,7 +1,10 @@
{ {
"blur.midnightconfig.title": "模糊配置", "blur.midnightconfig.title": "模糊 (Blur) 配置",
"blur.midnightconfig.category.style": "样式",
"blur.midnightconfig.category.screens": "屏幕",
"blur.midnightconfig.blurExclusions": "模糊排除", "blur.midnightconfig.blurExclusions": "模糊排除",
"blur.midnightconfig.fadeTimeMillis": "淡入时间(毫秒)", "blur.midnightconfig.fadeTimeMillis": "淡入时间毫秒",
"blur.midnightconfig.fadeOutTimeMillis": "淡出时间(毫秒)",
"blur.midnightconfig.ease": "简单动画", "blur.midnightconfig.ease": "简单动画",
"blur.midnightconfig.radius": "半径", "blur.midnightconfig.radius": "半径",
"blur.midnightconfig.gradientStart": "渐变起始色", "blur.midnightconfig.gradientStart": "渐变起始色",