VoxelEngine/doc/ru/scripting.md
2024-10-16 02:00:46 +03:00

3.8 KiB
Raw Blame History

Скриптинг

В качестве языка сценариев используется LuaJIT

Подразделы:

Аннотации типов данных

В документации к 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

Возвращает дельту времени (время прошедшее с предыдущего кадра)