
Recipe Modification library
Мод Recipe Modification library для автоматической правки крафтов через JSON. Идеально для создателей сборок и датапаков - больше не нужно перезаписывать рецепты вручную.
Recipe Modification library (РМЛ)
По сути, Recipe Modification library - это такой волшебный инструмент для тех, кто любит копаться в рецептах Майнкрафта. Сам по себе мод ничего не делает, но он даёт возможность создателям сборок модов, датапаков и другим разработчикам гибко менять любые рецепты прямо во время запуска игры. Причём делает это просто и элегантно.
Зачем это нужно?
В ванильном Майнкрафте, когда хочешь изменить рецепт, приходится вручную переопределять каждый конкретный крафт. А если модов много - начинается ад. Два мода могут перезаписать один и тот же рецепт, и начнутся конфликты. РМЛ решает эту проблему раз и навсегда.
Вместо того чтобы перекрывать существующие рецепты вручную, вы просто описываете модификаторы - правила, которые применяются ко всем рецептам автоматически. И да, они работают с любыми рецептами от любых модов, без несовместимостей.
Как это работает на примере
Допустим, вы считаете, что крафт кнопок - это развод. Всего одна кнопка из камня? Серьёзно? С РМЛ это можно поправить за пару строк:
{
"target_recipes": "#minecraft:buttons",
"modifiers": [
{
"type": "modify_result_item",
"function": "set_count",
"count": 8
}
]
}
Готово. Теперь все кнопки крафтятся по 8 штук.
А вот сценарий посложнее. Представьте, что какой-то мод mod_xyz не использует правильный тег для медных самородков (copper nuggets), и его рецепты несовместимы с другими модами. Обычно такое лечится удалением и переписыванием каждого рецепта. С РМЛ - просто добавляем альтернативу:
{
"target_recipes": {
"type": "namespace_equals",
"namespace": "mod_xyz"
},
"modifiers": [
{
"type": "add_alternative",
"ingredients": "mod_xyz:copper_nugget",
"alternative": {
"tag": "c:copper_nuggets"
}
}
]
}
И вуаля - mod_xyz понимает общий тег c:copper_nuggets, всё работает.
Как этим пользоваться
Самый простой способ - через JSON-файлы в датапаке. Кидаешь их в /data/название_пака/recipe_modifiers/ и всё. Мод сам подхватит.
Есть и Java API для разработчиков - можно посмотреть в пакете api класса RecipeModification.
Подробное описание синтаксиса JSON можно найти в документации (к ней прилагаются рабочие тестовые модификаторы для примера).
Важные нюансы
- Мод работает и на клиенте, и на сервере, но нужен на обоих, если меняются рецепты на сервере.
- Если вы собираете модпак - это практически must-have. Сэкономит часы на правке рецептов.
- Модификаторы накладываются при запуске игры, так что перезагрузка датапака (reload) их не переприменит.
Recipe Modification library не панацея, но если вы любите автоматизацию и ненавидите вручную переписывать рецепты - посмотрите в его сторону. Скачайте библиотеку и упростите себе жизнь.
