Posted January 11, 20232 yr I'm playing around with changing the client brightness of specific chunks by modifying shading functions with mixins. I've got this working properly and I set the affected chunks as dirty whenever their brightness is changed so it updates automatically. Note that this is purely clientside as I am not changing block light values, only the rendering functions. However, there are often lines at the edges of the chunks with the original brightness. This only happens when smooth lighting is enabled. For example, when I change chunks from full brightness to dark, I get effects like this left over: These are removed when I place or destroy a block in the chunk, however, they sometimes reappear when the chunk is rerendered, even when just moving it out of the view frustum by turning around. How can I trigger a lighting update in code that I can run whenever the chunk is rendered? This is what I've tried so far after reading ClientLevel.setBlock() but it doesn't seem to do anything. MC.level.getProfiler().push("queueCheckLight"); MC.level.getChunkSource().getLightEngine().checkBlock(MC.player.getOnPos()); MC.level.getProfiler().pop(); MC.level.markAndNotifyBlock(MC.player.getOnPos(), (LevelChunk) MC.level.getChunk(MC.player.getOnPos()), Blocks.AIR.defaultBlockState(), Blocks.DIRT.defaultBlockState(), 3, 512);
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.