diff --git a/fabric/src/main/java/com/seibel/lod/fabric/mixins/MixinFogRenderer.java b/fabric/src/main/java/com/seibel/lod/fabric/mixins/MixinFogRenderer.java new file mode 100644 index 000000000..4b3172176 --- /dev/null +++ b/fabric/src/main/java/com/seibel/lod/fabric/mixins/MixinFogRenderer.java @@ -0,0 +1,24 @@ +package com.seibel.lod.fabric.mixins; + +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; + +import com.seibel.lod.core.util.SingletonHandler; +import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton; + +import net.minecraft.client.Camera; +import net.minecraft.client.renderer.FogRenderer; +import net.minecraft.client.renderer.FogRenderer.FogMode; + +@Mixin(FogRenderer.class) +public class MixinFogRenderer { + private static final ILodConfigWrapperSingleton CONFIG = SingletonHandler.get(ILodConfigWrapperSingleton.class); + + @Inject(at = @At("RETURN"), method = "setupFog(Lnet/minecraft/client/Camera;Lnet/minecraft/client/renderer/FogRenderer$FogMode;FZ)V") + private static final void disableSetupFog(Camera camera, FogMode fogMode, float f, boolean bl, CallbackInfo callback) { + if (CONFIG.client().graphics().fogQuality().getDisableVanillaFog()) + FogRenderer.setupNoFog(); + } +} diff --git a/fabric/src/main/resources/lod.mixins.json b/fabric/src/main/resources/lod.mixins.json index b71c0db38..1f3b64437 100644 --- a/fabric/src/main/resources/lod.mixins.json +++ b/fabric/src/main/resources/lod.mixins.json @@ -11,6 +11,7 @@ "MixinMinecraft", "MixinOptionsScreen", "MixinWorldRenderer", + "MixinFogRenderer", "events.MixinClientLevel", "events.MixinMinecraft" ],