diff --git a/src/renderer/chunk_meshing.zig b/src/renderer/chunk_meshing.zig index 37d0efd8..9f9402e4 100644 --- a/src/renderer/chunk_meshing.zig +++ b/src/renderer/chunk_meshing.zig @@ -240,14 +240,13 @@ const PrimitiveMesh = struct { const x = (wx >> mesh.chunk.voxelSizeShift) & chunk.chunkMask; const y = (wy >> mesh.chunk.voxelSizeShift) & chunk.chunkMask; const z = (wz >> mesh.chunk.voxelSizeShift) & chunk.chunkMask; - const index = chunk.getIndex(x, y, z); return .{ - mesh.lightingData[0].data[index].load(.Unordered), - mesh.lightingData[1].data[index].load(.Unordered), - mesh.lightingData[2].data[index].load(.Unordered), - mesh.lightingData[3].data[index].load(.Unordered), - mesh.lightingData[4].data[index].load(.Unordered), - mesh.lightingData[5].data[index].load(.Unordered), + mesh.lightingData[0].getValue(x, y, z), + mesh.lightingData[1].getValue(x, y, z), + mesh.lightingData[2].getValue(x, y, z), + mesh.lightingData[3].getValue(x, y, z), + mesh.lightingData[4].getValue(x, y, z), + mesh.lightingData[5].getValue(x, y, z), }; } diff --git a/src/renderer/lighting.zig b/src/renderer/lighting.zig index e137e0ab..a460a2d8 100644 --- a/src/renderer/lighting.zig +++ b/src/renderer/lighting.zig @@ -84,6 +84,11 @@ pub const ChannelChunk = struct { entries: main.ListUnmanaged(PositionEntry), }; + pub fn getValue(self: *const ChannelChunk, x: i32, y: i32, z: i32) u8 { + const index = chunk.getIndex(x, y, z); + return self.data[index].load(.Unordered); + } + fn propagateDirect(self: *ChannelChunk, lightQueue: *main.utils.CircularBufferQueue(Entry)) void { var neighborLists: [6]main.ListUnmanaged(Entry) = .{.{}} ** 6; defer {