diff --git a/src/main/java/com/lambda/mixin/render/LightmapTextureManagerMixin.java b/src/main/java/com/lambda/mixin/render/LightmapTextureManagerMixin.java index 9b750296a..33b569f1a 100644 --- a/src/main/java/com/lambda/mixin/render/LightmapTextureManagerMixin.java +++ b/src/main/java/com/lambda/mixin/render/LightmapTextureManagerMixin.java @@ -39,10 +39,12 @@ public class LightmapTextureManagerMixin { @Final private GpuTexture glTexture; - @Inject(method = "update", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/profiler/Profiler;pop()V", shift = At.Shift.BEFORE)) + @Inject(method = "update", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gl/MappableRingBuffer;rotate()V", shift = At.Shift.AFTER)) private void injectUpdate(float tickProgress, CallbackInfo ci) { - if (Fullbright.INSTANCE.isEnabled() || XRay.INSTANCE.isEnabled()) { - RenderSystem.getDevice().createCommandEncoder().clearColorTexture(glTexture, ColorHelper.fullAlpha(ColorHelper.getWhite(1.0f))); + if (XRay.INSTANCE.isEnabled() || (Fullbright.INSTANCE.isEnabled() && !Fullbright.getNightVision())) { + RenderSystem.getDevice() + .createCommandEncoder() + .clearColorTexture(glTexture, ColorHelper.fullAlpha(ColorHelper.getWhite(1.0f))); } } diff --git a/src/main/kotlin/com/lambda/module/modules/render/Fullbright.kt b/src/main/kotlin/com/lambda/module/modules/render/Fullbright.kt index 09e15863c..9eb06d0b9 100644 --- a/src/main/kotlin/com/lambda/module/modules/render/Fullbright.kt +++ b/src/main/kotlin/com/lambda/module/modules/render/Fullbright.kt @@ -20,7 +20,7 @@ package com.lambda.module.modules.render import com.lambda.config.entries.Setting.Companion.onValueChange import com.lambda.context.SafeContext import com.lambda.event.events.TickEvent -import com.lambda.event.listener.SafeListener.Companion.listenOnce +import com.lambda.event.listener.SafeListener.Companion.listen import com.lambda.module.Module import com.lambda.module.tag.ModuleTag import net.minecraft.entity.effect.StatusEffectInstance @@ -31,17 +31,18 @@ object Fullbright : Module( description = "Makes everything brighter", tag = ModuleTag.RENDER, ) { - private val nightVision by setting("Night Vision", false, description = "Adds the night vision effect client-side") - .onValueChange { _, to -> setNightVision(to) } + @JvmStatic val nightVision by setting("Night Vision", false, description = "Use client-side night vision for better compatibility with shaders") + .onValueChange { _, to -> if (isEnabled) setNightVision(to) } private val instance = StatusEffectInstance(StatusEffects.NIGHT_VISION, -1, 1, false, false) init { - listenOnce { - if (nightVision && !player.hasStatusEffect(StatusEffects.NIGHT_VISION)) setNightVision(true) + onDisable { + if (nightVision && player.hasStatusEffect(StatusEffects.NIGHT_VISION)) setNightVision(false) + } - // Destroy the listener - true + listen { + if (nightVision && !player.hasStatusEffect(StatusEffects.NIGHT_VISION)) setNightVision(true) } }