From 91df91c3df59bde06adbca77932f4c674bf818c4 Mon Sep 17 00:00:00 2001
From: Joshua Barretto <joshua.s.barretto@gmail.com>
Date: Mon, 19 Jul 2021 03:28:52 +0100
Subject: [PATCH] Added mushroom inner bevel

---
 world/src/layer/mod.rs | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/world/src/layer/mod.rs b/world/src/layer/mod.rs
index e94ddc9a08..eb7fc50ddb 100644
--- a/world/src/layer/mod.rs
+++ b/world/src/layer/mod.rs
@@ -711,9 +711,12 @@ pub fn apply_caverns_to<R: Rng>(canvas: &mut Canvas, dynamic_rng: &mut R) {
                 let head_dist = ((rpos - Vec3::unit_z() * mushroom.stalk)
                     / Vec2::broadcast(head_radius).with_z(head_height))
                 .magnitude();
+
+                let stalk = mushroom.stalk + Lerp::lerp(head_height * 0.5, 0.0, dist / head_radius);
+
                 // Head
-                if rpos.z > mushroom.stalk
-                    && rpos.z < mushroom.stalk + head_height
+                if rpos.z > stalk
+                    && rpos.z <= mushroom.stalk + head_height
                     && dist
                         < head_radius * (1.0 - (rpos.z - mushroom.stalk) / head_height).powf(0.125)
                 {
@@ -724,7 +727,7 @@ pub fn apply_caverns_to<R: Rng>(canvas: &mut Canvas, dynamic_rng: &mut R) {
                     }
                 }
 
-                if rpos.z <= mushroom.stalk
+                if rpos.z <= mushroom.stalk + head_height - 1.0
                     && dist_sq
                         < (stalk_radius * Lerp::lerp(1.5, 0.75, rpos.z / mushroom.stalk)).powi(2)
                 {