Свой блок, как и предмет, живёт в двух пакетах. Пакет поведения говорит, как он себя ведёт. Пакет ресурсов хранит его текстуры, звук и название.
Файлы
RP/
blocks.json
textures/
terrain_texture.json
blocks/
ruby_block.png
texts/
en_US.langШаг 1: текстура
Сохраните PNG размером 16x16 в RP/textures/blocks/. Затем дайте ему короткое имя в terrain_texture.json:
{
"resource_pack_name": "My Ruby Add-on",
"texture_name": "atlas.terrain",
"padding": 8,
"num_mip_levels": 4,
"texture_data": {
"ruby_block": {
"textures": "textures/blocks/ruby_block"
}
}
}Шаг 2: наденьте её на блок
Блок в пакете поведения выбирает текстуры через minecraft:material_instances. * означает все грани.
"minecraft:material_instances": {
"*": {
"texture": "ruby_block",
"render_method": "opaque"
}
}Чтобы задать разные грани, назовите их. Грани, которые вы не указали, берут *:
"minecraft:material_instances": {
"*": { "texture": "ruby_block_side" },
"up": { "texture": "ruby_block_top" },
"down": { "texture": "ruby_block_bottom" }
}| render_method | Для чего |
|---|---|
opaque | Сплошные блоки. По умолчанию. |
alpha_test | Вырезанные пиксели, как у листвы или стеклянных панелей. Рисуются обе стороны. |
alpha_test_single_sided | Вырезанные пиксели, только лицевая сторона. |
blend | Полупрозрачный цвет, как у окрашенного стекла. |
double_sided | Сплошной, но рисуется с обеих сторон. |
Шаг 3: звук
blocks.json лежит в корне пакета ресурсов. Он задаёт звук разрушения, установки и ходьбы:
{
"format_version": "1.21.40",
"wiki:ruby_block": {
"sound": "stone"
}
}Частые звуки: stone, wood, gravel, grass, glass, metal, sand, cloth, amethyst_block.
Шаг 4: название
tile.wiki:ruby_block.name=Ruby BlockУ блоков ключ начинается с tile. и заканчивается на .name. Ещё можно задать minecraft:display_name в файле блока.
Свои формы
Для формы, которая не является полным кубом, сделайте модель, сохраните её как RP/models/blocks/<name>.geo.json и укажите в minecraft:geometry её geometry.<name>. Тогда имена граней в material_instances совпадают с именами граней костей вашей модели.
Фиолетово-чёрная шахматка
Короткого имени текстуры нет в terrain_texture.json, или её путь неверный. Не пишите .png в пути и помните, что файл кэшируется: после изменения перезапустите мир.