Справочник API

Полный справочник API для проектов le.codes. Всё здесь — глобальные значения без импортов: пользовательский код обращается к UIScreen, Scene, Sprite, fetch, … напрямую, а сборка подставляет реализацию и вырезает то, что проект не использует.

Начни со страницы Соглашения — единицы измерения, системы координат, семантика значений, зависимость от хоста, запрет top-level await и правила жизненного цикла, на которые опирается каждая страница. Большинство приложений — UI-приложения: точка входа в UI-слой — Модель элементов (модель элементов плюс устройство типичного приложения: модуль токенов с theme(), экраны, каркас вкладок).

Заметка

Это справочник по поверхности API: сигнатуры, единицы, крайние случаи. Учиться удобнее по Гайду — он ведёт через сборку приложения и по дороге ссылается сюда.

Вся поверхность одним взглядом

Одна строка на глобал. Жирная ссылка — страница, которая его документирует.

UI

  • модель элементов: фабрики, цепочки, ссылки, условные дети, устройство приложения — Модель элементов
  • модель .style(): свойства, единицы, безопасные зоны, animateTo — Стилизация
  • theme — стилевые переменные на всё приложение (var()), ключи кита, живая смена темы — Тема — theme()
  • классы стилей: блоки состояний $name, el.class, каскад, зарезервированные $hovered/$pressed/$focused/$landscape/$portrait — Классы стилей
  • UIRow, UIColumn, UIBox (центрирование), UIScrollable, UISpacer — Контейнеры
  • UIText, UIImage, UIVideo, assetIcon — Текст, изображения, видео
  • UIButton, UIInput, UITextArea — Кнопки и поля ввода
  • UIScreen, Router, Presentable — экраны, стек навигации, переходы между экранами, цепочка обработки «назад» — UIScreen · Router
  • UIPager, UITabs, defineTabs — вкладки со своим стеком в каждой; UITabs — стандартный каркас нижних вкладок, defineTabs — его панель для дизайн-макетов — UIPager · UITabs
  • UIWidget — плавающие оверлеи (+ диалоги UIModal, привязанные меню UIPopover, UIBottomSheet) — UIWidget
  • UIVirtualizedList — оконные списки для длинных данных — UIVirtualizedList
  • NativeView — платформенные вью, зарегистрированные хостом (карта, камера, …) — NativeView
  • font, registerFont — шрифты — Шрифты

3D-движок

  • Scene, VRScene — 3D-мир: IBL / небо / туман / TAA, графические настройки в рантайме, оверлеи, прогрев; VRScene — для шлема — Scene
  • scene.postProcessing — внешний вид картинки: тональная компрессия, цветокоррекция, LUT из .cube, bloom, виньетка, ambient occlusion, screen-space-отражения, глубина резкости; apply() / reset() — Постобработка
  • ARScene — AR-сессия (хосты iOS / Android; в остальных бросает исключение): якоря, элементы размещения — ARScene
  • Node — базовый узел: трансформ, иерархия, события, твины, владение — Node
  • Camera — объектив, экспозиция, лучи с экрана, follow, мир→экран (через scene.camera) — Camera
  • Mesh, InstancedMesh — фабрики box / sphere / cylinder / capsule / plane, своя геометрия, одна геометрия N раз — Mesh
  • Model — загрузка GLB; проигрывание клипов через заранее подключённый Animator (model.anim) — Model
  • AnimationClip, Animator, Playback, Loop, Layer — система анимации: клипы из других файлов / кривых / производные (окно, зеркало), циклы и 1D/2D-блендинг, one-shot'ы с промисами передачи, слои (маски, аддитивные), события клипов, root motion, замеры clipInfo — Анимация — Animator
  • IK, Feet — двухкостные / look-at цепочки на костях (сокеты, зафиксированные руки), anim.feet: фиксация стоп, IK по земле, события шагов — IK · Feet
  • Locomotion, Warp — движение персонажа от намерения (старты, остановки, повороты, бленд походок, действия) + anim.warp: варпинг шага и ориентации — Locomotion · Warp
  • DynamicBone, DynamicBoneCollider — вторичное движение: хвосты, уши, волосы, верёвки, плащи — DynamicBone
  • Geometry — сырые вершинные данные, построители примитивов, файлы геометрии (Geometry.load) — Geometry
  • Material, defineMaterial, MaterialHandle — встроенные материалы по имени (lit / unlit / shadow / video …), шейдеры проекта .mat, ассеты материалов (*.material.ts) — Material
  • Texture — картинка 3D-материала: PNG / JPG / KTX2, сырые пиксели, анизотропия и предел размера на весь движок (не взаимозаменяема с Texture2D) — Texture
  • Light — направленный свет Light.sun() + тени, лампы Light.point(), конусы Light.spot() (ambient даёт IBL сцены) — Light
  • Lightmap — запечённый свет (солнце, небо, лампы, отскоки) для статичной геометрии + световая сетка для движущихся объектов (lecodes lightmap bake) — Lightmap
  • Foliage — растительность: ветер, растения, отклоняющиеся от героя, затухание по дистанции, tint на каждую копию (Model.load { foliage }) — Foliage
  • Terrain — рельеф по карте высот: четыре слоя сплата (roughness на пиксель в альфе альбедо), скульпт / покраска / дороги / дыры, файлы .terrain, коллайдер heightfield — Terrain
  • Shape, Physics, Trigger, CharacterController — тела Jolt, сенсоры, рейкасты, контроллер персонажа — Физика 3D
  • Vehicle, Wheel, Tire, resolveTire — физика машины как железо: двигатель, сцепление, рулевая колонка, подвеска и кривые шин на каждое колесо, входы + показания (коробка передач и позы колёс — на стороне игры) — Vehicle
  • Ragdoll — скелет скиннед-модели, отданный физике: падения, управляемые реакции на удар, возврат аниматору — Ragdoll
  • NavMesh, NavAgent, NavCrowd — запечённая навигационная сетка (lecodes navmesh bake), запросы пути, области, агенты толпы — NavMesh · NavAgent
  • Particles, Trail, curve, colorCurve — GPU-системы частиц, ленточные следы, кривые по времени жизни частицы — Particles
  • DecalSet, DecalTrail — проецируемые декали: следы пуль, следы ног, следы торможения — DecalSet · DecalTrail
  • AudioSource, AudioZone, SceneAudio — 3D-звук: эмиттеры на узлах (дистанция, конус, доплер, окклюзия), audio.playAt, зоны реверберации, слушатель (scene.audio), HRTF — 3D-звук
  • Ray, Plane, Noise — пикинг и процедурные хелперы — Ray · Plane · Noise
  • defineScene, use, ref, make, SceneHandle, CameraPlace, Gizmos, InspectorUI, EDITOR — сцены как данные (.scene.ts, формат редактора сцен): узлы, префабы, instantiate, положение камеры, аспекты-генераторы, карточки инспектора — Файлы сцен — defineScene
  • Level — процедурная расстановка для фабрик make(): line / grid / ring / scatter / place, с сидом — Level
  • MoveTo, FollowPath, Spin, LookAt, PlayAnimation — готовые no-code поведения — Сценарные аспекты
  • registerEditorWindow, registerEditorTool — плагины редактора сцен (*.editor.ts): окна, инструменты click / drag / hover — Плагины редактора

2D-движок

  • Scene2D — 2D-мир: фон, слои, Y-сортировка, пикинг, системы, UIImage(scene) — Scene2D
  • Node2D — базовый узел: трансформ, иерархия, события, animateTo — Node2D
  • Camera2D — позиция, зум, экран↔мир (через scene.camera) — Camera2D
  • Sprite — узел с текстурой; кадры, tint, flip — Sprite
  • SpriteAnimation — аспект клипов по спрайт-листу (node.anim) — SpriteAnimation
  • defineSpriteSheet, SpriteSheet — листы .sprite.ts: именованные области, нарезка сеткой, клипы, make() — Спрайт-листы — defineSpriteSheet
  • defineScene2d, Scene2dHandle, cells, encodeCells, CameraFollow — сцены .scene2d.ts: узлы sprite/tilemap/camera/make, слои, аспекты, следящая камера — Файлы сцен — defineScene2d
  • Shape2D, Physics2D, Trigger2D, OneWay2D, CharacterController2D, PhysicsGroup2D — тела Box2D, сенсоры, односторонние платформы, контроллер персонажа, группы коллизий, запросы — Физика 2D
  • Tilemap — тайловая сетка по атласу, нативный каллинг — Tilemap
  • defineTileset, Tileset, Autotile2D, rawCell / isRawCell / rawIndex, rot90 / rot180 / rot270 / flipX / packTile / tileIndex / tileTurns / tileFlip / tileOriented — автотайл-материалы .tiles.ts, сырые и ориентированные значения тайлов — Тайлсеты — defineTileset
  • Texture2D — загрузка 2D-изображений — Texture2D

Ядро

  • signal, computed, effect — реактивное состояние; биндинги () => value в тексте и стилях UI — signal · computed · effect
  • Aspect — подключаемые способности узлов; node.aspect(Class, opts), фазы updateBefore / updateFixed / update, порядок через static after / updateOrder, события, Aspect.all — Aspect
  • System — аспект всей сцены (ввод, пулы эффектов, HUD, игровой режим): scene.system(Class) — System
  • Time — игровые часы: Time.scale, Time.paused, Time.dt / unscaledDt / fixedDt, now, frame — Time
  • StateMachine, defineStates — иерархический конечный автомат одной декларативной таблицей: условия, переходы по таймеру, события, $back; мозги NPC, оружие, игровые режимы — StateMachine
  • Canvas, Bitmap — retained-2D-рисование, запекается в текстуры (2D/3D/UI); loadImage (SVG / байты картинки), toBitmap, toFile — Canvas
  • паттерн addEventListener, общий для сцен, узлов, device, app, Router, плееров, голосов и сокетов — События

Рантайм

  • device — платформа (модель ввода: web / ios / android / desktop), язык, размер, pixelRatio, resize, связность, точный touch, вибрация, датчик движения, HDR (пока не реализован) — device
  • app, clipboard, openURL — жизненный цикл (pause/resume), диплинки, блокировка ориентации, запасной обработчик «назад» (app.onBack), перезапуск / выход, отступ клавиатуры, sdkVersion, системный буфер, внешние URL — app · clipboard · openURL
  • Input, InputChannel — клавиатура / мышь / геймпад: опрос Input.key(code) (кнопки мыши и геймпада — тоже клавиши), события Input.on('keydown'), Input.mouse.delta + захват указателя + onUI, Input.gamepad(i).axis() / .rumble(); InputChannel — id каналов хоста — Input
  • ClickEvent, TouchStartEvent, LongPressEvent, MouseEnterEvent — события указателя, драги и ховеры через ev.track() — События касаний
  • fetch, fetchLocal, FormData, File — HTTP через хост; синхронное чтение тела; fetchLocal — файл хоста по имени — fetch · WebSocket
  • WebSocket — текстовые сокеты как в браузере — fetch · WebSocket
  • localStorage — персистентные строки ключ/значение — localStorage
  • AudioPlayer, VideoPlayer — потоковые плееры платформы (музыка, озвучка, видео); видео-как-текстура — Аудио и видео
  • Sound, Voice, Bus, REVERB_PRESETS, audio — игровой звук: клипы декодируются заранее, пул голосов (audio.play, циклы, питч, варианты), шины с low-pass / эхо / реверберацией; зависит от хоста (audio.supported) — Игровой звук — audio
  • openFilePicker, share, files — выбор файлов, системный шеринг, собственные файлы приложения (desktop, iOS) — Файлы и шеринг
  • toast, SvgSource — нативный тост; SVG как источник изображения — toast · SvgSource
  • date — даты в стиле dayjs: формат, относительное время, арифметика, сравнение (английский + русский) — date
  • Net, NetPlayer, Replicated, NetEntity — мультиплеер с авторитетным сервером: роли (offline / host / client / выделенный сервер), игроки, JSON-сообщения, ввод по тикам, реплицируемые сущности с предсказанием и интерполяцией — Мультиплеер — Net
  • RpcError — серверные функции: эндпоинты и каналы *.server.ts на бэкенде приложения le.codes — Серверные функции
  • только серверный код: model, t, defineDb, ref — база данных бэкенда: модели, запросы, записи, транзакции — База данных
  • только серверный код: t.file(), t.image(), параметр File — файлы, которые приложение загружает, а бэкенд хранит: фото, аватары, вложения — Хранимые файлы
  • только серверный код: db.auth — аккаунты: пароли, коды на email, свой вход, гости, устройства — Вход и аккаунты

Анимация

  • animate — твин произвольного значения (мс): числа, CSS-цвета, векторы, кватернионы, матрицы → onUpdate; возвращает хэндл Animation — animate
  • Timeline — хореография на одних часах: треки на UI-элементах, 3D / 2D-узлах, источниках света, камере; метки, вызовы, паузы, stagger — Timeline
  • easeIn, easeOut, easeInOut, cubicBezier — функции сглаживания + имена кривых, которые принимает любой твин ('outCubic', [x1,y1,x2,y2], 'steps(n)') — Функции сглаживания

Математика

  • Mathf — скалярные хелперы: clamp, lerp, damp, remap, random — Mathf
  • Vec2, Vec3 — флюентные векторы; мутабельные поля, чистые методы, кортежи — Vec2 и Vec3
  • Quat — вращения: fromEuler, fromAxisAngle, slerp, lookRotation — Quat
  • Mat4 — матрица 4×4: compose/decompose, lookAt, perspective; открытый .m — Mat4
  • Color — парсинг и конвертация любых форм ColorInput — Color

Плагины

  • CameraView — превью камеры устройства + фото (JPEG-File) — CameraView
  • QRScanner — сканирование QR (зависит от хоста) — QRScanner
  • Geolocation — позиция устройства (разово + наблюдение) — Geolocation
  • MapView — векторная карта (maplibre-native; maplibre-gl в веб-плеере): стиль (по умолчанию бесплатный готовый), слои маркеров/линий, камера, маркер пользователя — MapView
  • Push — удалённые push-уведомления (регистрация + события полезной нагрузки; отправку релеит le.codes) — Push
  • Service — сырой канал к headless-сервисам хоста (локальным и сторонним) — Service

Глобалы хоста — Глобалы хоста

  • setLoop / clearLoop — покадровый цикл хоста; dt в секундах, без масштаба времени (игровая логика → Aspect / System)
  • setTimeout / setInterval / clearTimeout / clearInterval — таймеры (мс; на нативном рантайме разрешение в один кадр и обязательная задержка)
  • console — log / warn / info / error
  • asset() — compile-time-макрос: путь к файлу проекта → ссылка на ресурс в бандле (.json → его данные, .svg → SvgSource)
  • DEG2RAD / RAD2DEG — compile-time-константы углов
  • Style<T> — вспомогательный тип для переиспользуемых объектов стилей (только для редактора)

Как читать сигнатуры

Сигнатуры записаны как упрощённый TypeScript — без шума перегрузок и вспомогательных дженериков. Значения по умолчанию показаны комментарием (// по умолчанию 1), необязательные параметры помечены ?, а единицы измерения всегда названы там, где число пересекает границу API: секунды или миллисекунды, градусы или радианы, логические пиксели или мировые единицы.

TypeScript
Mathf.lerp(a, b, t): number            // a + (b − a)·t
sprite.setFramePx(x, y, w, h): this    // под-прямоугольник в пикселях текстуры
animate(target, to, 300)               // длительность в миллисекундах
Совет

Слева — полное дерево навигации по всем разделам. Справочник переведён целиком — все страницы доступны на русском и английском.