配方

来自Minecraft Wiki
跳转至: 导航搜索
Information icon.svg
此特性为Java版独有。
Nathan Adams Mojang avatar.png
它在原版生存模式*工作的方式是你通过手动合成来“发现”一种配方,或者满足条件让我们认为“好的,你现在有木棍了,我来教你怎么做镐子”。在配方被“发现”后便在配方书(在合成屏幕可以点)中可用了。这之后你可以看到你已经发现的所有配方以及如何合成它们,你就不用再查询合成形状和原料了。

*我说的是原版生存模式,因为这可以自定义。举个例子,一个自定义地图可能要求你只合成制定的东西,而不是别的。在原版生存中这纯粹是一个帮助你记忆不常用合成配方的工具,也可以告诉你怎么合成你不知道的新东西。

——Dinnerbone评论于使用配方[1]

配方(Recipes)是一种引导新玩家游玩Minecraft的方式,通过帮助玩家了解合成、烧炼以及其他的方块和物品转化方式来使玩家熟悉游戏。

配方由数据包‌‌[仅Java版]或者附加包‌‌[仅基岩版]配置,从其中读取数据。所有的合成烧炼冶炼营火烧烤烟熏锻造切石配方都使用这个系统。在基岩版中,制图酿造也使用这个系统。制图台‌‌[仅Java版]织布机配方现在无法被控制。

获取[编辑 | 编辑源代码]

配方可通过多种方式获得。使用一个配方会使玩家自动发现它。配方也可以通过使用/recipe命令或作为完成进度的奖励来获得。原版生存有多种进度可以给予配方,比如在玩家获得配方的原料时触发。

一旦配方被发现,就将被加入玩家的配方书。已发现的配方储存在玩家recipeBookNBT中。

用途[编辑 | 编辑源代码]

已发现的配方可在玩家的配方书中找到。然而,玩家并不需要发现配方来使用此配方,除非/gamerule doLimitedCrafting被设置为true

配方只会在玩家使用与当前配方类型所匹配的方块时显示。例如,烧炼配方将只在熔炉的界面中显示。当在背包中使用配方书时,只有能在玩家的2×2背包合成栏内使用的配方才会显示。

JSON格式[编辑 | 编辑源代码]

数据包data/(namespace)/recipes文件夹中的自定义配方以分别的JSON文件储存了世界的配方数据。

一个ID为foo:path/to/file的配方所对应的JSON文件应放置于一个数据包data/foo/recipes/path/to/file.json目录。

配方JSON文件根据类型不同,有着不同的结构,不过它们在根标签下都有着一个 type标签。

配方类型列表[编辑 | 编辑源代码]

blasting[编辑 | 编辑源代码]

代表一个高炉配方。

默认烧炼时间是100刻,即5秒。

campfire_cooking[编辑 | 编辑源代码]

代表一个营火配方。

默认烧炼时间是100刻,即5秒。但所有的原版营火配方都将烧炼时间修改为了600刻,即30秒。营火配方并不会触发recipe_unlocked判据。

crafting_shaped[编辑 | 编辑源代码]

代表一个工作台的有序合成配方。

pattern中可以使用任何除了空格( )以外单字符作为key,因为空格代表一个空的合成栏位。

配方的输出物品不能设置自定义的NBT数据标签。

  • 根标签
    • 配方共通属性 see Template:Nbt inherit/recipe/serializers/common/template
    •  pattern:由单字符键所组成的数组,用于描述一个2×2或3×3的有序合成图案。该数组中的一个字符串代表合成方格中的一行。每个字符串应写至多3个键,并且包含键的个数应当相同。空格代表一个空的合成栏位。
    •  key:所有该有序合成配方用到的键。
      •  (一个键):该键所代表的物品。
      •  (一个键):该键所能代表的一系列物品。
    •  result:该配方的输出物品。
      •  count:可选。物品的数量。如不填写将默认为1。
      •  item:一个物品ID

crafting_shapeless[编辑 | 编辑源代码]

代表一个工作台的无序合成配方。

ingredients中定义的原料数量应在1至9个之间。

配方的输出物品不能设置自定义的NBT数据标签。

  • 根标签
    • 配方共通属性 see Template:Nbt inherit/recipe/serializers/common/template
    •  ingredients:该无序合成配方的一系列原料。数量应在1至9个之间。
      • :一个包含单一物品的原料。
      • :一个包含一系列可选物品的原料。
    •  result:该配方的输出物品。
      •  count:可选。物品的数量。如不填写将默认为1。
      •  item:一个物品ID

crafting_special_*[编辑 | 编辑源代码]

代表一个工作台的特殊配方。这些配方都是由游戏内部的代码处理的,无法通过JSON文件来修改。

"vanilla"数据包被禁用时,你可以用它们来重新启用你所需要的特殊合成配方。

  • 根标签
    •  type:一个代表该配方的命名空间ID。

不像其他大多数配方,特殊配方并没有"group"字段,也不能显示在配方书当中。

  • armordye
盔甲染色配方。
常规配方不能处理各种染料。
  • bannerduplicate
旗帜复制配方。
常规配方不能复制有关旗帜物品的NBT数据。
  • bookcloning
成书复制配方。
常规配方不能复制有关成书物品的NBT数据,也不能控制书的副本级别。
  • firework_rocket
使用烟火之星合成烟花火箭的配方。
常规配方不能灵活地从烟火之星物品复制NBT数据到烟花火箭物品。
  • firework_star
  • firework_star_fade
烟火之星的合成与色彩淡化配方。
常规配方不能灵活地向烟火之星物品添加NBT数据。
  • mapcloning
地图复制配方。
常规配方不能复制有关地图物品的NBT数据。
  • mapextending
地图比例缩小配方。
常规配方不能更新有关地图物品的NBT数据。
  • repairitem
物品修复配方。
常规配方不能更新有关物品损伤值的数据。
  • shielddecoration
给盾牌添加图案的配方。
常规配方不能把旗帜物品的NBT数据添加到盾牌物品。
  • shulkerboxcoloring
潜影盒染色配方。
常规配方不能复制潜影盒物品的NBT数据到潜影盒物品。
  • tippedarrow
药箭配方
常规配方不能复制滞留药水物品的NBT数据到药箭物品。
  • suspiciousstew
迷之炖菜配方。
常规配方不能决定基于不同种类的花所给的状态效果

smelting[编辑 | 编辑源代码]

代表一个熔炉的配方。

默认烧炼时间是200刻,即10秒。

smithing[编辑 | 编辑源代码]

代表一个锻造台配方。

smoking[编辑 | 编辑源代码]

代表一个烟熏炉的配方。

默认烧炼时间是200刻,即10秒。

stonecutting[编辑 | 编辑源代码]

代表一个切石机的配方。

跟有序合成和无序合成配方中的 count字段不一样,这里的 count字段不能省略,必须填写。

历史[编辑 | 编辑源代码]

Java版
1.1217w13a为大多数合成配方加入了配方系统。
17w16a为配方JSON格式加入了“group”键。
1.1317w47a从配方JSON格式移除了“data”键。
17w48a自定义配方现在可以加入数据包中。
加入了这13种特殊配方类型
用特殊配方类型将许多特殊合成配方转换进配方系统。
17w49a为配方JSON格式加入了“tag”键。
18w06a熔炉配方现在使用配方系统。
type加入smelting
加入了字符串result
加入了experience
加入了cooktime
1.1418w43a加入了 crafting_special_suspiciousstew 特殊配方类型。
18w48a移除了这3种特殊配方类型
18w50a加入了blastingsmoking2种配方类型。
19w02a移除了这2种特殊配方类型
加入了campfire_cooking配方类型。
19w04a加入了stonecutting配方类型。
1.14.3pre3重新加入了crafting_special_repairitem配方类型。
基岩版
1.12.0beta 1.12.0.2将绝大多数合成配方引入配方系统。

漏洞[编辑 | 编辑源代码]

关于“配方”的漏洞由漏洞追踪器维护,请在此汇报漏洞。

参考[编辑 | 编辑源代码]