RingoWay Developer

RingoWay Developer 

Разработчик майнкрафт модов

70subscribers

44posts

goals1
6 of 100 paid subscribers
Лекции по NeoForge 1.21.10

Forge Моддинг 1.20.1 — Лекция 9: Рецепты для верстака и печи

Приветствую, друзья!
Предыдущая лекция
Forge Моддинг 1.20.1 — Лекция 8: BlockBehaviour.Properties: 33 параметра блока
Цель лекции
Научится добавлять рецепты крафта для предметов и блоков, включая форменные, бесформенные и плавильные. 
Структура лекции
1. Типы рецептов
Форменные (Shaped): Рецепты с заданным расположением предметов (например, меч, инструменты).
Бесформенные (Shapeless): Рецепты без строгого шаблона (например, красители).
Плавка (Smelting): Переплавка ресурсов в печи.
Для начала необходимо создать папку recipes в пути data/{mod_id}/здесь:
1.1. Форменные рецепты (Shaped)
Сначала я создам json с названием того, что будет создаваться:
Содержание файла:
Построчный разбор:
"type": "minecraft:crafting_shaped"
Тип рецепта: форменный (предметы должны быть расположены в строгом порядке).
"category": "misc"
Категория рецепта: разное (отображается во вкладке «Misc» в книге рецептов, в верстаке).
"key": { ... }
Определение символов для шаблона:
• "p" — символ, используемый в шаблоне.
• "item": "rinova:pinkylite_crystal" — предмет, который заменяет символ p.
Можно указывать разные буквы и разные ресурсы, если в крафте используется несколько предметов
"pattern": [ ... ]
Шаблон расположения предметов:
• "ppp" — первая строка сетки 3×3.
• "ppp" — вторая строка.
• "ppp" — третья строка.
Если посмотреть со стороны, то видно как вырисовывается сетка верстака 3x3.
Итог: квадрат 3×3 из кристаллов Pinkylite.
"result": { "item": "rinova:pinkylite_crystal_block" }
Результат крафта: блок Pinkylite Crystal Block.
"show_notification": true
Если true, при первом крафте игрок получит уведомление: «Разблокирован новый рецепт!».
Пример создание шамотной смеси из моего мода, где используется несколько предметов и специфичный паттерн:
Если в result написать count, то можно указать количество созданных предметов.
1.2. Бесформенный рецепт (Shapeless)
Так же создаю новый файл:
Содержание файла:
Построчный разбор:
"type": "minecraft:crafting_shapeless"
Тип рецепта: бесформенный (предметы можно располагать в любом порядке).
"category": "misc"
Категория рецепта: разное.
"ingredients": [ ... ]
Список ингредиентов:
{ "item": "rinova:pinkylite_crystal_block" } — для крафта требуется 1 блок Pinkylite Crystal Block.
"result": { ... }
Результат крафта:
• "item": "rinova:pinkylite_crystal" — предмет, который получится.
• "count": 9 — количество предметов на выходе (9 кристаллов).
1.3 Плавка (Smelting)
Новый файл, назову pinkylite_crystal_smelting, так как речь о плавке, плюс названия файлов не могут повторятся. Если что названия файлов ни на что не влияют, это просто чтобы вам удобнее было ориентироваться по тому, какой файл к какому рецепту относится
Содержание файла:
Построчный разбор:
"type": "minecraft:smelting"
Тип рецепта: плавка (обработка в печи).
"category": "misc"
Категория рецепта: разное (влияет на отображение в книге рецептов).
Другие варианты: food (еда), blocks (блоки), tools (инструменты).
"cookingtime": 200
Время плавки в тиках (1 тик = 0.05 секунды).
200 тиков = 10 секунд (стандартное время для печи).
"experience": 2.0
Количество опыта, которое получит игрок после завершения плавки.
2.0 — большое значение (например, для ценных ресурсов).
0.1 — небольшое значение (например, для простых ресурсов).
"group": "pinkylite"
Группирует рецепты в книге рецептов (Recipe Book) игрока.
Рецепты с одинаковым group отображаются как один в списке, даже если ингредиенты разные.
"ingredient": { ... }
Ингредиент для плавки:
"item": "rinova:pinkylite_ore" — требуется пинкилитовая руда.
"result": "rinova:pinkylite_crystal"
Результат плавки: пинкилитовый кристалл.
Можно создать более сложную запись, к примеру, чтобы создать пинкилитовый кристалл, можно использовать не только обычную пинкилитовую руду, но еще и глубинносланцевую версию, а так же сделать так, чтобы выходное количество было не 1 предмет, а 2, в коде это выглядит так:
Вместо фигурных скобок {} у ingredient, когда была речь про 1 предмет, для группы предметов используется уже другая запись:
[{item},{item}]
Так же и с result, вместо строковой записи предмета, теперь необходимо использовать фигурные скобки с указанием результата.
2. Тестирование
Весь написанный код:
https://github.com/ringoway/Rinova/pull/7/commits/542140f43b808851cce8c83d93d9b6ee079e4d4e
Следующая лекция
Forge Моддинг 1.20.1 — Лекция 10: Кастомный предмет: метод use — активация в воздухе
Очень полезные и информативные лекции! Каждый код поясняется и все сразу становится понятно, спасибо за это большое!
Ivan Monin, и тебе спасибо за обратную связь!
Классные уроки! Я всегда хотел что-нибудь своё сделать в майне
Maksik210, Спасибо за такой отзыв!
Спасибо, что ты есть<3
на последнем фото вроде как ошибка в 4 строке
Subscription levels4

🌱Junior Dev

$3.5 per month
Начало пути в моддинге

Включено:
✅ Базовые лекции по моддингу
✅ Шаблоны и примеры кода (Github)
✅ Приватный Telegram-чат "Сообщество мододелов"
✅ Роль "🌱Junior Dev" в Discord
+ chat

🛠️Middle Dev

$5 per month
Практикующий моддер

Включено:
✅ Всё из уровня «Junior Dev»
✅ Продвинутые лекции по моддингу
✅ Роль "🛠️Middle Dev" в Discord
+ chat

🎓Senior Dev

$7.2 per month
Опытный разработчик

Включено:
✅ Всё из уровня «Middle Dev»
✅ Большая благодарность!
✅ В будущем будут расширенные лекции 
✅ Роль "🎓Senior Dev" в Discord
+ chat

🎓Architect Dev

$12.5 per month
Опытный разработчик

Включено:
✅ Всё из уровня «Senior Dev»
✅ Огромная благодарность!
✅ В будущем будут расширенные лекции 
✅ Роль "🎓Architect Dev" в Discord
+ chat
Go up