VoxelEngine/doc/ru/scripting/filesystem.md
2025-03-24 07:43:41 +03:00

83 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Файловая система и сериализация
## Библиотека *file*
См. [библиотека file](builtins/libfile.md)
## Библиотека json
Библиотека содержит функции для сериализации и десериализации таблиц:
```python
json.tostring(object: table, human_readable: bool=false) -> str
```
Сериализует объект в JSON строку. При значении второго параметра **true** будет использовано многострочное форматирование, удобное для чтения человеком, а не компактное, использующееся по-умолчанию.
```python
json.parse(code: str) -> table
```
Парсит JSON строку в таблицу.
## Библиотека toml
Библиотека содержит функции для сериализации и десериализации таблиц:
```python
toml.tostring(object: table) -> str
```
Сериализует объект в TOML строку.
```python
toml.parse(code: str) -> table
```
Парсит TOML строку в таблицу.
## Библиотека yaml
Библиотека содержит функции для сериализации и десериализации таблиц:
```python
yaml.tostring(object: table) -> str
```
Сериализует объект в YAML строку.
```python
yaml.parse(code: str) -> table
```
Парсит YAML строку в таблицу.
## Библиотека bjson
Библиотека содержит функции для работы с двоичным форматом обмена данными [vcbjson](../../specs/binary_json_spec.md).
```lua
-- Кодирует таблицу в массив байт
bjson.tobytes(
-- кодируемая таблица
value: table,
-- сжатие
[опционально] compression: bool=true
) --> Bytearray
-- Декодирует массив байт в таблицу
bjson.frombytes(bytes: table | Bytearray) --> table
```
## Сохранение данных в мире
При сохранении данных пака в мире следует использовать функцию
```python
pack.data_file(id_пака: str, имя_файла: str) -> str
```
Функция возвращает путь к файлу данных по типу: `world:data/id_пака/имя_файла`
и создает недостающие директории в пути.
При использовании путей не соответствующим `data/{packid}/...` возможна потеря данных при перезаписи мира.