From 5b5f781095b94154e4cd740187cb683ea50de8dd Mon Sep 17 00:00:00 2001 From: RudideC Date: Sat, 17 Jan 2026 00:24:39 +0100 Subject: [PATCH] nofog mod you can customise if you want to be able to see through liquids, but only lava and powdered snow work (not water) --- .../org/saturnclient/modules/ModManager.java | 3 +- .../org/saturnclient/modules/mods/NoFog.java | 39 ++++++++++++++++++ .../mods/mixins/BackgroundRendererMixin.java | 33 +++++++++++++++ .../saturnclient/textures/gui/mod/nofog.png | Bin 0 -> 282 bytes src/main/resources/mods.mixins.json | 3 +- 5 files changed, 76 insertions(+), 2 deletions(-) create mode 100644 src/main/java/org/saturnclient/modules/mods/NoFog.java create mode 100644 src/main/java/org/saturnclient/modules/mods/mixins/BackgroundRendererMixin.java create mode 100644 src/main/resources/assets/saturnclient/textures/gui/mod/nofog.png diff --git a/src/main/java/org/saturnclient/modules/ModManager.java b/src/main/java/org/saturnclient/modules/ModManager.java index 42b2d25..294b5c2 100644 --- a/src/main/java/org/saturnclient/modules/ModManager.java +++ b/src/main/java/org/saturnclient/modules/ModManager.java @@ -17,7 +17,8 @@ public class ModManager { new Coordinates(), new Freelook(), new Keystrokes(), - new Fullbright() + new Fullbright(), + new NoFog() }; public static void init() { diff --git a/src/main/java/org/saturnclient/modules/mods/NoFog.java b/src/main/java/org/saturnclient/modules/mods/NoFog.java new file mode 100644 index 0000000..14c3ace --- /dev/null +++ b/src/main/java/org/saturnclient/modules/mods/NoFog.java @@ -0,0 +1,39 @@ +package org.saturnclient.modules.mods; + +import org.saturnclient.modules.Module; +import org.saturnclient.modules.ModuleDetails; +import org.saturnclient.saturnclient.config.Property; + +public class NoFog extends Module { + private static Property enabled = Property.bool(false); + private static Property liquids = Property.bool(false); + + public NoFog() { + super( + new ModuleDetails("No Fog", "nofog") + .description("Stops fog from rendering") + .tags("Camera") + .version("v0.1.0"), + enabled.named("Enabled"), + liquids.named("See through liquids")); + } + + @Override + public boolean isEnabled() { + return enabled.value; + } + + @Override + public void onEnabled(boolean e) { + enabled.value = e; + } + + // static for the mixin + public static boolean isActive() { + return enabled.value; + } + + public static boolean liquids() { + return liquids.value; + } +} diff --git a/src/main/java/org/saturnclient/modules/mods/mixins/BackgroundRendererMixin.java b/src/main/java/org/saturnclient/modules/mods/mixins/BackgroundRendererMixin.java new file mode 100644 index 0000000..fd354f1 --- /dev/null +++ b/src/main/java/org/saturnclient/modules/mods/mixins/BackgroundRendererMixin.java @@ -0,0 +1,33 @@ +package org.saturnclient.modules.mods.mixins; + +import net.minecraft.client.render.BackgroundRenderer; + +import org.saturnclient.modules.mods.NoFog; +import net.minecraft.entity.Entity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.ModifyVariable; +import org.spongepowered.asm.mixin.injection.Redirect; + +@Mixin(BackgroundRenderer.class) +public class BackgroundRendererMixin { + + @ModifyVariable(method = "applyFog", at = @At("HEAD"), ordinal = 0, argsOnly = true) + private static float modifyFogStart(float viewDistance) { + if (NoFog.isActive()) { + return Float.MAX_VALUE; + } + return viewDistance; + } + // liquids + @Redirect( + method = "applyFog", + at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;isSpectator()Z") + ) + private static boolean redirectIsSpectator(Entity entity) { + if (NoFog.isActive() && NoFog.liquids()) { + return true; // pretend to be spectator + } + return entity.isSpectator(); + } +} diff --git a/src/main/resources/assets/saturnclient/textures/gui/mod/nofog.png b/src/main/resources/assets/saturnclient/textures/gui/mod/nofog.png new file mode 100644 index 0000000000000000000000000000000000000000..d7dc168035cdec9a615b34d443177d2f2bf4cdc6 GIT binary patch literal 282 zcmV+#0p