Skip to content

Commit 1074f46

Browse files
authored
Fix: Fullbright night vision setting improper state handling (#333)
1 parent fd336fa commit 1074f46

2 files changed

Lines changed: 13 additions & 10 deletions

File tree

‎src/main/java/com/lambda/mixin/render/LightmapTextureManagerMixin.java‎

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,12 @@ public class LightmapTextureManagerMixin {
3939
@Final
4040
private GpuTexture glTexture;
4141

42-
@Inject(method = "update", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/profiler/Profiler;pop()V", shift = At.Shift.BEFORE))
42+
@Inject(method = "update", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gl/MappableRingBuffer;rotate()V", shift = At.Shift.AFTER))
4343
private void injectUpdate(float tickProgress, CallbackInfo ci) {
44-
if (Fullbright.INSTANCE.isEnabled() || XRay.INSTANCE.isEnabled()) {
45-
RenderSystem.getDevice().createCommandEncoder().clearColorTexture(glTexture, ColorHelper.fullAlpha(ColorHelper.getWhite(1.0f)));
44+
if (XRay.INSTANCE.isEnabled() || (Fullbright.INSTANCE.isEnabled() && !Fullbright.getNightVision())) {
45+
RenderSystem.getDevice()
46+
.createCommandEncoder()
47+
.clearColorTexture(glTexture, ColorHelper.fullAlpha(ColorHelper.getWhite(1.0f)));
4648
}
4749
}
4850

‎src/main/kotlin/com/lambda/module/modules/render/Fullbright.kt‎

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ package com.lambda.module.modules.render
2020
import com.lambda.config.entries.Setting.Companion.onValueChange
2121
import com.lambda.context.SafeContext
2222
import com.lambda.event.events.TickEvent
23-
import com.lambda.event.listener.SafeListener.Companion.listenOnce
23+
import com.lambda.event.listener.SafeListener.Companion.listen
2424
import com.lambda.module.Module
2525
import com.lambda.module.tag.ModuleTag
2626
import net.minecraft.entity.effect.StatusEffectInstance
@@ -31,17 +31,18 @@ object Fullbright : Module(
3131
description = "Makes everything brighter",
3232
tag = ModuleTag.RENDER,
3333
) {
34-
private val nightVision by setting("Night Vision", false, description = "Adds the night vision effect client-side")
35-
.onValueChange { _, to -> setNightVision(to) }
34+
@JvmStatic val nightVision by setting("Night Vision", false, description = "Use client-side night vision for better compatibility with shaders")
35+
.onValueChange { _, to -> if (isEnabled) setNightVision(to) }
3636

3737
private val instance = StatusEffectInstance(StatusEffects.NIGHT_VISION, -1, 1, false, false)
3838

3939
init {
40-
listenOnce<TickEvent.Pre> {
41-
if (nightVision && !player.hasStatusEffect(StatusEffects.NIGHT_VISION)) setNightVision(true)
40+
onDisable {
41+
if (nightVision && player.hasStatusEffect(StatusEffects.NIGHT_VISION)) setNightVision(false)
42+
}
4243

43-
// Destroy the listener
44-
true
44+
listen<TickEvent.Pre> {
45+
if (nightVision && !player.hasStatusEffect(StatusEffects.NIGHT_VISION)) setNightVision(true)
4546
}
4647
}
4748

0 commit comments

Comments
 (0)