Utility and polishing + bag fixes

This commit is contained in:
Oleksandr Vlasiuk
2026-08-14 15:03:43 +03:00
parent 250f4a0d2c
commit 1f72420da0
45 changed files with 2542 additions and 1618 deletions
@@ -0,0 +1,24 @@
# PayZoneC: політ депозиту тепер з голови гравця, не з юайки (2026-08-13)
Був: політ ресурсу в Pay Zone стартував з `HudC.getWorldAnchorPosition()`
(іконка лічильника). Користувач попросив: **з персонажа**, летить від
голови вгору й плавно спускається в **центр** зони (не з юайки взагалі).
`PlayerC.getHeadWorldPosition()` — новий публічний метод, `object.position
+ (0, PLAYER_HEIGHT, 0)` — `PLAYER_HEIGHT` вже був реальним заміряним
розміром рига (`PLAYER_SIZE.y`), не вигаданим числом, тож верх голови
рахується без нової магічної константи. `PayZoneC.playDepositFlight`
тепер цілиться в геометричний центр `zoneBounds` (не в pivot самого
маркер-ноду — не гарантовано, що він точно в центрі footprint-у), і
лишень до прямого lerp додає `Math.sin(t * Math.PI) *
DEPOSIT_FLIGHT_ARC_HEIGHT` (той самий трюк дуги, що вже в `ResourceC`) —
вгору-і-плавно-вниз замість прямої лінії.
**Знайдено й виправлено**: `DEPOSIT_FLIGHT_SCALE_MULTIPLIER` був
підкручений (`0.3`) під СТАРИЙ політ, де перспективна компенсація
(`perspectiveCompensationScale`, camera-distance ratio) відчутно
збільшувала розмір за час польоту, бо старт був близько до камери (HUD),
а кінець далеко. Тепер старт — голова гравця, приблизно та ж дистанція
до камери, що й Pay Zone (камера жорстко слідує за гравцем) — компенсація
майже не працює, і `0.3` робив токен практично невидимим. Підняли до
`1.3`.