- 致编者:请牢记我们的域名wiki.mcbe-dev.net!
- 致编者:欢迎加入本Wiki的官方交流QQ群或Discord服务器!
- 基岩版1.19.31现已发布!(了解更多)
- Inner Core现已支持Xbox模组联机!(了解更多)
- 如果您是第一次来到本Wiki,欢迎注册一个账户
- 点击顶部的“编辑”或“编辑源代码”按钮即可编辑当前页面
- 请知悉:在不登录时也可以编辑和新建页面,但是您当前的IP地址会记录在编辑历史中
教學:製作附加包/配方
在閱讀本教學前,請先確保自身已有一定的附加包基礎。在瀏覽完本教學之後,你將學會如何自訂配方。
概述[編輯]
配方使遊戲元素更加豐富,並為許多內容加入了取得途徑。在學習了自訂物品和方塊後,您已經為遊戲加入了一些新元素,現在將嘗試學習透過自訂配方來為它們加入取得的途徑。
配方儲存在行為包的recipes資料夾中。
在這之前[編輯]
加入自訂配方首先需要了解一下自訂配方 行為部分的基本結構。 自訂配方組態檔的資料結構如下:
{
"format_version": "1.12",
"各配方适用组件": {
"description": { },//描述
"tags": [ ],//标签(适用方块)
}
}
如上,配方組態檔基本由描述、配方類別、配方輸入、配方材料與配方輸出五部分內容構成,而配方輸入、配方材料和配方輸出需要定義各型別配方自有的元件才能被定義。下面對上述基本內容進行了簡要闡述:
描述 (description) 物件儲存了用於描述該配方的基礎資訊,其資料結構如下:
//...
"description": {
"identifier": "配方的赋命名空间标识符"
},
//...
該屬性用於在應用於某個世界的所有包中唯一標識配方。配方識別碼沒有名稱空間要求,只要單個包中沒有兩個相同的配方識別碼可以匹配即可。
配方標籤(tags)陣列儲存了用於描述該配方適用於哪種配方功能方塊,其內容如下:
//...
"tag": [
"crafting_table",//说明该配方可适用于原版工作台
...//可多选
]
//...
你已經掌握了配方組態檔基本概念,接下來是各個配方的細微差異
合成配方[編輯]
有序配方[編輯]
主條目:有序配方
有序配方定義了一個需要固定合成形狀的配方,須使用"minecraft:recipe_shaped"
才能被定義。
有序配方特殊的是需要定義形狀,因此和其他配方的定義格式不同,在於多了樣式陣列和各組成部分的定義,以下是詳細描述:
樣式 (pattern) 陣列儲存了用於描述該配方的排列樣式,其內容中有多組字串,每組字串代表合成表中的一行,字串由1-3個字元組成,每個字元在該配方中代表一個物品。 如果您需要將某一格留空,請使用空格,如果某一列為空,請刪除代表本列的空格。 下面是一個配方的樣式範例
"pattern": [
"XX",
"X#",
" #"
]
此配方代表一個類似於原版斧的配方排列方式。 配方材料(key)物件儲存了用於描述該配方樣式中的字元代表的物品,物品可以透過字串引用或items物件,字串引用的內容如下:
"字符":"物品的赋命名空间标识符:物品特殊值"//:物品特殊值为可选项,不填则所有特殊值均可
items物件的內容如下:
"字符": {
"item": "物品赋命名空间标识符"
"data": "物品特殊值,支持Molang,可选项"
"count": "物品数量,可选项"//此处不可用,物品数量仅在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": "minecraft:diamond"
}
},
"result": {
"item": "minecraft:diamond_axe"
}
}
}
結果 (result) 物件儲存了用於描述該配方的製作結果的物品,物品可以透過字串引用或items物件,引用方法同上。
無序配方[編輯]
主條目:無序配方
無序配方與有序配方的基本結構同理,只不過將"minecraft:recipe_shaped"
元件替換成"minecraft:recipe_shapeless"
元件以實現無序配方。
以下是原版合成打火石無序配方的json檔案:
{
"format_version": "1.12",
"minecraft:recipe_shapeless": {
"description": {
"identifier": "minecraft:flint_and_steel"
},
"tags": [ "crafting_table" ],
//与有序配方不同处
"ingredients": [
{
"item": "minecraft:iron_ingot"
},
{
"item": "minecraft:flint"
}
],
"result": {
"item": "minecraft:flint_and_steel"
}
}
}
由此可見,無序配方與有序配方的不同處是將"pattern"
和"key"
的子元件替換成"ingredients"
的子元件。
"ingredients"
子元件只需要建立若干個json物件存放"item"
元件,輸入需要物品的賦命名空間識別碼即可。
熔爐配方[編輯]
主條目:熔爐配方
熔爐配方同理,也是替換成熔爐配方所適用的"minecraft:recipe_furnace"
元件。
下面以原版生雞肉透過熔爐等烹飪獲得烤雞的json檔案為例:
{
"format_version": "1.12",
"minecraft:recipe_furnace": {
"description": {
"identifier": "minecraft:furnace_chicken"
},
"tags": ["furnace", "smoker", "campfire", "soul_campfire"],
//与其他配方不同处
"input": "minecraft:chicken",//输入
"output": "minecraft:cooked_chicken"//输出
}
}
由此可見,熔爐配方僅需加入"input"
和"output"
元件,再輸入需要物品的賦命名空間識別碼即可。
釀造配方[編輯]
主條目:釀造配方
釀造配方與其他配方類似,不過會依據原版特性細分,具體如下:
藥水容器型別配方[編輯]
此為藥水改變瓶子型別的配方組態,須加入"minecraft:recipe_brewing_container"
元件。
此為原版藥水透過火藥煉成飛濺型藥水的json組態檔:
{
"format_version": "1.12",
"minecraft:recipe_brewing_container": {
"description": {
"identifier": "minecraft:brew_potion_sulphur"
},
"tags": [ "brewing_stand" ],
"input": "minecraft:potion",
"reagent": "minecraft:gunpowder",
"output": "minecraft:splash_potion"
}
}
藥水效果配方[編輯]
此為合成藥水效果的配方,須加入"minecraft:recipe_brewing_mix"
元件決定該配方。
以下是原版基礎藥水用烈焰粉合成力量藥水的json組態檔:
{
"format_version": "1.12",
"minecraft:recipe_brewing_mix": {
"description": {
"identifier": "minecraft:brew_awkward_blaze_powder"
},
"tags": [ "brewing_stand" ],
"input": "minecraft:potion_type:awkward",
"reagent": "minecraft:blaze_powder",
"output": "minecraft:potion_type:strength"
}
}
由此可見,釀造配方與熔爐配方類似,只不過增加了"reagent"
子元件指定加工物。