Minecraft 模組製作教學 for 1.7 – Part 7 建立熔煉與合成配方!
2014 年 10 月 05 日 15:10:28 · Fetching Views...
影片
由於這次教學內碼部分比較複雜,所以不得不拉出來解釋…
強烈建議各位搭配影片服用本教學。
什麼是ItemStack
不論是熔煉或者合成的配方都用的到ItemStack。ItemStack代表著把物品綑成一堆,例如 ItemStack(Items.gunpowder,16) 就是把16個火藥綑成一堆。如此一來在指定融煉或燒製時的成品時會更加方便。
ItemStack語法
ItemStack(物品,數量)
其中「,數量」可以省略不寫,如果省略就代1個東西。
在物品的部分,如果你想調用Minecraft原本就有的東西,你可以輸入「Items.物品名稱」。當你輸入「.」時eclipse一樣會列出一列可以選擇的選項。
新增熔煉配方
@EventHandler
public void preInit(FMLPreInitializationEvent e){
以下內碼請輸入在這裡面
}
GameRegistry.addSmelting(new ItemStack(燒製物名稱), new ItemStack(成品物品名稱), 經驗值);
說明:
內碼中的經驗值的形式為「數字f」,例如30f 。
新增合成配方
@EventHandler
public void preInit(FMLPreInitializationEvent e){
以下內碼請輸入在這裡面
}
GameRegistry.addRecipe(new ItemStack(成品名稱,數量), new Object[]{"第一行變數", "第二行變數","第三行變數", '變數1', new ItemStack(物品名1), '變數2', new ItemStack(物品名2), '變數3', new ItemStack(物品名3), '變數4', new ItemStack(物品名4), '變數5', new ItemStack(物品名5), '變數6', new ItemStack(物品名6), '變數7', new ItemStack(物品), '變數8', new ItemStack(物品名8), '變數9', new ItemStack(物品名9)});
上面這堆東西可能有點抽象,舉個例子:
GameRegistry.addRecipe(new ItemStack(Rocket_Fuel,16), new Object[]{"ABA", "BAB","ABA", 'A', new ItemStack(Aluminium_dust_20), 'B', new ItemStack(Items.gunpowder)});
範例內碼可以拆解成3部分
1. 合成產物
new ItemStack(Rocket_Fuel,16),
上面這段程式碼中我指定產物為16個叫做Rocket_Fuel的自訂物品。
2.指定排列方法
new Object[]{"ABA", "BAB","ABA",
我指定的排列法是:
在內碼中A和B是一個代號,能替換成任何英文字母。
如你所見“ABA”, “BAB”,”ABA”, 裡面寫在最前頭的“ABA”代表第一行,其他以此類推。
但是,如果你想像這樣擺…
其實非常簡單,只要把不想放東西的地方改成空格,像這樣: “ABA”, “B B”,”ABA”。
3.定義代號
接著要告訴程式碼A和B到底代表甚麼
'A', new ItemStack(Aluminium_dust_20), 'B', new ItemStack(Items.gunpowder)
在這個範例中,我把A定義成我自訂的物品Aluminium_dust_20,把B定義成Minecraft裡面原有的火藥(gunpowder)。
如果你像定義更多的代號,那你只要一直重複「 ‘代號’, new ItemStack(物品名),」就可以了~
本次教學結束~