Как работает SDK
SDK не заменяет API игры. Он добавляет два вида удобств:
- короткие вызовы вроде
agents.local()иcamera.main(), которые компилируются в нативное свойство или метод; - небольшие сгенерированные вспомогательные методы — выборки, scopes и интервалы, реализующие повторяющийся безопасный паттерн.
Возвращаемые значения остаются нативными Agent, Camera,
EventSubscription и другими объектами игры. Их документированные поля и
методы можно использовать сразу.
Короткий вызов и нативное продолжение
Заголовок раздела «Короткий вызов и нативное продолжение»import { agents, camera, time } from "@killscript/sdk/client";
const local = agents.local(); // Agents.GetLocalAgent()const view = camera.main(); // Cameras.Mainconst currentTick = time.tick(); // Time.Tick
if (local !== undefined) { const position = local.Movement.Position; // Дальше нативный API. const viewport = view.WorldToViewportPoint(position); print(`${currentTick}: ${viewport}`);}Если готового сокращения нет, вызывайте типизированный глобальный API игры:
const hit = Physics.Raycast( Cameras.Main.Position, Vector3.forward, 100,);Свободно смешивайте оба стиля — это не добавляет архитектурной проблемы или лишнего слоя выполнения.
Клиентские сокращения для камер намеренно невелики:
| Метод | Нативная операция |
|---|---|
camera.main() | Читает Cameras.Main |
camera.create() | Вызывает Cameras.CreateCamera() и может вернуть undefined |
camera.remove(value) | Вызывает Cameras.RemoveCamera(value) |
Все прямые запросы agents перечислены в
выборках игроков, а методы
time, векторов и кватернионов — в разделе
математики и времени.
Выбор правильного импорта
Заголовок раздела «Выбор правильного импорта»| Возможность | Клиент | Reflex | Назначение |
|---|---|---|---|
agents | ✓ | ✓ | Частые запросы Agents и выборки |
arrays | ✓ | ✓ | Циклы по нативным коллекциям от единицы |
logger | ✓ | ✓ | Консоль с префиксами и ограничением повторов |
scheduler | ✓ | ✓ | Клиентские кадры или серверные тики и задержки |
scope | ✓ | ✓ | Очистка принадлежащих компоненту подписок и обработчиков |
time | ✓ | ✓ | Нативное время и безопасный перевод в тики |
defineSettings | ✓ | ✓ | Генерация и чтение конфигурации модуля |
defineNetwork | ✓ | ✓ | Типизированный пакетный транспорт Reflex |
camera | ✓ | — | Основная и дополнительные камеры |
defineControls и input | ✓ | — | Переназначаемые игроком действия модуля |
visuals | ✓ | — | Клиентские линии и отметки в мире |
Средозависимые возможности импортируйте из @killscript/sdk/client или
@killscript/sdk/server. Компилятор отклоняет клиентскую реализацию в
серверном коде и наоборот.
Что попадает в Lua
Заголовок раздела «Что попадает в Lua»Простые сокращения заменяются нативным выражением. Объявления только для
компилятора вроде defineSettings() исчезают после генерации JSON. Более
сложные методы добавляют только те небольшие функции среды выполнения, которые
реально использует собранный скрипт.
Поэтому в исходниках можно использовать читаемые абстракции, не упаковывая
тяжёлый фреймворк в каждый .KillScript.
Полный API за пределами вспомогательных методов описан в разделе API игры и типы.