教程:制作附加包/配方

来自Minecraft基岩版开发Wiki
218.12.12.74留言2022年3月6日 (日) 10:57的版本 →‎有序配方:​添加了有序配方的制作教程
配方
系列教程
所属系列
难度
初级
前置知识
适用版本
国际版
实践设备
所需软件

在阅读本教程前,请先确保自身已有一定的附加包基础。在浏览完本教程之后,你将学会如何自定义配方。

概述

配方使游戏元素更加丰富,并为许多内容添加了获取途径。在学习了自定义物品方块后,您已经为游戏添加了一些新元素,现在将尝试学习通过自定义配方来为它们添加获取的途径。

配方存储在行为包的recipes文件夹中。

合成配方

有序配方

主条目:有序配方

添加自定义配方首先需要了解一下自定义配方 行为部分的基本结构。 自定义配方配置文件存储在行为包中的 recipes文件夹下,其数据结构如下:

{
  "format_version": "1.12",
  "minecraft:recipe_shaped": {
    "description": {  },//描述
    "tags": [ ],//标签(配方类别)
    "pattern": [ ],//样式
    "key": { },//图例(配方材料)
    "result": { }//结果
  }
}

如上,配方配置文件由描述、配方类别、配方排列,配方材料与合成结果五部分内容构成。下面对上述五种基本内容进行了简要阐述: 描述 (description) 对象储存了用于描述该配方的基础信息,其数据结构如下: 该属性用于在应用于某个世界的所有包中唯一标识配方。配方标识符没有名称空间要求,只要单个包中没有两个相同的配方标识符可以匹配即可。 配方类别 (tags) 数组储存了用于描述该配方属于哪一类配方,其内容如下: 样式 (pattern) 数组储存了用于描述该配方的排列样式,其内容中有多组字符串,每组字符串代表合成表中的一行,字符串由1-3个字符组成,每个字符在该配方中代表一个物品。 如果您需要将某一格留空,请使用空格,如果某一列为空,请删除代表本列的空格。 下面是一个配方的样式示例

    "pattern": [
      "XX",
      "X#",
      " #"
    ]

此配方代表一个类似于原版斧的配方排列方式。 配方材料(key)对象储存了用于描述该配方样式中的字符代表的物品,物品可以通过字符串引用或items对象,字符串引用的内容如下:

"字符":"物品的命名空间id:物品特殊值"//:物品特殊值为可选项,不填则所有特殊值均可

items对象的内容如下:

      "字符": {
        "item": "物品命名空间id"
        "data": "物品特殊值,支持Molang,可选项"
        "count": "物品数量,可选项"//此处不可用,物品数量仅在items对象作为工作台配方的合成结果时可用。
      }

结果 (result) 对象储存了用于描述该配方的制作结果的物品,物品可以通过字符串引用或items对象,引用方法同上。

下面是原版斧的配方

{
  "format_version": "1.12",
  "minecraft:recipe_shaped": {
    "description": {
    "identifier": "minecraft:diamond_axe"
    },

    
    "tags": [ "crafting_table" ],
    "pattern": [
      "XX",
      "X#",
      " #"
    ],
    "key": {
      "#": {
        "item": "minecraft:stick"
      },
      "X": {
        "item": "allnew:reddiamond"
      }
    },
    "result": {
      "item": "minecraft:diamond_axe"
    }
  }
}

无序配方

主条目:无序配方

熔炉配方

主条目:熔炉配方

酿造配方

主条目:酿造配方