Files
VoxelEngine/doc/ru/block-properties.md
T

137 lines
5.9 KiB
Markdown

# Вид
## Текстура - `texture`
Название текстуры блока (указывается только имя, без расширения или пути к файлу)
Файл текстуры должен находиться в `res/textures/blocks/` и иметь формат **png**
## Текстурирование сторон - `texture-faces`
>[!IMPORTANT]
> Не может использоваться одновременно с `texture`
Массив из 6 названий текстур, позволяющих указать их для каждой из сторон отдельно.
Пример:
```json
"texture-faces": [
"grass_side",
"grass_side",
"dirt",
"grass_top",
"grass_side",
"grass_side"
]
```
## Модель - `model`
Модель блока из списка:
- "block" - используется по-умолчанию для всех обычных блоков
- "none" - невидимый блок (пример: воздух)
- "X" - модель травы (крест из двух спрайтов)
- "aabb" - модель, соответствующая хитбоксу блока (составной хитбокс будет объединен в один). Примеры: трубы, лампочки, панели.
## Группа отрисовки - `draw-group`
Целое число определяющее номер группы отрисовки данного блока.
Актуально для полупрозрачных блоков - решает проблемы невидимых сторон блоков за этим блоком.
## Вращение - `rotation`
Профиль вращения (набор положений, в которые можно установить блок) из списка:
- "none" - вращение блока отключено (по-умолчанию)
- "pipe" - профиль "труба". Примеры блоков: бревно, труба, лампочка
- "pane" - профиль "панель". Примеры блоков: панель, дверь, табличка
# Освещение
## Излучение - `emission`
Массив из трех целых чисел - R, G, B освещения от 0 до 15.
Примеры:
- `[15, 15, 15]` - самый яркий белый свет
- `[7, 0, 0]` - слабый красный свет
- `[0, 0, 0]` - блок не излучает свет (по-умолчанию)
## Светопроводимость - `light-passing`
При значении `true` блок проводит свет от излучающих блоков.
## Солнечная светопроводимость - `sky-light-passing`
При значении `true` блок не препятствует прохождению вертикального луча солнечного света.
# Физика
## Препятствие - `obstacle`:
Значение false отключает хитбокс у блока (позволяет игроку проходить сквозь блок)
## Хитбокс - `hitbox`:
Массив из 6 чисел описывающих смещение и размер хитбокса блока.
Числа указываются в диапазоне [0.0, 1.0] - т.е в пределах блока.
Массив `[0.25, 0.0, 0.5, 0.75, 0.4, 0.3]` описывает хитбокс:
- шириной (с востока на запад) 0.75 м
- высотой 0.4 м
- длиной (с юга на север) 0.3 м
- смещен на 0.25 м на запад
- смещен на 0.0 м вверх
- смещен на 0.5 м на север
## Приземленность - `grounded`
Блок может быть установлен только на полный блок.
Разрушается при разрушении блока под ним.
## Выделяемость - `selectable`
При значении в `false` курсор будет игнорировать блок, выделяя тот, что находится за ним.
## Заменяемость - `replaceable`
При значении в `true` на месте блока можно установить любой другой блок. Пример: вода, трава, цветок.
## Разрушаемость - `breakable`
При значении в `false` блок нельзя сломать.
# Инвентарь
## Скрытый блок - `hidden`
При значении в `true` блок не появляется в инвентаре и для него не генерируется предмет, поэтому c 0.17 требуется указать свойство `picking-item`
## Подбираемый предмет - `picking-item`
Предмет, который будет выбран при при нажатии средней кнопкой мыши на блок.
Пример: блок `door:door_open` скрыт (hidden) поэтому указывается `picking-item: "door:door.item"`
## Имя скрипта - `script-name`
Позволяет указать название скрипта блока. Свойство обеспечивает возможность использования одного скрипта для нескольких блоков.
Название указывается без `пак:scripts/` и расширения.
## Имя макета UI - `ui-layout`
Позволяет указать id XML-макета интерфейса блока. По-умолчанию используется строковый id блока.
## Размер инвентаря - `inventory-size`
Число слотов инвентаря блока. По-умолчанию - 0 (инвентарь отсутствует)
# Расширенные блоки
## Размер блока - `size`
Массив из трех целых чисел. Значение по-умолчанию - `[1, 1, 1]`.