From c3a0a1b8b57193c69d05af1113e3898c459352e6 Mon Sep 17 00:00:00 2001 From: Joshua Barretto Date: Wed, 8 Sep 2021 12:37:15 +0100 Subject: [PATCH] Made the camera go dark if in a filled block and not moderator --- assets/voxygen/shaders/postprocess-frag.glsl | 6 ++++++ voxygen/src/render/pipelines/mod.rs | 8 +++++++- voxygen/src/scene/mod.rs | 2 ++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/assets/voxygen/shaders/postprocess-frag.glsl b/assets/voxygen/shaders/postprocess-frag.glsl index 17b90c0895..2d478578fe 100644 --- a/assets/voxygen/shaders/postprocess-frag.glsl +++ b/assets/voxygen/shaders/postprocess-frag.glsl @@ -21,6 +21,7 @@ #include #include #include +#include layout(set = 1, binding = 0) uniform texture2D t_src_color; @@ -184,6 +185,11 @@ void main() { // float bright_color = (bright_color0 + bright_color1 + bright_color2 + bright_color3 + bright_color4) / 5.0; + if (medium.x == 2u) { + tgt_color = vec4(0, 0.005, 0.01, 1) * (1 + hash_fast(uvec3(vec3(uv * screen_res.xy / 32.0, 0)))); + return; + } + vec4 aa_color = aa_apply(t_src_color, s_src_color, uv * screen_res.xy, screen_res.xy); // Bloom diff --git a/voxygen/src/render/pipelines/mod.rs b/voxygen/src/render/pipelines/mod.rs index d4a0ee3c46..28b8277f6f 100644 --- a/voxygen/src/render/pipelines/mod.rs +++ b/voxygen/src/render/pipelines/mod.rs @@ -137,7 +137,13 @@ impl Globals { 0.0, 0.0, ], - medium: [if medium.is_liquid() { 1 } else { 0 }; 4], + medium: [if medium.is_liquid() { + 1 + } else if medium.is_filled() { + 2 + } else { + 0 + }; 4], select_pos: select_pos .map(|sp| Vec4::from(sp) + Vec4::unit_w()) .unwrap_or_else(Vec4::zero) diff --git a/voxygen/src/scene/mod.rs b/voxygen/src/scene/mod.rs index fe7aa247c5..a25e6e598b 100644 --- a/voxygen/src/scene/mod.rs +++ b/voxygen/src/scene/mod.rs @@ -644,6 +644,8 @@ impl Scene { .terrain() .get((cam_pos + focus_off).map(|e| e.floor() as i32)) .map(|b| b.kind()) + // Don't block the camera's view in solid blocks if the player is a moderator + .filter(|b| !(b.is_filled() && self.client.is_moderator())) .unwrap_or(BlockKind::Air), self.select_pos.map(|e| e - focus_off.map(|e| e as i32)), scene_data.gamma,