From fc0563849024ab9113440a7ba8469bab55abe38a Mon Sep 17 00:00:00 2001 From: Joshua Barretto Date: Thu, 9 Feb 2023 22:36:24 +0000 Subject: [PATCH] Fix rain in caves --- voxygen/src/render/renderer/drawer.rs | 14 ++++++++------ voxygen/src/scene/terrain.rs | 4 ++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/voxygen/src/render/renderer/drawer.rs b/voxygen/src/render/renderer/drawer.rs index 0a5ebab6e2..f248b5fe50 100644 --- a/voxygen/src/render/renderer/drawer.rs +++ b/voxygen/src/render/renderer/drawer.rs @@ -795,17 +795,19 @@ impl<'pass_ref, 'pass: 'pass_ref> TerrainShadowDrawer<'pass_ref, 'pass> { model: &'data Model, locals: &'data terrain::BoundLocals, alt_indices: &'data crate::scene::terrain::AltIndices, - is_underground: bool, + is_underground: Option, ) { // Don't render anything if there's nothing to render! - if is_underground || alt_indices.deep_end == model.len() { + if is_underground == Some(true) + || (alt_indices.deep_end == model.len() && is_underground == Some(false)) + { return; } - let submodel = if is_underground { - model.submodel(0..alt_indices.underground_end as u32) - } else { - model.submodel(alt_indices.deep_end as u32..model.len() as u32) + let submodel = match is_underground { + Some(true) => model.submodel(0..alt_indices.underground_end as u32), + Some(false) => model.submodel(alt_indices.deep_end as u32..model.len() as u32), + None => model.submodel(0..model.len() as u32), }; self.render_pass.set_bind_group(1, &locals.bind_group, &[]); diff --git a/voxygen/src/scene/terrain.rs b/voxygen/src/scene/terrain.rs index b29141d383..07ec8e26b5 100644 --- a/voxygen/src/scene/terrain.rs +++ b/voxygen/src/scene/terrain.rs @@ -1566,7 +1566,7 @@ impl Terrain { )) }) .for_each(|(model, locals, alt_indices)| { - drawer.draw(model, locals, alt_indices, is_underground) + drawer.draw(model, locals, alt_indices, Some(is_underground)) }); } @@ -1596,7 +1596,7 @@ impl Terrain { &chunk.locals, &chunk.alt_indices, ))) - .for_each(|(model, locals, alt_indices)| drawer.draw(model, locals, alt_indices, false)); + .for_each(|(model, locals, alt_indices)| drawer.draw(model, locals, alt_indices, None)); } pub fn chunks_for_point_shadows(