5.7 KiB
Библиотека app
Библиотека для высокоуровневого управления работой движка, доступная только в режиме сценария или теста.
Имя сценария/теста без пути и расширения доступен как app.script. Путь к файлу можно получить как:
local filename = "script:"..app.script..".lua"
Так как управляющий сценарий может не принадлежать ни одному из паков, он не относиться к своему паку и имеет собственное пространство имён, в котором доступны все глобальные функции и таблицы, а также библиотека app.
Функции
app.tick()
Выполняет один такт основного цикла движка.
app.sleep(time: number)
Ожидает указанное время в секундах, выполняя основной цикл движка.
app.sleep_until(
-- функция, проверяющее условия завершения ожидания
predicate: function() -> bool,
-- максимальное количество тактов цикла движка, после истечения которых
-- будет брошено исключение "max ticks exceed"
[опционально] max_ticks = 1e9,
-- максимальное длительность ожидания в секундах.
-- (работает с системным временем, включая test-режим)
[опционально] timeout = 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
}
Возвращает таблицу с информацией о настройке. Бросает исключение, если настройки не существует.
app.create_memory_device(
-- имя точки входа
name: str
)
Создаёт файловую систему в памяти.
app.get_content_sources() -> table<string>
Возвращает список источников контента (путей), в порядке убывания приоритета.
app.set_content_sources(sources: table<string>)
Устанавливает список источников контента (путей). Указывается в порядке убывания приоритета.