2025-01-17 19:24:07 +03:00

4.6 KiB
Raw Blame History

Библиотека app

Библиотека для высокоуровневого управления работой движка, доступная только в режиме сценария или теста.

Имя сценария/теста без пути и расширения доступен как app.script. Путь к файлу можно получить как:

local filename = "script:"..app.script..".lua"

Функции

app.tick()

Выполняет один такт основного цикла движка.

app.sleep(time: number)

Ожидает указанное время в секундах, выполняя основной цикл движка.

app.sleep_until(
    -- функция, проверяющее условия завершения ожидания
    predicate: function() -> bool,
    -- максимальное количество тактов цикла движка, после истечения которых
    -- будет брошено исключение "max ticks exceed"
    [опционально] max_ticks = 1e9
)

Ожидает истинности утверждения (условия), проверяемого функцией, выполнячя основной цикл движка.

app.quit()

Завершает выполнение движка, выводя стек вызовов для ослеживания места вызова функции.

app.reconfig_packs(
    -- добавляемые паки
    add_packs: table,
    -- удаляемые паки
    remove_packs: table
)

Обновляет конфигурацию паков, проверяя её корректность (зависимости и доступность паков). Автоматически добавляет зависимости.

Для удаления всех паков из конфигурации можно использовать pack.get_installed():

app.reconfig_packs({}, pack.get_installed())

В этом случае из конфигурации будет удалён и base.

app.config_packs(
    -- ожидаемый набор паков (без учёта зависимостей)
    packs: table
)

Обновляет конфигурацию паков, автоматически удаляя лишние, добавляя отсутствующие в прошлой конфигурации. Использует app.reconfig_packs.

app.is_content_loaded() -> bool

Проверяет, загружен ли контент.

app.new_world(
    -- название мира, пустая строка приведёт к созданию безымянного мира
    name: str,
    -- зерно генерации
    seed: str,
    -- название генератора
    generator: str
    -- id локального игрока
    [опционально] local_player: int=0
)

Создаёт новый мир и открывает его.

app.open_world(name: str)

Открывает мир по названию.

app.reopen_world()

Переоткрывает мир.

app.save_world()

Сохраняет мир.

app.close_world(
    -- сохранить мир перед закрытием
    [опционально] save_world: bool=false
)

Закрывает мир.

app.delete_world(name: str)

Удаляет мир по названию.

app.get_version() -> int, int

Возвращает мажорную и минорную версии движка.

app.get_setting(name: str) -> value

Возвращает значение настройки. Бросает исключение, если настройки не существует.

app.set_setting(name: str, value: value)

Устанавливает значение настройки. Бросает исключение, если настройки не существует.

app.get_setting_info(name: str) -> {
    -- значение по-умолчанию
    def: value
    -- минимальное значение
    [только числовые настройки] min: number,
    -- максимальное значение
    [только числовые настройки] max: number
}

Возвращает таблицу с информацией о настройке. Бросает исключение, если настройки не существует.