9 Commits

Author SHA1 Message Date
37e0151988 Wall off the table's own 6 edges too, not just the outer ridges
_build_region_borders() previously only bordered the 6 seams between
adjacent outer regions (table corner -> girdle corner). Generalized
_build_ridge() into _build_border_segment(p0, p1), which chains
overlap-guaranteed props along any straight 3D segment, and reused it
for the 6 table edges (table corner -> next table corner) as well —
these separate the center region from each outer region.

Verified headless the same way as the ridges: 43/43 pairs on one
table edge genuinely overlap (worst case -0.13 units). 744 border
props total across all 12 edges now.
2026-08-26 20:46:52 +02:00
eac8fdf042 Replace guesswork border spacing with a real overlap check
_build_ridge() now picks each prop's real-world collision radius
(shape radius * scale, same values as elsewhere in main.tscn) and
places it so its hitbox is guaranteed to overlap the previous one's
(border_overlap=0.8 of the combined radii), correcting the step
iteratively since the facet is sloped so distance isn't purely
radial. Lateral jitter shrunk to 0.05 so it can't itself exceed the
smallest possible combined radius (two forest props) and break the
guarantee.

Verified headless by measuring actual 3D distance between every
consecutive pair of props on one ridge against their combined radii:
83/83 pairs genuinely overlap, worst case still -0.13 units of
overlap (no gap anywhere). 504 border props total across all 6
ridges (was 142 with the old fixed-spacing approach).
2026-08-26 20:40:03 +02:00
2ab62278c6 Fix border prop spacing (was leaving massive gaps)
The random step jitter in _build_region_borders() was still ±4.0, a
constant left over from before the island rescale — at the new
border_spacing of 3.5 that could produce near-zero or even negative
steps as often as it produced 7.5-unit gaps, independent of position
along the ridge (hence gaps showing up near the center too, just by
bad luck). Jitter is now proportional to border_spacing (±25%), and
spacing itself tightened to 1.5 for a denser wall.

Verified headless: 142 border props total, max gap along one ridge
now ~1.9 units (was up to 7.5), consistent from table edge to girdle.
2026-08-26 20:11:22 +02:00
e547fbe199 Rescale island to match player/prop scale, spawn in an outer region
Island geometry (table/girdle/crown/pavilion radii, border spacing)
scaled down ~5x. The player capsule, camera distance and mountain/
forest scale factors were already correctly tuned to the small world
scale established elsewhere in main.tscn; the island itself was the
outlier (girdle radius 260 vs. a ~0.5-tall player), making border
props and the player look like specks. Shrinking the island was the
smaller change versus rescaling every already-tuned system.

Player now spawns partway out on one outer facet (region) instead of
on the center table, so a walk toward the middle is an actual journey
around/through the outer regions rather than starting there.

Verified headless with a physics simulation on the new sloped spawn
point: player settles and stays on_floor=true, no fall-through.
2026-08-26 20:06:47 +02:00
4b21780f6d Fix player falling through terrain
Player gets its own CapsuleShape3D (was a small CylinderShape3D, never
actually shared with anything — the shared oversized capsule flagged
earlier only affects the 4 mountain props, unrelated to the player).

Real cause of the fall-through: the crown collision is a zero-thickness
trimesh and the player spawned with exactly zero clearance sitting
right on the surface, a classic tunneling setup. Fixed by giving the
trimesh backface_collision (collide from both sides) and spawning the
player with a bit of headroom so it settles onto the floor instead of
starting embedded in it. Verified headless: player now falls from
spawn height to rest exactly on the surface and stays on_floor=true
over a 3s simulated run.
2026-08-26 19:58:28 +02:00
817c701bd1 Bring the diamond island into main.tscn with region-border props
Promote debug/HexDiamondIsland.gd to terrain.gd at project root now
that main.tscn depends on it, and swap it in for the old flat
checkerboard Ground (Player/Camera/POI untouched, table sits at the
same y=0 the old ground surface used).

Add _build_region_borders(): places mountain.glb/mountain2v5.glb/
forest.glb (same models, scale factors and hitbox sizes already used
elsewhere in main.tscn) continuously along the 6 ridges between table
corners and girdle corners, i.e. the shared edges between adjacent
outer regions.
2026-08-26 19:53:08 +02:00
fb14fe868d Ignore unused zylann.hterrain addon
Not referenced by any scene and too large to push (native binaries +
doc images, ~19MB). Kept on disk locally; re-fetch it if HTerrain is
ever actually adopted.
2026-08-26 19:36:54 +02:00
7a24584c7d Add hex-diamond island terrain prototype
New standalone debug prototype exploring the "gem-cut" flying island
shape: a flat hexagonal table (center region) surrounded by 6 sloped
trapezoidal facets down to the girdle (6 outer regions), with a
non-walkable 6-sided pavilion pyramid below for the underside. Crown
gets trimesh collision for later player testing; all 6 outer facets
stay visually neutral (alternating flat color only) since theming
comes later. Doesn't touch main.tscn or the old cross-layout prototype.
2026-08-26 19:26:07 +02:00
fa38e603a1 Initial commit: WayfarersWanderer project state
Godot 4.6 exploration game with player movement, step-rotation camera
rig, and POI interaction system (explore/rest/close menu). main.tscn
is a test scene with placeholder props; debug/ holds unwired terrain
prototypes (voxel river, procedural island mesh, cross-shaped hub
2026-08-26 19:05:30 +02:00