From aed76c3b1ba792918bd93d6a19355ae0ea29bcb0 Mon Sep 17 00:00:00 2001 From: chelsea Date: Sun, 3 May 2026 01:22:38 -0500 Subject: [PATCH] Add dead sequoias and align tower walks --- worldgen-c/bin/worldgen | Bin 165512 -> 165560 bytes worldgen-c/src/worldgen.c | 29 ++++++++++++++++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/worldgen-c/bin/worldgen b/worldgen-c/bin/worldgen index 1f5952898db2b0e4c3d25291fe01e6c9c644a9cb..d74e9c9ed632764bcb9bb6a317840efc05596365 100755 GIT binary patch delta 29699 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 diff --git a/worldgen-c/src/worldgen.c b/worldgen-c/src/worldgen.c index 82598ef..8416b3d 100644 --- a/worldgen-c/src/worldgen.c +++ b/worldgen-c/src/worldgen.c @@ -1598,6 +1598,33 @@ static void build_redwood_titan(worldgen_ctx *ctx, int x, int y, int z, int heig {1, 0}, {-1, 0}, {0, 1}, {0, -1}, {1, 1}, {1, -1}, {-1, 1}, {-1, -1} }; + if (rng_next_f64(rng) < 0.10) { + int snag_height = core_height - rng_range_inclusive(rng, 4, 10); + if (snag_height < 22) snag_height = 22; + int taper_start = snag_height - 5; + for (int dy = 0; dy < snag_height; ++dy) { + int radius = (dy >= taper_start) ? 0 : 1; + for (int dx = -radius; dx <= radius; ++dx) { + for (int dz = -radius; dz <= radius; ++dz) { + if (radius == 1 && abs(dx) == 1 && abs(dz) == 1 && dy > 10 && (dy % 3) == 0) continue; + block_list_push(out, x + dx, y + dy, z + dz, (uint16_t)arch->log_block); + } + } + if (dy > 8 && dy < snag_height - 4 && (dy % 7) == 0) { + int dir = (dy / 7 + rng_range_inclusive(rng, 0, 3)) & 7; + int branch_log = redwood_axis_log(arch->log_block, dirs8[dir][0], dirs8[dir][1]); + int len = 2 + rng_range_inclusive(rng, 0, 2); + for (int step = 2; step <= len + 1; ++step) { + block_list_push(out, x + dirs8[dir][0] * step, y + dy, z + dirs8[dir][1] * step, (uint16_t)branch_log); + } + } + } + for (int i = 0; i < 6; ++i) { + int root_len = 3 + rng_range_inclusive(rng, 0, 2); + place_redwood_root(ctx, x, y, z, dirs8[i][0], dirs8[i][1], root_len, arch->log_block, rng, out); + } + return; + } int spire = 3 + rng_range_inclusive(rng, 0, 2); int crown_start = y + core_height / 2 + rng_range_inclusive(rng, 0, 2); @@ -3709,7 +3736,7 @@ static void generate_chunk_border_wall(worldgen_ctx *ctx, int chunk_x, int chunk int center_x = world_x; int center_z = world_z; - int base_along = (floor_div_int(along, tower_spacing) * tower_spacing) + tower_spacing / 2; + int base_along = floor_div_int(along + tower_spacing / 2, tower_spacing) * tower_spacing; switch (side) { case 0: center_x = ctx->wall_min_x + wall_center;