diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 142ef7668..0c1660e37 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,12 +14,7 @@ jobs: - name: checkout repository uses: actions/checkout@v4 - name: validate gradle wrapper - uses: gradle/wrapper-validation-action@v1 - - name: setup java - uses: actions/setup-java@v4 - with: - distribution: "temurin" - java-version: 21 + uses: gradle/actions/wrapper-validation@v4 - name: build run: | chmod +x ./gradlew diff --git a/src/main/java/me/jellysquid/mods/sodium/mixin/features/options/MixinBackgroundRenderer.java b/src/main/java/me/jellysquid/mods/sodium/mixin/features/options/MixinBackgroundRenderer.java index 3c3756d3b..dcdc17980 100644 --- a/src/main/java/me/jellysquid/mods/sodium/mixin/features/options/MixinBackgroundRenderer.java +++ b/src/main/java/me/jellysquid/mods/sodium/mixin/features/options/MixinBackgroundRenderer.java @@ -1,8 +1,10 @@ package me.jellysquid.mods.sodium.mixin.features.options; -import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.blaze3d.platform.GlStateManager; import me.jellysquid.mods.sodium.client.SodiumClientMod; import net.minecraft.client.render.BackgroundRenderer; +import org.lwjgl.opengl.GL; +import org.lwjgl.opengl.NVFogDistance; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; @@ -11,10 +13,9 @@ public abstract class MixinBackgroundRenderer { @Redirect(method = "applyFog", at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/systems/RenderSystem;setupNvFogDistance()V")) private static void redirectSetupNvFogDistance() { - if (SodiumClientMod.options().speedrun.usePlanarFog) { - return; - } else { - RenderSystem.setupNvFogDistance(); + if (GL.getCapabilities().GL_NV_fog_distance) { + int fogType = SodiumClientMod.options().speedrun.usePlanarFog ? NVFogDistance.GL_EYE_PLANE_ABSOLUTE_NV : NVFogDistance.GL_EYE_RADIAL_NV; + GlStateManager.fogi(NVFogDistance.GL_FOG_DISTANCE_MODE_NV, fogType); } } } diff --git a/src/main/java/me/jellysquid/mods/sodium/mixin/features/options/MixinInGameHud.java b/src/main/java/me/jellysquid/mods/sodium/mixin/features/options/MixinInGameHud.java index 1d4112dd4..3ed793d63 100644 --- a/src/main/java/me/jellysquid/mods/sodium/mixin/features/options/MixinInGameHud.java +++ b/src/main/java/me/jellysquid/mods/sodium/mixin/features/options/MixinInGameHud.java @@ -1,15 +1,15 @@ package me.jellysquid.mods.sodium.mixin.features.options; +import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import me.jellysquid.mods.sodium.client.SodiumClientMod; import net.minecraft.client.gui.hud.InGameHud; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; @Mixin(InGameHud.class) public class MixinInGameHud { - @Redirect(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/MinecraftClient;isFancyGraphicsOrBetter()Z")) - private boolean redirectFancyGraphicsVignette() { - return SodiumClientMod.options().quality.enableVignette; + @ModifyExpressionValue(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/MinecraftClient;isFancyGraphicsOrBetter()Z")) + private boolean redirectFancyGraphicsVignette(boolean original) { + return original && SodiumClientMod.options().quality.enableVignette; } }