1. Вики
  2. /Предметы
  3. /Рецепты крафта и печи

Рецепты крафта и печи

Добавь в Minecraft Bedrock рецепты с формой, без формы и для печи: шаблоны, ключи, теги предметов, открытие в книге рецептов, станции и приоритет.

Предмет, который никто не может получить, - это не очень весело. В этом гайде ты добавишь три рецепта для рубиновых предметов из прошлых гайдов: рецепт с формой для рубинового меча, рецепт без формы для рубинового яблока и рецепт для печи, который переплавляет необработанный рубин в рубин. А ещё узнаешь, как книга рецептов открывает рецепты и что делают tags и priority.

Быстрый способ: GodCraft

В GodCraft есть объекты рецептов для верстака, печи, кузнечного стола и варочной стойки с настоящей сеткой крафта. Ты просто ставишь предметы в ячейки нажатием, а не печатаешь шаблон.

  1. Открой Мастерскую и добавь в аддон рецепт Крафт или Печь.
  2. Заполни сетку своими или ванильными предметами.
  3. Выбери результат и сколько штук получается.
  4. Нажми Экспорт. Файл рецепта будет написан за тебя.

Дальше на этой странице показано, как выглядят эти файлы.

Вручную

Рецепты хранятся в пакете поведения, в папке recipes. Каждый рецепт - это один JSON-файл, и название файла для игры не важно. Мы используем пространство имён myname. Везде замени его на своё.

У каждого рецепта одинаковое базовое устройство:

  • тип: minecraft:recipe_shaped, minecraft:recipe_shapeless или minecraft:recipe_furnace
  • description.identifier: уникальный ID рецепта (не предмета)
  • tags: какие станции крафта могут его использовать
  • unlock: когда он появляется в книге рецептов
  • ингредиенты и результат

Рецепт с формой

Рецептам с формой важно, где лежит каждый предмет в сетке, как у меча, который должен быть вертикальной линией.

BP/recipes/ruby_sword.json
{
  "format_version": "1.20.10",
  "minecraft:recipe_shaped": {
    "description": {
      "identifier": "myname:ruby_sword"
    },
    "tags": ["crafting_table"],
    "pattern": [
      "R",
      "R",
      "S"
    ],
    "key": {
      "R": {
        "item": "myname:ruby"
      },
      "S": {
        "item": "minecraft:stick"
      }
    },
    "unlock": [
      {
        "item": "myname:ruby"
      }
    ],
    "result": {
      "item": "myname:ruby_sword"
    }
  }
}

Как работает шаблон:

  1. pattern рисует сетку. Каждая строка - это ряд, а каждый символ - одна ячейка. До 3 рядов, в каждом до 3 символов.
  2. Пробел означает "оставь эту ячейку пустой". Для кирки ты бы написал "RRR", " S ", " S ".
  3. key объясняет, что означает каждый символ. Буквы выбираешь ты. Бери те, что легко запомнить.
  4. result - то, что ты получаешь. Добавь "count": 4, чтобы получать больше одного.

Шаблону не обязательно занимать всю сетку 3x3. Меч выше шириной 1 и высотой 3, поэтому его можно скрафтить в любом столбце сетки. Зеркальные варианты шаблона по умолчанию тоже работают.

Рецепт без формы

Рецептам без формы важно только, что лежит в сетке, а не где. Хорошо подходят, чтобы что-то смешать.

BP/recipes/ruby_apple.json
{
  "format_version": "1.20.10",
  "minecraft:recipe_shapeless": {
    "description": {
      "identifier": "myname:ruby_apple"
    },
    "tags": ["crafting_table"],
    "ingredients": [
      {
        "item": "minecraft:apple"
      },
      {
        "item": "myname:ruby",
        "count": 2
      }
    ],
    "unlock": [
      {
        "item": "minecraft:apple"
      }
    ],
    "result": {
      "item": "myname:ruby_apple"
    }
  }
}

Каждая запись в ingredients - это один предмет. Добавь "count", когда нужно несколько одинаковых предметов: здесь игрок кладёт одно яблоко и два рубина в любое место сетки. Рецепт без формы может использовать всего до 9 предметов.

Рецепт для печи

Рецепты для печи превращают один предмет в другой с помощью огня. Они самые простые:

BP/recipes/smelt_raw_ruby.json
{
  "format_version": "1.20.10",
  "minecraft:recipe_furnace": {
    "description": {
      "identifier": "myname:smelt_raw_ruby"
    },
    "tags": ["furnace", "blast_furnace"],
    "input": "myname:raw_ruby",
    "output": "myname:ruby",
    "unlock": [
      {
        "item": "myname:raw_ruby"
      }
    ]
  }
}

input кладётся в верхнюю ячейку, output получается на выходе. Сделай myname:raw_ruby так же, как рубин в гайде Твой первый предмет, или возьми для теста ванильный предмет.

Поле tags: какая станция?

tags перечисляет все станции, которые принимают рецепт. Рецепт может работать сразу в нескольких.

ТегСтанция
crafting_tableВерстак (и сетка 2x2 в инвентаре, если шаблон помещается)
stonecutterКамнерез
furnaceПечь
blast_furnaceПлавильная печь (в ванили для руд и металла)
smokerКоптильня (в ванили для еды)
campfire, soul_campfireКостры (еда)

Так что рецепт, который готовит еду, должен перечислять "furnace", "smoker", "campfire", "soul_campfire", как это сделано у ванильной сырой говядины.

Теги предметов как ингредиенты

Вместо одного конкретного предмета ключ или ингредиент может принимать целую группу предметов через tag:

Внутри key
"P": {
  "tag": "minecraft:planks"
}

Теперь в эту ячейку подходят любые доски. Именно так ваниль позволяет скрафтить верстак из дуба, берёзы или любого другого дерева. Другие полезные ванильные теги: minecraft:logs и minecraft:wooden_slabs.

Поле unlock: книга рецептов

unlock решает, когда рецепт появится в книге рецептов игрока. Без него игрокам придётся угадывать твой рецепт.

  • Список предметов: рецепт открывается, как только игрок подобрал любой из этих предметов. Здесь тоже можно использовать "tag", например { "tag": "minecraft:planks" }.
  • Контекст: открытие в особой ситуации, записывается объектом, а не списком:
Всегда в книге рецептов
"unlock": {
  "context": "AlwaysUnlocked"
}

Другие контексты, которые использует ваниль: PlayerInWater и PlayerHasManyItems. Для большинства своих рецептов удобнее всего открывать их по главному ингредиенту.

Совет

Открывай рецепт по тому ингредиенту, который игроки получают первым. Для меча это рубин, так что рецепт появится, как только найдут первый рубин.

Приоритет: когда рецепты конфликтуют

Если у двух рецептов одинаковые ингредиенты в одинаковой форме, игре приходится выбирать один. Поле "priority" (целое число, пишется рядом с tags) задаёт порядок рецептов относительно друг друга. Ваниль использует небольшие числа вроде -1, 0, 1 и 2 для пересекающихся рецептов, например для рецептов бочки, которые принимают любые деревянные плиты, рядом с рецептами для одного вида плит.

Но приоритет - это крайняя мера. Лучше вообще избегать конфликтов: посмотри ванильные предметы, выбери шаблон, который не использует ни один другой рецепт, и проверь, что твой рецепт даёт ожидаемый результат.

Проверяем

  1. Загрузи пакеты в мир (смотри Экспорт и установка).
  2. Выдай себе ингредиенты командой /give, например /give @s myname:ruby 5.
  3. Открой книгу рецептов. Твои рецепты должны появиться, когда у тебя будут предметы для открытия.
  4. Скрафти каждый и переплавь необработанный рубин.

Если что-то не работает

Что ты видишьСкорее всего, причина
Рецепт ничего не делаетОпечатка в ID предмета, или символа из pattern нет в key
Его нет в книге рецептовНет поля unlock, или у игрока никогда не было предмета для открытия
Два рецепта мешают друг другуОдинаковые ингредиенты и форма: измени шаблон или задай priority
Печь не принимает предметВ списке tags нет этого вида печи
У двух рецептов одинаковый IDКаждый description.identifier должен быть уникальным

Больше решений в гайде Когда что-то сломалось. Нужно что-то скрафтить? Сделай еду, оружие и инструменты или броню.

Предметы: Гайды

We use cookies to improve your experience and analyse site traffic. Learn more