# Свойства блоков ## Вид ### Текстура - *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` блок не препятствует прохождению вертикального луча солнечного света. ### Без освещения - *shadeless* Выключает освещение на модели блока. ## Физика ### Препятствие - *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]`.