diff --git a/src/server/storage.zig b/src/server/storage.zig index 93ef6d7a..8e8a50fd 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));