feat(client): cutaway defaults to mode 2 (both) — user verdict from the live session (T-1088)

Known interiors open at a glance (bottom walls low) AND the sightline
corridor punches through unexplored exterior walls; C still cycles modes.
sandbox_constants.gd also carries the path-preview/gesture knobs for the
click-to-move feature landing in the next commit (single tuning file).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-06 19:51:38 +02:00
co-authored by Claude Fable 5
parent e32a041778
commit 98032e9d5a
4 changed files with 50 additions and 0 deletions
+1
View File
@@ -196,6 +196,7 @@ func _ready() -> void:
_wall_material.set_shader_parameter("u_corridor_half_w", SandboxConstants.CUT_CORRIDOR_HALF_W)
_wall_material.set_shader_parameter("u_cut_band", SandboxConstants.CUT_BAND)
_wall_mm = _make_layer("WallMM", wall_mesh, _wall_material, true)
set_cutaway_mode(SandboxConstants.CUTAWAY_MODE)
# Camera-far neighbor directions for the bottom-wall rule — derived from the
# actual WorldRoot basis at runtime (never hand-derived; the E/W-mirror
# lesson). A wall is a "bottom wall" when a KNOWN non-wall tile sits on its
@@ -24,6 +24,10 @@ const CUT_HEIGHT := 0.75
const CUT_CORRIDOR_HALF_W := 1.4
## Cutaway smoothstep falloff band (m) at the corridor edges.
const CUT_BAND := 0.75
## Cutaway mode default: 0 = sightline corridor, 1 = bottom walls low, 2 = both.
## User verdict (live session 2026-07-06): "both" — known interiors open at a
## glance AND the corridor punches through unexplored exterior walls. C cycles.
const CUTAWAY_MODE := 2
# -- Locomotion interpolation (design §4) --------------------------------------
@@ -116,3 +120,18 @@ const TINTS := {
## Ground-plane deadzone (m) for the mouse facing provider — mirrors the 2D jitter guard.
const MOUSE_AIM_DEADZONE_M := 0.1
# -- Path preview / click-to-move (T-1088 live-session item 2) ------------------------
## Move-here marker fill on the hovered destination subtile — distinct accent,
## semi-opaque so the floor tint reads through.
const PATH_MARKER_COLOR := Color(0.30, 0.90, 1.0, 0.55)
## Optimal-path line colour (tile-center strip from the character to the destination).
const PATH_LINE_COLOR := Color(0.30, 0.90, 1.0, 0.90)
## Marker sits this far above the floor plane (m) — clears grid-line z-fighting.
const PATH_MARKER_Y := 0.02
## Path line sits slightly higher than the marker so it reads on top of it.
const PATH_LINE_Y := 0.06
## RMB hold (ms) past which a right-click is a LONG-PRESS = go-there-then-crouch
## (committed on release), below which it is the click/double-click gesture.
const RMB_LONG_PRESS_MS := 400