Привет. У нас есть ступени и блок, теперь пора добавить полу блок. Он же плита. Добавить плиты даже проще, чем ступени, а потому этот урок будет без номера, своего рода бонусное дополнение для любопытных.
Список уроков
Урок двенадцатый. Новые ступени
Как известно, плиты имеют три состояния. Верхнее, нижнее и двойная плита (ака блок).
В первую очередь нам нужно зарегистрировать новый блок, в этот раз будет всего один параметр, а значит единственным отличием от обычного блока будет лишь объект, который мы создаём.
1 |
<em>setup</em>(new SlabBlock(Block.Properties.<em>create</em>(Material.<em>ROCK</em>).hardnessAndResistance(3.0F, 3.0F)), "sun_bricks_slab") |
Код аналогичен обычному Block, но мы используем SlabBlock.
В классе SlabBlock указаны некоторые основные параметры полублоков. К примеру, выделяемая часть блока (при наведении курсора) должна быть всего в половину блока, при этом половины могут быть разными (верхняя и нижняя), а так же случай, когда две плиты образуют блок и выделение уже будет полным. Так же в последних версиях добавили блоки, которые не мешают течению воды (+-), и плиты в их числе. Но! Так как мы используем уже готовое решение из игры, то все эти фишки уже доступны и нужно лишь настроить правильное отображение блока, а значит пора снова лезть в ресурсы.
До ресурсов, не забудьте добавить предмет своему блоку! А так же не лишними будут и рецепты.
Ресурсы для плиты
В этот раз начнем с blockstates. Напоминаю, что имена файлов в этой папке должны соответствовать вашим блокам, так как именно тут будут выбраны модели, которые игра отобразит.
blockstates/sun_bricks_slab.json
1 2 3 4 5 6 7 |
{ "variants": { "type=bottom": { "model": "tutorial_mod_gs:block/sun_bricks_slab" }, "type=top": { "model": "tutorial_mod_gs:block/sun_bricks_slab_top" }, "type=double": { "model": "tutorial_mod_gs:block/sun_bricks" } } } |
Как видите, у нас в зависимости от типа блока будут выбраны разные модели. Bottom — соответствует нижнему положению. Эту же модель мы будем использовать в инвентаре. Top — верхнее, а double — двойная плита, которая будет использовать модель обычного блока. Эту модель мы создали много уроков назад, так что сразу перейдем к плитам. Имена плит можете выбирать сами, но они должны соответствовать тем, что указаны в blockstates.
models/block/sun_bricks_slab.json
1 2 3 4 5 6 7 8 |
{ "parent": "block/slab", "textures": { "bottom": "tutorial_mod_gs:block/sun_bricks", "top": "tutorial_mod_gs:block/sun_bricks", "side": "tutorial_mod_gs:block/sun_bricks" } } |
Ничего нового, ссылаясь на родителя мы определяем текстуры, которые будут использованы. В качестве текстуры выступает все тот же солнечный кирпичик.
models/block/sun_bricks_slab_top.json
1 2 3 4 5 6 7 8 |
{ "parent": "block/slab_top", "textures": { "bottom": "tutorial_mod_gs:block/sun_bricks", "top": "tutorial_mod_gs:block/sun_bricks", "side": "tutorial_mod_gs:block/sun_bricks" } } |
Модель для верхнего положения блока, от предыдущей отличает только родитель.
models/item/sun_bricks_slab.json
1 2 3 |
{ "parent": "tutorial_mod_gs:block/sun_bricks_slab" } |
И как я и говорил, для предмета в инвентаре берем модель нижнего положения плиты и можем запускать.
На этом пока все. До скорого!