現在專案已經有了很多做好的功能可以直接使用。想要做個簡單的 item 就是那麼簡單。接下來幾步驟都是做資料夾可是需要注意這些資料夾都放在對的地方,抓這些資料是固定的,別想方在你喜歡的地方。
這篇文章會教你如何做一個簡單的 item,下面也會大概解釋其他中 item 要怎麼做出來。
在你的模組包裡面新增一個 Package。這個 Package 就是跟正常的資料夾功能一樣:
記得命名一定要一樣!
下一步就是在剛剛新增的 Package 裡面再新增一個 Java 檔案。
名字放 ModItems
在這個新創的 Java 檔案裡加這兩行。記得改模組名字到你主要 Class 的名字:
public static void registerModItems(){ System.out.println(“Currently registering mod items for: " + 模組名字.MOD_ID); }
這行是負責啟動這個程式,如果沒有呼叫裡面其他的 Function 也都不會被呼叫。
在下面打這幾個字,寫 Item 的時候,應該會跳出下拉選單。點擊第一個: Item net.minecraft.item 。這樣會自動加需要的連結到這個檔案裡。
private static Item registerItem(String name, Item item){
}
也可以在 Item 上按友鍵 -> Show Context Actions -> Import class
在你的 class 上面會多出現一行:
整個 Function 會看相這樣:
private static Item registerItem(String name, Item item){ return Registry.register(Registry.ITEM, new Identifier(模組名字.MOD_ID, name), item); }
這個 class 跟我們的主要模組程式有點不一樣,需要在我們的模組程式裡,在 onInitialize() 裡面加這行:
好,現在遊戲開始的時候會把我們 ModItems 程式啟動!回去到我們的 ModItems 程式,現在要真正的加你的 item。我會做一個酒的 item:
public static Item WINE = registerItem(“wine”, new Item(new FabricItemSettings().group(ItemGroup.MISC)));
- “public static Item WINE” -> WINE 一定要大寫。
- “registerItem” -> 呼叫剛剛才做的那行。
- “wine” -> 這裡在次給 item 的名字可是這次需要全小寫。
- “new Item” -> 想要加一個新的 item 就要先建立一個 Item class 然後把這個新的 item 的資料賽進去。
- “new FabricItemSettings()” -> 可以在這裡面放一堆屬性,可燒,耐力,等等。
- ".group(ItemGroup.MISC)” -> 這個就是一個屬性,暫時做個最但存 item 所以只會有這個。
好,現在有了一個新的 item 可是沒辦法看到。下一步就是要加一個圖片。我這裡提供一個適合的圖片,如果想要用自己也可以可是記得大小是 16 x 16 像素:
首先要創作幾個 Directory 在 resources -> assets -> 你的模組:
很重要的是名字要一模一樣!!! models 加一個 s 可是 item 沒有加。
現在要做一個 .json 檔案:
命名格式是: item 名字 + .json。裡面寫這幾行:
{ “parent”: “item/generated”, “textures”: { “layer0”: “模組名字:item/wine” } }
這個程式是比較像 item 敘述的程式。
在建兩個 Directory 然後確定命名的名字一樣:
現在可以把你的圖片拉到下面的資料夾:
拉進來確認名字沒有問題,需要跟剛剛 .json 裡面寫的一樣。我範例是寫 entropymod:item/wine 所以要把 Wine 改稱 wine。
如果沒寫錯,應該可以打開 Minecraft 找看看! (記得開 Creative 模式才可以看得到)
如果開不起來,試看看再跑幾次。我自己測試很常發現問題停止再跑一次就把問題修理好了。
現在跳出來的名字有點問題,這個是最後的一步:
en_us.json
zh_tw.json
然後兩個加這幾行進去:
{ “item.模組名字.物件名字”: “物件顯示的名字” }
現在再跑一次 Minecraft 可以看到對的名字!切換語言也會看到你取的名字。
讚。酒記得不要喝太多~