3.8 KiB
Скриптинг
В качестве языка сценариев используется LuaJIT
Подразделы:
- События движка
- Пользовательский ввод
- Файловая система и сериализация
- Свойства и методы UI элементов
- Сущности и компоненты
- Библиотеки
- Модуль core:bit_converter
- Модуль core:data_buffer
- Модули core:vector2, core:vector3
Аннотации типов данных
В документации к Lua библиотекам используются аннотации типов, не являющиеся частью синтаксиса Lua.
- vector - массив из трех или четырех чисел
- vec2 - массив из двух чисел
- vec3 - массив из трех чисел
- vec4 - массив из четырех чисел
- quat - массив из четырех чисел - кватернион
- matrix - массив из 16 чисел - матрица
require "контентпак:имя_модуля" -- загружает lua модуль из папки modules (расширение не указывается)
Библиотека gui
Библиотека содержит функции для доступа к свойствам UI элементов. Вместо gui следует использовать объектную обертку, предоставляющую доступ к свойствам через мета-методы __index, __newindex:
print(document.some_button.text) -- где 'some_button' - id элемета
document.some_button.text = "новый текст"
В скрипте макета layouts/файл_макета.xml - layouts/файл_макета.xml.lua уже доступна переменная document содержащая объект класса Document
gui.str(text: str, context: str) -> str
Возращает переведенный текст.
gui.get_viewport() -> {int, int}
Возвращает размер главного контейнера (окна).
gui.get_env(document: str) -> table
Возвращает окружение (таблица глобальных переменных) указанного документа.
get_locales_info() -> таблица таблиц где
ключ - id локали в формате isolangcode_ISOCOUNTRYCODE
значение - таблица {
name: str # название локали на её языке
}
Возвращает информацию о всех загруженных локалях (res/texts/*).
Библиотека time
time.uptime() -> float
Возвращает время с момента запуска движка в секундах.
time.delta() -> float
Возвращает дельту времени (время прошедшее с предыдущего кадра)