Привет всем! Мы создали ступени, плиту, другие блоки, но достать их в выживании не выйдет. Или, как говорят в народе, нужны рецепты крафта. Вариантов создания сейчас появилось много, но основные крафты всё так же можно выполнить при помощи вестака и печи, а потому сегодня напишем рецепты именно для них. Ну, ладно, бонусом ещё добавим рецепты для камнереза, коптильни и костра.
Продолжаем предыдущий урок! НО! За кадром я немного изменил текстуру, а также добавил разбитую версию блока и новый предмет.
Какой будет план? У нас есть каменная палка, ей нужен рецепт. Потом из неё мы делаем новый предмет – каменную пластину, а из пластины уже делаем блок. Из блока делаем ступени, плиты и т.д. Так же наш блок можно будет «разбить» в печи.
Ладно, погнали!
Больше ресурсов!
Рецепты в игре созданы при помощи целой кучи разных .json файлов. Разные рецепты будут иметь разные параметры, разные переменные и т.д. Но на деле ничего сложного. Так же, в отличие от всяких blockstates файлов, где в именах должно было быть строгое соответствие – тут такого нет. Игра будет собирать буквально все рецепты из папки recipes вне зависимости от имени (но имена всё еще должны соответствовать определённым правилам, а иначе ошибка). Упомянутая recipes должна быть в соответствующей нашему Mod Id папке в каталоге data. Вот весь путь:
Один рецепт я уже добавил, и именно его мы сейчас разберём. Вот он в игре:
А вот и его код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
{ "type": "minecraft:crafting_shaped", "pattern": [ "X", "X" ], "key": { "X": { "item": "minecraft:stone" } }, "result": { "item": "tutorial_mod_gs:stone_stick", "count": 2 } } |
Тип — крафт с формой, и дальше следует шаблон размещения. В key расположены пары: имя в шаблоне – предмет. Result тоже очевиден, предмет и количество.
Думаю, что тут ничего непонятного нет. Попрошу заметить, что для обращения к предметам мы используем имена их «родителей». Если это элемент из игры, то – minecraft, а если я решу использовать свои, то будет tutorial_mod_gs.
Далее у нас есть ещё один вид рецептов для верстака – бесформенные. В этот раз начнём с кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
{ "type": "minecraft:crafting_shapeless", "ingredients": [ { "item": "minecraft:stone" }, { "item": "minecraft:stick" } ], "result": { "item": "tutorial_mod_gs:stone_stick" } } |
Пример явно не лучший, но теперь для получения каменной палки можно просто бросить в любые случайные слоты верстака палку и камень:
Ну, думаю тут всё понятно. Т.е. crafting_shaped – когда форма, которую нужно в точности повторить, а crafting_shapeless – когда есть несколько предметов, положение которых нас не особо интересует. Главное, чтобы были.
Есть ещё теги
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
{ "type": "minecraft:crafting_shaped", "pattern": [ " S ", "SCS", "LLL" ], "key": { "L": { "tag": "minecraft:logs" }, "S": { "item": "minecraft:stick" }, "C": { "tag": "minecraft:coals" } }, "result": { "item": "minecraft:campfire" } } |
Как видите, на уголь (coals) указывает не item – предмет, а tag – тег. Это потому, что рецепту не важно какой будет уголь, каменный, древесный, а может мы сами создадим уголь и добавим его в теги (как с забором). Рецепту главное, чтобы был какой-то предмет с тегом уголь. Таким образом мы вместо нескольких однообразных рецептов получаем возможность создать один универсальный.
Еще рецептов?
Также, по примеру из игровых версий блоков, я добавил рецепты для стены, ступеней и плиты:
Стена:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
{ "type": "minecraft:crafting_shaped", "pattern": [ "###", "###" ], "key": { "#": { "item": "tutorial_mod_gs:stone_stick_block" } }, "result": { "item": "tutorial_mod_gs:stone_stick_wall", "count": 6 } } |
Ступени:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
{ "type": "minecraft:crafting_shaped", "pattern": [ "# ", "## ", "###" ], "key": { "#": { "item": "tutorial_mod_gs:stone_stick_block" } }, "result": { "item": "tutorial_mod_gs:stone_stick_stairs", "count": 4 } } |
И плита:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
{ "type": "minecraft:crafting_shaped", "pattern": [ "###" ], "key": { "#": { "item": "tutorial_mod_gs:stone_stick_block" } }, "result": { "item": "tutorial_mod_gs:stone_stick_slab", "count": 6 } } |
Обязательно ещё посмотрите интересующие вас рецепты в ресурсах игры, а с верстаком пока всё!
Рецепты Камнерез
Одни из самых простых в реализации. По сути, пишем просто тип рецепта, ингредиент и предмет-результат.
1 2 3 4 5 6 7 8 |
{ "type": "minecraft:stonecutting", "ingredient": { "item": "tutorial_mod_gs:stone_stick_block" }, "result": "tutorial_mod_gs:stone_stick_wall", "count": 1 } |
1 2 3 4 5 6 7 8 |
{ "type": "minecraft:stonecutting", "ingredient": { "item": "tutorial_mod_gs:stone_stick_block" }, "result": "tutorial_mod_gs:stone_stick_stairs", "count": 1 } |
1 2 3 4 5 6 7 8 |
{ "type": "minecraft:stonecutting", "ingredient": { "item": "tutorial_mod_gs:stone_stick_block" }, "result": "tutorial_mod_gs:stone_stick_slab", "count": 2 } |
1 |
И вот результат! |
Рецепты: Печь
И хоть в игре есть своя система тегов, но рецепты для печи пишут отдельно. Вернее, для всех печей, костров и т.д.
Вот вам рецепт баранины для обычной печи:
1 2 3 4 5 6 7 8 9 |
{ "type": "minecraft:smelting", "ingredient": { "item": "minecraft:mutton" }, "result": "minecraft:cooked_mutton", "experience": 0.35, "cookingtime": 200 } |
Тип рецепта (указывает на печь), требуемый ресурс, результат, время готовки и опыт за готовку. Все максимально понятно.
Есть такой же для коптильни:
1 2 3 4 5 6 7 8 9 |
{ "type": "minecraft:smoking", "ingredient": { "item": "minecraft:mutton" }, "result": "minecraft:cooked_mutton", "experience": 0.35, "cookingtime": 100 } |
Поменялись только тип (теперь коптильня) и время. А ещё есть рецепт для костра:
1 2 3 4 5 6 7 8 9 |
{ "type": "minecraft:campfire_cooking", "ingredient": { "item": "minecraft:mutton" }, "result": "minecraft:cooked_mutton", "experience": 0.35, "cookingtime": 600 } |
Снова же: тип и время.
Для моих блоков я написал такой рецепт:
1 2 3 4 5 6 7 8 9 |
{ "type": "minecraft:smelting", "ingredient": { "item": "tutorial_mod_gs:stone_stick_block" }, "result": "tutorial_mod_gs:cracked_stone_stick_block", "experience": 0.35, "cookingtime": 200 } |
Чтобы использовать другие печи или костёр – просто меняйте тип в время. А вот уже работающий пример из игры:
На этом пока всё. В последних версиях в игре стаёт все больше столов для крафта и других способов взаимодействия для создания чего-либо, но всё ещё основными и важными остаются верстак и печь, их мы сегодня и разобрали. Код смотрите тут, до скорого!
Пингбэк: Создание модов для Minecraft 1.15 – GeekStand