配方¶
配方(Recipe)是Minecraft基岩版中定义物品合成规则的数据驱动系统。配方规定了输入材料和输出产物之间的对应关系,以及合成所使用的工作台或容器类型。
概述¶
配方定义文件以JSON格式编写,存放在行为包的recipes/目录中。每个配方文件定义一条或多条合成规则,游戏引擎在加载行为包时读取所有配方定义并注册到合成系统中。
配方通过赋命名空间标识符唯一标识。一个配方文件中通常只定义一条配方。
配方类型¶
基岩版支持多种配方类型:
有序配方¶
有序配方(Shaped Recipe)要求材料在合成网格中按照特定的排列方式放置。合成网格中每个位置对应的材料由模式(pattern)和材料映射(key)共同定义。
有序配方的根键为minecraft:recipe_shaped。
无序配方¶
无序配方(Shapeless Recipe)不要求材料的排列位置,只要求合成网格中包含指定的全部材料即可。
无序配方的根键为minecraft:recipe_shapeless。
烧炼配方¶
烧炼配方(Furnace Recipe)定义了物品在熔炉、高炉或烟熏炉中的烧炼规则。烧炼配方指定输入物品和输出物品。
烧炼配方的根键为minecraft:recipe_furnace。
酿造配方¶
酿造配方(Brewing Recipe)定义了酿造台中药水的酿造规则。
切石配方¶
切石配方(Stonecutting Recipe)定义了切石机中的方块加工规则。
锻造配方¶
锻造配方(Smithing Recipe)定义了锻造台中物品的升级或转化规则。
合成标签¶
配方定义中包含一个tags字段,用于指定该配方可以在哪些合成站中使用。常见的合成标签包括crafting_table(工作台)、furnace(熔炉)、blast_furnace(高炉)、smoker(烟熏炉)、stonecutter(切石机)、smithing_table(锻造台)等。
自定义方块也可以通过声明自定义的合成标签来创建自定义合成站。
解锁配方¶
配方支持通过unlock字段指定解锁条件。在配方书系统中,只有满足解锁条件的配方才会对玩家可见。解锁条件可以基于玩家的背包内容或其他游戏状态。