Jonas Reith 3d1933399e Fix POI hitbox/sprite mismatch and tight interaction range
Both poi.tscn and poi_gate.tscn had two problems stacking on top of
each other: the solid StaticBody3D collider was a fixed-orientation
BoxShape3D (with a Z-offset originally tuned for the old non-billboard
ruins sprite), and the Area3D's own proximity-detection sphere also
carried that same leftover Z-offset. Neither rotates with the sprite,
which now billboards to face the camera (billboard=2) — so depending
on viewing angle you'd either bump into invisible air or walk clean
through the visible sprite, and the interact prompt appeared at wildly
different distances depending on approach direction.

Fix: replaced the oriented box with a centered CylinderShape3D
(radius 1.0) for the solid collider — rotationally symmetric around Y,
so it matches a billboarded sprite from any camera angle by
construction, no per-frame reorientation needed. Removed the Z-offset
from the Area3D's detection sphere and grew its radius to 1.3 (>= the
solid cylinder's radius), so interaction becomes available at or
before physical contact, not after pushing further in.

Verified headless: drove the player at a POI from 4 different
approach angles (0/90/180/270°) and measured both the distance where
movement gets blocked and the distance where player_nearby flips true.
Blocking distance is now consistent (~1.16-1.17 units) across all four
angles instead of varying with direction, and in every case
interaction was ready at or before the blocking distance.
2026-08-27 09:47:57 +02:00
..