From 29e018cff8183872ab6400b745b338bf967d27b2 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Sat, 11 Jan 2025 20:11:29 +0300 Subject: [PATCH] fix chunk mesh refreshing --- src/graphics/render/ChunksRenderer.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/graphics/render/ChunksRenderer.cpp b/src/graphics/render/ChunksRenderer.cpp index da40d822..6e6b4bd3 100644 --- a/src/graphics/render/ChunksRenderer.cpp +++ b/src/graphics/render/ChunksRenderer.cpp @@ -135,7 +135,7 @@ const Mesh* ChunksRenderer::getOrRender( if (found == meshes.end()) { return render(chunk, important); } - if (chunk->flags.modified) { + if (chunk->flags.modified && chunk->flags.lighted) { render(chunk, important); } return found->second.mesh.get(); @@ -149,9 +149,17 @@ const Mesh* ChunksRenderer::retrieveChunk( size_t index, const Camera& camera, Shader& shader, bool culling ) { auto chunk = chunks.getChunks()[index]; - if (chunk == nullptr || !chunk->flags.lighted) { + if (chunk == nullptr) { return nullptr; } + if (!chunk->flags.lighted) { + const auto& found = meshes.find({chunk->x, chunk->z}); + if (found == meshes.end()) { + return nullptr; + } else { + return found->second.mesh.get(); + } + } float distance = glm::distance( camera.position, glm::vec3(