Карты трасс, логотипы и флаги
В Racelink есть картинки и карты, которые ваш оверлей может показывать, не возя свои копии: трассы, логотипы машин, флаги и обложка песни, которая играет.
Что есть в Racelink
- Карты трасс
- Контур трассы с поворотами, в том же виде, что блок данных track. У демо-сессии тоже есть карта.
- Логотипы машин
- Логотип марки, 256 × 256, прозрачный.
- Флаги
- Флаг страны, 4:3, по двухбуквенному коду строчными буквами (de, gb, jp).
- Обложка музыки
- Обложка трека, который играет на компьютере, с разрешением media.
Всё это приходит из Racelink на компьютере игрока и разрешено каждому оверлею без разрешений. Racelink обновляет это вместе с собой.
Через SDK
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 игры:
{
"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.