From afbf333622620ffa2bc60e9b9e46fe5f1394e95c Mon Sep 17 00:00:00 2001 From: chelsea Date: Sun, 3 May 2026 11:58:59 -0500 Subject: [PATCH] Add subtle island terrain relief --- worldgen-c/bin/worldgen | Bin 169768 -> 169768 bytes worldgen-c/src/worldgen.c | 13 +++++++++++++ 2 files changed, 13 insertions(+) diff --git a/worldgen-c/bin/worldgen b/worldgen-c/bin/worldgen index 8adb09c34eb9a7ac5027a07ddb79c301f7f2b566..a705f9a3648e4d50cd3813a9c6ca66e7f8d64b91 100755 GIT binary patch delta 21257 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 delta 20448 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 BE@A)x diff --git a/worldgen-c/src/worldgen.c b/worldgen-c/src/worldgen.c index f69c0a6..d46b995 100644 --- a/worldgen-c/src/worldgen.c +++ b/worldgen-c/src/worldgen.c @@ -693,6 +693,19 @@ static int raw_column_height(worldgen_ctx *ctx, int x, int z) { height = height * (1.0 - plains_blend) + plains_target * plains_blend; } + double above_water = height - (double)ctx->sea_level; + if (above_water > -1.5 && above_water < 24.0) { + double island_mask = smoothstep01((above_water + 1.5) / 6.0) * (1.0 - smoothstep01((above_water - 12.0) / 12.0)); + island_mask *= 1.0 - build_flats * 0.7; + double rolling = simplex_noise2(&ctx->noise, (warp2_x + 76000) * 0.0045, (warp2_z - 76000) * 0.0045) * 3.2; + rolling += simplex_noise2(&ctx->noise, (warp2_x - 83000) * 0.013, (warp2_z + 83000) * 0.013) * 1.4; + double mound = simplex_noise2(&ctx->noise, (warp2_x + 91000) * 0.021, (warp2_z - 91000) * 0.021) * 0.5 + 0.5; + rolling += mound * mound * 2.0; + double coastal_mask = (1.0 - smoothstep01((above_water - 1.0) / 5.0)) * smoothstep01((above_water + 1.0) / 3.0); + double dune = fabs(simplex_noise2(&ctx->noise, (warp2_x - 47000) * 0.028, (warp2_z + 47000) * 0.028)) * 2.2; + height += (rolling * island_mask) + (dune * coastal_mask * (1.0 - build_flats * 0.85)); + } + return (int)height; }