From 171cbb48d099032d7e78c51a46c374104f96f0d1 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Sat, 16 Nov 2024 09:30:02 +0300 Subject: [PATCH] fix blocks selection with semi-transparent blocks --- src/graphics/render/ChunksRenderer.cpp | 5 ++++- src/graphics/render/WorldRenderer.cpp | 9 ++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/graphics/render/ChunksRenderer.cpp b/src/graphics/render/ChunksRenderer.cpp index 9a508831..39dbb08d 100644 --- a/src/graphics/render/ChunksRenderer.cpp +++ b/src/graphics/render/ChunksRenderer.cpp @@ -210,11 +210,14 @@ void ChunksRenderer::drawChunks( visibleChunks += drawChunk(indices[i].index, camera, shader, culling); } //} - drawSortedMeshes(camera, shader); } void ChunksRenderer::drawSortedMeshes(const Camera& camera, Shader& shader) { timeutil::ScopeLogTimer log(444); + + const auto& atlas = assets.require("blocks"); + + atlas.getTexture()->bind(); std::vector entries; diff --git a/src/graphics/render/WorldRenderer.cpp b/src/graphics/render/WorldRenderer.cpp index 1ad16a62..0593305d 100644 --- a/src/graphics/render/WorldRenderer.cpp +++ b/src/graphics/render/WorldRenderer.cpp @@ -164,10 +164,18 @@ void WorldRenderer::renderLevel( particles->render(camera, delta * !pause); auto& shader = assets.require("main"); + auto& linesShader = assets.require("lines"); + setupWorldShader(shader, camera, settings, fogFactor); chunks->drawChunks(camera, shader); + if (hudVisible) { + renderLines(camera, linesShader, ctx); + } + shader.use(); + chunks->drawSortedMeshes(camera, shader); + if (!pause) { scripting::on_frontend_render(); } @@ -326,7 +334,6 @@ void WorldRenderer::draw( ctx, camera, *lineBatch, linesShader, showChunkBorders ); } - renderLines(camera, linesShader, ctx); if (player->currentCamera == player->fpCamera) { renderHands(camera, delta * !pause); }