diff --git a/game/client/src/main/java/net/minecraft/client/render/LightingCache.java b/game/client/src/main/java/net/minecraft/client/render/LightingCache.java index a737c6858..878879a66 100644 --- a/game/client/src/main/java/net/minecraft/client/render/LightingCache.java +++ b/game/client/src/main/java/net/minecraft/client/render/LightingCache.java @@ -55,6 +55,10 @@ final public class LightingCache { } public float getBrightness(int relX, int relY, int relZ) { + relX = MathHelper.clamp(relX, -CACHE_RANGE, CACHE_RANGE); + relY = MathHelper.clamp(relY, -CACHE_RANGE, CACHE_RANGE); + relZ = MathHelper.clamp(relZ, -CACHE_RANGE, CACHE_RANGE); + int index = (relX + CACHE_RANGE) * CACHE_SIZE * CACHE_SIZE + (relY + CACHE_RANGE) * CACHE_SIZE + (relZ + CACHE_RANGE); if (!bitGet(this.brightnessCached, index)) { @@ -66,6 +70,10 @@ final public class LightingCache { } public boolean getOpacity(int relX, int relY, int relZ) { + relX = MathHelper.clamp(relX, -CACHE_RANGE, CACHE_RANGE); + relY = MathHelper.clamp(relY, -CACHE_RANGE, CACHE_RANGE); + relZ = MathHelper.clamp(relZ, -CACHE_RANGE, CACHE_RANGE); + int index = (relX + CACHE_RANGE) * CACHE_SIZE * CACHE_SIZE + (relY + CACHE_RANGE) * CACHE_SIZE + (relZ + CACHE_RANGE); if (!bitGet(this.opacityCached, index)) { this.opacityValue = bitSetState(this.opacityValue, index, this.access.getBlockType(this.offset.add(relX, relY, relZ, this.queryPos)).solid());