UNPKG

rock-mod

Version:

Rock-Mod is a powerful framework designed for creating and managing mods for Grand Theft Auto (GTA) games.

32 lines (31 loc) 1.65 kB
/// <reference types="@classic-mp/types/client" /> /** * Реализация `IPathfindManager` под CCMP. * * RageMP `mp.game.pathfind.getStreetNameAtCoord` маппится 1:1 на GTA V натив * `GET_STREET_NAME_AT_COORD` (`0x2EB41072B4C1E4C0`), который в CCMP экспонирован * как `ccmp.natives.pathfind.getStreetNameAtCoord`. Натив возвращает два хэша * локализационных GXT-ключей — улицу и пересекающую дорогу (или 0 для второй, * если в точке нет пересечения). * * **Hot path:** вызывается ~раз в секунду из `HudController.onInterval` * `HudService.syncCurrentLocation``LocationService.getCurrentLocation` * `LocationService.getLocationByCords``RockModLocationAdapter.getStreetByCords`. * Не render-tick, но всё равно высокая частота — синхронный native-call, * стоимость незначительная. * * ### Маппинг полей * * CCMP-натив возвращает `{streetname, crossingroad}` (lowercase, как в C++ * биндинге), интерфейс `IStreetNameHash` ожидает `{streetName, crossingRoad}` * (camelCase). Переименовываем в return-statement. */ export class CCMPPathfindManager { getStreetNameAtCoord(position) { const result = ccmp.natives.pathfind.getStreetNameAtCoord(position.x, position.y, position.z); return { streetName: result.streetname, crossingRoad: result.crossingroad, }; } }