Racelink
Документация · Карты трасс, логотипы и флаги

// Документация · Продвинутое

Карты трасс, логотипы и флаги

В Racelink есть картинки и карты, которые ваш оверлей может показывать, не возя свои копии: трассы, логотипы машин, флаги и обложка песни, которая играет.

Что есть в Racelink

Карты трасс
Контур трассы с поворотами, в том же виде, что блок данных track. У демо-сессии тоже есть карта.
Логотипы машин
Логотип марки, 256 × 256, прозрачный.
Флаги
Флаг страны, 4:3, по двухбуквенному коду строчными буквами (de, gb, jp).
Обложка музыки
Обложка трека, который играет на компьютере, с разрешением media.

Всё это приходит из Racelink на компьютере игрока и разрешено каждому оверлею без разрешений. Racelink обновляет это вместе с собой.

Через SDK

src/main.ts
import { assetUrls, fetchTrack } from '@racelink/overlay';

flag.src = assetUrls.flag('de');
logo.src = assetUrls.carLogo('porsche');

// В демо своя карта; в игре текущую карту несёт блок track.
const track = overlay.status === 'demo' ? await fetchTrack('demo') : overlay.telemetry.track;

fetchTrack(id) возвращает null, если Racelink не запущен или карты этой трассы у него нет, поэтому держите, что показать без неё.

Как найти нужный логотип или флаг

Один раз запросите индекс, assetUrls.index, и ищите в нём, а не перебирайте адреса. В нём id трасс, марки с логотипом, коды флагов и таблицы, ведущие к ним от id игры:

index.json
{
"tracks": { "url": "/v2/assets/tracks/{id}.json", "demo": 42, "ids": [1, 2, 4] },
"carLogos": {
"url": "/v2/assets/car-logos/{brand}.png",
"brands": ["acura", "astonmartin", "audi"],
"iracingCars": { "3": "pontiac", "25": "lotus" }
},
"flags": {
"url": "/v2/assets/flags/{code}.svg",
"codes": ["ad", "ae", "de", "gb-eng"],
"iracingFlairs": { "16": "au", "31": "br" }
}
}
  • carLogos.iracingCars ведёт от id машины iRacing (drivers[i].carId) к её марке.
  • flags.iracingFlairs ведёт от флага гонщика (drivers[i].ext.iracing.flairId) к коду флага.

Обложка играющей песни

system.media.artworkUrl — картинка, которую плеер показывает для текущего трека. Отдаётся только текущая, под именем, которое меняется вместе с ней. Её можно нарисовать на canvas и прочитать цвета (<img crossorigin="anonymous">), чтобы панель брала оттенок обложки. В демо обложка встроена в данные и видна без Racelink.