feat(game): WASD-движение, кнопка действия E/A и подпись [E] Имя
...
Ходьба: WASD/стрелки/крестовина/аналоговый стик + тач-джойстик (приоритет)
через готовый PlayerController.moveFree; при нулевом векторе — обычный
update (moveFree со стопом рвал бы путь моста).
Кнопка действия: interact = KeyE / геймпад A — ближайшая цель в радиусе
1.5 юнита (NPC → click-переход/заперто → интерактив → цветок), резолв
через pickInteract (чистый, эпсилон-ничья 0.05 + приоритет kind).
Подпись «[E] Имя» над ближайшей целью заменяет per-object подписи;
NPC впервые получают подписи. Снапшот: interactHint (+ ключ анти-дрейфа).
Гвард wasBusy: клавиша, закрывшая диалог, не ударяет/не переоткрывает
разговор в тот же тик (Space/A мульти-биндинг advance+attack/interact).
Клик-движение пока живо (удаляется в следующем коммите).
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
12 hours ago