nx_beach_contact_before_placement_t316.nx
buildroot/runtime/nx_beach_contact_before_placement_t316.nx
about
nx_beach_contact_gate.nx -- BEACH GROUND CONTACT: every body path that can leave feet under the
rendered sand has a tooth, and each tooth prints the numbers it judged (2026-09-11 beach lane).
Causes held here, from the 2026-09-11 fall-through diagnosis: rank 1 collision floor versus the
rendered field; rank 2 block-sized camera pops while walking; rank 3 an NPC buried by a window
shift and never walked out; rank 4 player support with feet under the field, and the stale-spawn
respawn that reaches it; rank 5 an NPC push across a rise; rank 6 arrivals placed on overhead
structures. Also a large-dt fall (15 fixed ticks per 250 ms frame from the window top) and NPCs held
at both window corners. A checker the current engine cannot fail is paired with a neg-control that
runs the SAME checker over the served rule on the same data, so a checker that cannot fire is
visible. Native world and fixtures only; browser visual acceptance stays with the operator.
license_tier: ORIGINAL
dependencies 3 imports · 0 importers
imports: nx_craft_before_placement_t316.nxnx_gate_verdict.nxnx_dec_emit.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| 16 | const BCG_BLOCK_Q8: i64 = 256 // one block in Q8 world units (the engine's S_CX: 256 = one block) |
| 17 | const BCG_BODY_CELLS: i64 = 2 // the two body cells mob_fits proves above a floor |
| 18 | const BCG_CLAMP_BLOCKS: i64 = 2 // wc_shift's window clamp margin in blocks |
| 19 | const BCG_STRUCTURE: i64 = 6 // a non-terrain solid; the legacy teeth plant the same block |
| 20 | const BCG_FLAT_HQ: i64 = 1152 // the legacy teeth's flat field corner height |
| 21 | const BCG_FIX_COL: i64 = 10 // the legacy teeth's fixture column |
| 22 | const BCG_PATCH_REACH: i64 = 4 // half-width in blocks of a rewritten fixture field |
| 23 | const BCG_WALK_TICKS: i64 = 240 // four seconds of the page's 60 Hz fixed tick per heading |
| 24 | const BCG_HEADINGS: i64 = 4 // +x, -x, +z, -z |
| 25 | const BCG_EDGE_BLOCKS: i64 = 4 // walks stop this far from the window edge; the shift has its own tooth |
| 26 | const BCG_BURY_BLOCKS: i64 = 2 // the diagnosed burial depth the NPC rise limit never climbs |
| 27 | const BCG_SHIFT_MAX: i64 = 8 // window slides allowed before the spawn must reach the clamp |
| 28 | const BCG_SETTLE_TICKS: i64 = 60 // one second of fixed ticks after a placement, push or respawn |
| 29 | const BCG_EDGE_TICKS: i64 = 240 // ticks the corner NPCs are observed |
| 30 | const BCG_PAGE_DT_MS: i64 = 250 // the page's NXFRAME_OOR_MS frame clamp |
| 31 | const BCG_TICK_US: i64 = 16667 // the page accumulator's 16.6667 ms fixed tick |
| 32 | const BCG_MS_US: i64 = 1000 |
| 33 | const BCG_FALL_TICKS: i64 = 900 // fifteen seconds; a fall from the window top lands long before |
| 34 | const BCG_PROBES: i64 = 6 // depths under the field probed by the support tooth |
| 35 | const BCG_PUSH_BOX_Q8: i64 = 100 // apply2_impl's body-presence push distance |
| 36 | const BCG_PUSH_GAP_Q8: i64 = SPEED+SPEED/2 // an NPC one and a half walk steps behind the player |
| 37 | const BCG_PUSH_COL: i64 = WX/2 // mid-window, so no window slide fires during the push ticks |
| 38 | const BCG_CANOPY_REACH: i64 = 9 // canopy half-width in blocks: summon ring 4..7 blocks, passport 3 |
| 39 | const BCG_PASS_ARRIVALS: i64 = 3 // wc_pass_apply spawns at most three companions |
| 40 | const BCG_STALE_SINK_Q8: i64 = EYE/2 // a stale spawn height: feet under the sand, eye above it |
functions
| 42 | func bcg_number(value: i64, scratch: *u8) -> i64 |
| 47 | func bcg_abs(v: i64) -> i64 |
| 52 | func bcg_below(feet: i64, floor: i64) -> i64 |
| 57 | func bcg_structure(base: i64, x: i64, y: i64, z: i64) -> i64 |
| 64 | func bcg_place_oracle(base: i64, xq: i64, zq: i64) -> i64 |
| 75 | func bcg_arena() -> i64 { return sys_mmap(CRAFT_EXT_TOTAL) as i64 } |
| 76 | func bcg_world() -> i64 called by 8: bcg_censusbcg_walkbcg_shift_burialbcg_respawnbcg_edge_npcbcg_push+2 calls 2: bcg_arenainit_impl_v |
| 81 | func bcg_free(base: i64) -> i64 |
| 86 | func bcg_checks() -> i64 |
| 250 | func bcg_census(ctr: *i64) -> i64 |
| 302 | func bcg_walk(ctr: *i64) -> i64 |
| 380 | func bcg_shift_burial(ctr: *i64) -> i64 |
| 430 | func bcg_support_depths(ctr: *i64) -> i64 |
| 486 | func bcg_respawn(ctr: *i64) -> i64 |
| 522 | func bcg_edge_npc(ctr: *i64) -> i64 |
| 577 | func bcg_push(ctr: *i64) -> i64 |
| 632 | func bcg_canopy(base: i64, cx: i64, cz: i64) -> i64 |
| 644 | func bcg_placement(ctr: *i64) -> i64 |
| 710 | func bcg_fall(ctr: *i64) -> i64 called by 1: main calls 11: bcg_worldwstwc_surface_sourcewc_player_motionbcg_belowwc_player_support+5 |
| 761 | func main() -> i64 |