From 46f1d24e9d8070b7ecd490c4cbc1a5feb4c56ae5 Mon Sep 17 00:00:00 2001 From: chelsea Date: Sun, 3 May 2026 11:32:22 -0500 Subject: [PATCH] Add stair ramps to border wall walks --- worldgen-c/bin/worldgen | Bin 165560 -> 169768 bytes worldgen-c/src/worldgen.c | 152 +++++++++++++++++++++++++------------- 2 files changed, 100 insertions(+), 52 deletions(-) diff --git a/worldgen-c/bin/worldgen b/worldgen-c/bin/worldgen index d74e9c9ed632764bcb9bb6a317840efc05596365..8e6d7273e1bc54e50aea64bf7d480fac63c4fd43 100755 GIT binary patch delta 50559 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 NQU((Y{A3Ah|9`1vHNyY^ diff --git a/worldgen-c/src/worldgen.c b/worldgen-c/src/worldgen.c index 8416b3d..95c0bad 100644 --- a/worldgen-c/src/worldgen.c +++ b/worldgen-c/src/worldgen.c @@ -3643,6 +3643,99 @@ static void generate_chunk_trails(worldgen_ctx *ctx, int chunk_x, int chunk_z, c } } +static int border_wall_anchor_base(worldgen_ctx *ctx, int side, int anchor_along, int wall_center) { + int center_x = anchor_along; + int center_z = anchor_along; + switch (side) { + case 0: + center_x = ctx->wall_min_x + wall_center; + break; + case 1: + center_x = ctx->wall_max_x - wall_center; + break; + case 2: + center_z = ctx->wall_min_z + wall_center; + break; + case 3: + center_z = ctx->wall_max_z - wall_center; + break; + } + + int smoothed_base = 0; + int weight_sum = 0; + int highest_sample_base = 0; + const int sample_offsets[5] = {-32, -16, 0, 16, 32}; + const int sample_weights[5] = {1, 2, 4, 2, 1}; + for (int i = 0; i < 5; ++i) { + int sx = center_x; + int sz = center_z; + if (side < 2) { + sz += sample_offsets[i]; + } else { + sx += sample_offsets[i]; + } + if (sx < ctx->wall_min_x) sx = ctx->wall_min_x; + if (sx > ctx->wall_max_x) sx = ctx->wall_max_x; + if (sz < ctx->wall_min_z) sz = ctx->wall_min_z; + if (sz > ctx->wall_max_z) sz = ctx->wall_max_z; + column_data sample = get_column_data(ctx, sx, sz); + int sample_base = sample.height; + if (sample.has_water && sample.water_surface > sample_base) sample_base = sample.water_surface; + if (i == 0 || sample_base > highest_sample_base) highest_sample_base = sample_base; + smoothed_base += sample_base * sample_weights[i]; + weight_sum += sample_weights[i]; + } + smoothed_base /= weight_sum; + if (highest_sample_base > smoothed_base + 8) { + smoothed_base += (highest_sample_base - smoothed_base - 8 + 1) / 2; + } + if (smoothed_base < 1) smoothed_base = 1; + if (smoothed_base > CHUNK_HEIGHT - 2) smoothed_base = CHUNK_HEIGHT - 2; + return smoothed_base; +} + +static int border_wall_ramp_base(worldgen_ctx *ctx, int side, int along, int wall_center, int tower_spacing) { + int anchor = floor_div_int(along + tower_spacing / 2, tower_spacing) * tower_spacing; + int current_base = border_wall_anchor_base(ctx, side, anchor, wall_center); + + int next_anchor = anchor + tower_spacing; + int next_boundary = anchor + tower_spacing / 2; + int next_base = border_wall_anchor_base(ctx, side, next_anchor, wall_center); + int next_delta = next_base - current_base; + if (next_delta != 0) { + int next_span = clamp_int(abs(next_delta), 6, tower_spacing - 8); + int next_start = next_boundary - next_span / 2; + int next_end = next_start + next_span; + if (along >= next_start && along <= next_end) { + int progress = along - next_start; + return current_base + (next_delta * progress + (next_delta > 0 ? next_span / 2 : -next_span / 2)) / next_span; + } + } + + int prev_anchor = anchor - tower_spacing; + int prev_boundary = anchor - tower_spacing / 2; + int prev_base = border_wall_anchor_base(ctx, side, prev_anchor, wall_center); + int prev_delta = current_base - prev_base; + if (prev_delta != 0) { + int prev_span = clamp_int(abs(prev_delta), 6, tower_spacing - 8); + int prev_start = prev_boundary - prev_span / 2; + int prev_end = prev_start + prev_span; + if (along >= prev_start && along <= prev_end) { + int progress = along - prev_start; + return prev_base + (prev_delta * progress + (prev_delta > 0 ? prev_span / 2 : -prev_span / 2)) / prev_span; + } + } + + return current_base; +} + +static uint16_t border_wall_ramp_stair_block(int side, int slope) { + if (side < 2) { + return (slope > 0) ? BLOCK_STONE_BRICK_STAIRS_S : BLOCK_STONE_BRICK_STAIRS_N; + } + return (slope > 0) ? BLOCK_STONE_BRICK_STAIRS_E : BLOCK_STONE_BRICK_STAIRS_W; +} + static void generate_chunk_border_wall(worldgen_ctx *ctx, int chunk_x, int chunk_z, chunk_data *out) { if (!ctx->enable_wall) return; if (ctx->wall_min_x > ctx->wall_max_x || ctx->wall_min_z > ctx->wall_max_z) return; @@ -3734,57 +3827,10 @@ static void generate_chunk_border_wall(worldgen_ctx *ctx, int chunk_x, int chunk continue; } - int center_x = world_x; - int center_z = world_z; - 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; - center_z = base_along; - break; - case 1: - center_x = ctx->wall_max_x - wall_center; - center_z = base_along; - break; - case 2: - center_x = base_along; - center_z = ctx->wall_min_z + wall_center; - break; - case 3: - center_x = base_along; - center_z = ctx->wall_max_z - wall_center; - break; - } - int smoothed_base = 0; - int weight_sum = 0; - int highest_sample_base = 0; - const int sample_offsets[5] = {-32, -16, 0, 16, 32}; - const int sample_weights[5] = {1, 2, 4, 2, 1}; - for (int i = 0; i < 5; ++i) { - int sx = center_x; - int sz = center_z; - if (side < 2) { - sz += sample_offsets[i]; - } else { - sx += sample_offsets[i]; - } - if (sx < ctx->wall_min_x) sx = ctx->wall_min_x; - if (sx > ctx->wall_max_x) sx = ctx->wall_max_x; - if (sz < ctx->wall_min_z) sz = ctx->wall_min_z; - if (sz > ctx->wall_max_z) sz = ctx->wall_max_z; - column_data sample = get_column_data(ctx, sx, sz); - int sample_base = sample.height; - if (sample.has_water && sample.water_surface > sample_base) sample_base = sample.water_surface; - if (i == 0 || sample_base > highest_sample_base) highest_sample_base = sample_base; - smoothed_base += sample_base * sample_weights[i]; - weight_sum += sample_weights[i]; - } - smoothed_base /= weight_sum; - if (highest_sample_base > smoothed_base + 8) { - smoothed_base += (highest_sample_base - smoothed_base - 8 + 1) / 2; - } - if (smoothed_base < 1) smoothed_base = 1; - if (smoothed_base > CHUNK_HEIGHT - 2) smoothed_base = CHUNK_HEIGHT - 2; + int smoothed_base = border_wall_ramp_base(ctx, side, along, wall_center, tower_spacing); + int prev_base = border_wall_ramp_base(ctx, side, along - 1, wall_center, tower_spacing); + int next_base = border_wall_ramp_base(ctx, side, along + 1, wall_center, tower_spacing); + int ramp_slope = next_base - prev_base; int height = in_tower ? tower_height : wall_height; int top = smoothed_base + height; @@ -3819,7 +3865,9 @@ static void generate_chunk_border_wall(worldgen_ctx *ctx, int chunk_x, int chunk if (rel_y <= 2 || rel_y % 6 == 0 || rel_y == height - 1) { block = BLOCK_STONE_BRICKS; } - if (side_dist >= wall_center - 1 && side_dist <= wall_center + 1 && rel_y == height) { + if (side_dist >= wall_center - 1 && side_dist <= wall_center + 1 && rel_y == height && ramp_slope != 0) { + block = border_wall_ramp_stair_block(side, ramp_slope); + } else if (side_dist >= wall_center - 1 && side_dist <= wall_center + 1 && rel_y == height) { block = BLOCK_STONE_BRICKS; } if (ladder_face && rel_y >= 2 && rel_y <= height) {