From 39bea9a66ec53806c2a56a9c22c26d98cdfceae6 Mon Sep 17 00:00:00 2001 From: IntegratedQuantum Date: Sun, 1 Jun 2025 15:05:18 +0200 Subject: [PATCH] Fix lossy chunk compression for transparent blocks fixes #1565 --- src/server/storage.zig | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/server/storage.zig b/src/server/storage.zig index 93ef6d7a0..8e8a50fd5 100644 --- a/src/server/storage.zig +++ b/src/server/storage.zig @@ -293,8 +293,10 @@ pub const ChunkCompression = struct { // MARK: ChunkCompression for(0..chunk.chunkVolume) |i| { uncompressedData[i] = @intCast(ch.data.data.getValue(i)); if(allowLossy) { - const model = main.blocks.meshes.model(ch.data.palette[uncompressedData[i]]).model(); - if(model.allNeighborsOccluded) { + const block = ch.data.palette[uncompressedData[i]]; + const model = main.blocks.meshes.model(block).model(); + const occluder = model.allNeighborsOccluded and !block.viewThrough(); + if(occluder) { solidMask[i >> 5] |= @as(u32, 1) << @intCast(i & 31); } else { solidMask[i >> 5] &= ~(@as(u32, 1) << @intCast(i & 31));