add block data-fields to docs

This commit is contained in:
MihailRis
2024-10-02 17:00:51 +03:00
parent 6016433f47
commit 221a34fa2e
4 changed files with 106 additions and 0 deletions
+29
View File
@@ -145,3 +145,32 @@
### Размер блока - *size*
Массив из трех целых чисел. Значение по-умолчанию - `[1, 1, 1]`.
## Поля блока
Поля блоков позволяет записывать больше уникальных для конкретного блока данных, чем это позволяют пользовательские биты.
Поля блока объявляются в следующем формате:
```json
"fields": {
"имя": {"type": "тип_данных"},
"имя_массива": {"type": "тип_данных", "length": "длина_массива"}
}
```
Доступные типы данных:
| Тип | Размер | Описание |
| ----- | -------- | ----------------------------- |
| i8 | 1 байт | целочисленный знаковый 8 бит |
| i16 | 2 байта | целочисленный знаковый 16 бит |
| i32 | 4 байта | целочисленный знаковый 32 бит |
| i64 | 8 байт | целочисленный знаковый 64 бит |
| f32 | 4 байта | вещественный 32 бит |
| f64 | 8 байт | вещественный 64 бит |
| char | 1 байт | символьный |
На данный момент общая сумма размеров полей не может превышать 240 байт.
Массив символьного типа может использоваться для хранения UTF-8 строк.
+24
View File
@@ -159,3 +159,27 @@ block.get_model(id: int) -> str
-- возвращает массив из 6 текстур, назначенных на стороны блока
block.get_textures(id: int) -> таблица строк
```
## Поля данных
```lua
-- записывает значение в указанное поле блока
-- * бросает исключение при несовместимости типов
-- * ничего не делает при отсутствии поля у блока
block.set_field(
x: int, y: int, z: int,
name: str,
value: bool|int|number|string,
[опционально] index: int = 0
)
-- возвращает значение записанное в поле блока
-- * возвращает nil если:
-- 1. поле не существует
-- 2. ни в одно поле блока не было произведено записи
block.get_field(
x: int, y: int, z: int,
name: str,
[опционально] index: int = 0
) -> хранимое значение или nil
```