From 692309029d0b8fefbb9a9980b3c0647b7bddda2a Mon Sep 17 00:00:00 2001 From: Joshua Barretto Date: Sun, 15 May 2022 16:14:03 +0100 Subject: [PATCH] Improved badlands --- world/src/column/mod.rs | 7 +++++-- world/src/lib.rs | 4 +--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/world/src/column/mod.rs b/world/src/column/mod.rs index bc4bd1f0ee..86d2b27060 100644 --- a/world/src/column/mod.rs +++ b/world/src/column/mod.rs @@ -862,6 +862,8 @@ impl<'a> Sampler<'a> for ColumnGen<'a> { } * (1.0 - near_water * 3.0).max(0.0).powi(2); let cliff_offset = cliff * cliff_height; let riverless_alt_delta = riverless_alt_delta + (cliff - 0.5) * cliff_height; + let basement_sub_alt = + sim.get_interpolated_monotone(wpos, |chunk| chunk.basement.sub(chunk.alt))?; let warp_factor = water_dist.map_or(1.0, |d| (d / 64.0).clamped(0.0, 1.0)); @@ -871,6 +873,8 @@ impl<'a> Sampler<'a> for ColumnGen<'a> { let warp_factor = warp_factor * spawn_rules.max_warp; let surface_rigidity = 1.0 - temp.max(0.0) * (1.0 - tree_density); + let surface_rigidity = + surface_rigidity.max(((basement_sub_alt + 3.0) / 1.5).clamped(0.0, 2.0)); let warp = ((marble_mid * 0.2 + marble * 0.8) * 2.0 - 1.0) * 15.0 * gradient.unwrap_or(0.0).min(1.0) @@ -879,8 +883,7 @@ impl<'a> Sampler<'a> for ColumnGen<'a> { let riverless_alt_delta = Lerp::lerp(0.0, riverless_alt_delta, warp_factor); let alt = alt + riverless_alt_delta + warp; - let basement = - alt + sim.get_interpolated_monotone(wpos, |chunk| chunk.basement.sub(chunk.alt))?; + let basement = alt + basement_sub_alt; // Adjust this to make rock placement better let rock_density = rockiness; diff --git a/world/src/lib.rs b/world/src/lib.rs index 256e64f11d..8a02605cb8 100644 --- a/world/src/lib.rs +++ b/world/src/lib.rs @@ -498,9 +498,7 @@ impl World { if rpos.is_any_negative() { return None; } else { - rpos.map(|e| e as i16).with_z( - self.sim().get_alt_approx(tree.pos).unwrap_or(0.0) as i16, - ) + rpos.map(|e| e as i16).with_z(col.alt as i16) } }, flags: lod::Flags::empty()