Improved docs (#708)

* начало переписи доков

* extensions update

* libapp update

* libfile update

* io_stream update

* Update io_stream.md

* io_stream update x3

* io_stream update x4

* libtime update

* libgui update + make bytearray.md

* libinput update

* Update libapp.md

* Update libapp.md

* libgui update

* events.md ru fix

* да ну не надо так делать

--> не имеет смысла, ибо гитхаб -> показывает адекватно

* types refactoring

* fixes

* Update libblock.md

* Update libblock.md

* Update libbyteutil.md
This commit is contained in:
Xertis 2025-12-18 12:58:39 +03:00 • committed by MihailRis
parent 8b31bdeb78
commit ac02bc0c8e
43 changed files with 1107 additions and 1314 deletions

View file

@ -9,185 +9,137 @@ local filename = "script:"..app.script..".lua"
Так как управляющий сценарий может не принадлежать ни одному из паков, он не относиться к своему паку и имеет собственное пространство имён, в котором доступны все глобальные функции и таблицы, а также библиотека `app`.
## Функции
## Содержание:
Методы для работы с:
- [основными процессами движка](#основные-процессы-движка)
- [контент-паками](#контент-паки)
- [мирами](#миры)
- [свойствами и настройками](#свойства-и-настройки-движка)
- [точками входа и путями](#точки-входа-и-пути)
## Основные процессы движка
```lua
-- Выполняет один такт основного цикла движка.
app.tick()
```
Выполняет один такт основного цикла движка.
```lua
-- Ожидает указанное время в секундах, выполняя основной цикл движка.
app.sleep(time: number)
```
Ожидает указанное время в секундах, выполняя основной цикл движка.
-- Завершает выполнение движка, выводя стек вызовов для ослеживания места вызова функции.
app.quit()
```lua
-- Ожидает истинности утверждения (условия), проверяемого функцией, выполняя основной цикл движка.
app.sleep_until(
-- функция, проверяющее условия завершения ожидания
predicate: function() -> bool,
predicate: function() -> boolean,
-- максимальное количество тактов цикла движка, после истечения которых
-- будет брошено исключение "max ticks exceed"
[опционально] max_ticks = 1e9,
[опционально] max_ticks: int = 1e9,
-- максимальное длительность ожидания в секундах.
-- (работает с системным временем, включая test-режим)
[опционально] timeout = 1e9
[опционально] timeout: number = 1e9
)
```
Ожидает истинности утверждения (условия), проверяемого функцией, выполнячя основной цикл движка.
## Контент-паки
```lua
app.quit()
```
-- Проверяет, загружен ли контент.
app.is_content_loaded() -> boolean
Завершает выполнение движка, выводя стек вызовов для ослеживания места вызова функции.
-- Загружает контент из конфига, нельзя использовать, если контент уже загружен
app.load_content()
```lua
-- Выгружает весь контент, сбрасывая до единственного пака ядра (`core`).
app.reset_content(
-- Паки, для которых не будут сброшены модули, ивенты и окружение
[опционально] non_reset_packs: table
)
-- Обновляет конфигурацию паков, проверяя её корректность (зависимости и доступность паков).
-- Автоматически добавляет зависимости.
-- Для удаления ВСЕХ паков из конфигурации можно использовать `pack.get_installed()`
app.reconfig_packs(
-- добавляемые паки
add_packs: table,
-- удаляемые паки
remove_packs: table
)
```
Обновляет конфигурацию паков, проверяя её корректность (зависимости и доступность паков).
Автоматически добавляет зависимости.
Для удаления всех паков из конфигурации можно использовать `pack.get_installed()`:
```lua
app.reconfig_packs({}, pack.get_installed())
```
В этом случае из конфигурации будет удалён и `base`.
```lua
-- Обновляет конфигурацию паков, автоматически удаляя лишние, добавляя отсутствующие в прошлой конфигурации.
-- Использует app.reconfig_packs.
app.config_packs(
-- ожидаемый набор паков (без учёта зависимостей)
packs: table
)
```
Обновляет конфигурацию паков, автоматически удаляя лишние, добавляя отсутствующие в прошлой конфигурации.
Использует app.reconfig_packs.
```lua
app.is_content_loaded() -> bool
```
Проверяет, загружен ли контент.
## Миры
```lua
-- Создаёт новый мир и открывает его.
app.new_world(
-- название мира, пустая строка приведёт к созданию безымянного мира
name: str,
name: string,
-- зерно генерации
seed: str,
seed: string,
-- название генератора
generator: str
generator: string
-- id локального игрока
[опционально] local_player: int=0
[опционально] local_player: int = 0
)
```
Создаёт новый мир и открывает его.
-- Удаляет мир по названию.
app.delete_world(name: string)
```lua
app.open_world(name: str)
```
-- Открывает мир по названию.
app.open_world(name: string)
Открывает мир по названию.
```lua
-- Переоткрывает мир.
app.reopen_world()
```
Переоткрывает мир.
```lua
-- Сохраняет мир.
app.save_world()
```
Сохраняет мир.
```lua
-- Закрывает мир.
app.close_world(
-- сохранить мир перед закрытием
[опционально] save_world: bool=false
[опционально] save_world: boolean = false
)
```
Закрывает мир.
```lua
app.delete_world(name: str)
```
Удаляет мир по названию.
## Свойства и настройки движка
```lua
-- Возвращает мажорную и минорную версии движка.
app.get_version() -> int, int
```
Возвращает мажорную и минорную версии движка.
-- Возвращает значение настройки. Бросает исключение, если настройки не существует.
app.get_setting(name: string) -> any
```lua
app.get_setting(name: str) -> value
```
-- Устанавливает значение настройки. Бросает исключение, если настройки не существует.
app.set_setting(name: string, value: any)
Возвращает значение настройки. Бросает исключение, если настройки не существует.
-- Возвращает таблицу с информацией о настройке. Бросает исключение, если настройки не существует.
app.get_setting_info(name: string) -> table
```lua
app.set_setting(name: str, value: value)
```
Устанавливает значение настройки. Бросает исключение, если настройки не существует.
```lua
app.get_setting_info(name: str) -> {
-- значение по-умолчанию
def: value
-- минимальное значение
[только числовые настройки] min: number,
-- максимальное значение
[только числовые настройки] max: number
}
```
Возвращает таблицу с информацией о настройке. Бросает исключение, если настройки не существует.
```lua
-- Переводит окно на передний план и устанавливает фокус ввода.
app.focus()
```
Переводит окно на передний план и устанавливает фокус ввода.
## Точки входа и пути
```lua
-- Создаёт файловую систему в памяти.
app.create_memory_device(
-- имя точки входа
name: str
name: string
)
```
Создаёт файловую систему в памяти.
```lua
-- Возвращает список источников контента (путей), в порядке убывания приоритета.
app.get_content_sources() -> table<string>
```
Возвращает список источников контента (путей), в порядке убывания приоритета.
```lua
-- Устанавливает список источников контента (путей). Указывается в порядке убывания приоритета.
app.set_content_sources(sources: table<string>)
```
Устанавливает список источников контента (путей). Указывается в порядке убывания приоритета.
```lua
-- Сбрасывает список источников контента.
app.reset_content_sources()
```
Сбрасывает список источников контента.
```