iT邦幫忙

2023 iThome 鐵人賽

DAY 15
0
Software Development

成為童年的英雄,Minecraft Java 模組製作系列 第 15

Minecraft Mod 模組製作 [DAY15] 模組的專屬創造模式分類 CreativeModeTab

  • 分享至 

  • xImage
  •  

全新的創造模式分類

(以下程式碼位在[pokerfirstmod/item]中,名稱為ModCreativeModeTab)
書接上回

@Mod.EventBusSubscriber(modid = Mymod.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
public class ModCreativeModeTabs {
    public static CreativeModeTab INDUSTRY_TAB;
    @SubscribeEvent
    public static void registerCreativeModeTabs(CreativeModeTabEvent.Register event){
        INDUSTRY_TAB = event.registerCreativeModeTab(new ResourceLocation(Mymod.MOD_ID,"industry_tab")
        , builder -> builder.icon(() -> new ItemStack(ModItems.SILVER.get())).title(Component.translatable("creativemodetab.industry_tab")));
    }
}
public static void registerCreativeModeTabs(CreativeModeTabEvent.Register event)

它接受一個事件 CreativeModeTabEvent.Register 作為參數。當Forge初始化創造模式分類時,將會觸發這個方法。

INDUSTRY_TAB = event.registerCreativeModeTab(new ResourceLocation(Mymod.MOD_ID,"industry_tab")

在這行程式碼中,我們創建了一個自定義的創造模式分類並將其註冊。這個創造模式分類的名稱由 new ResourceLocation(Mymod.MOD_ID, "industry_tab") 指定,Mymod是我的mod id,"industry_tab" 是分類的名稱。INDUSTRY_TAB 是一個變數,用於存儲註冊後的創造模式分類。

builder -> builder.icon(() -> new ItemStack(ModItems.SILVER.get())).title(Component.translatable("creativemodetab.industry_tab"))

這段程式碼是在建立新創造模式分類的圖標與名稱,builder.icon規定圖標是來自ModItems的SILVER,ItemStack是指物品的單位,這樣我們的銀錠就會是新分類的圖標。還有我們的新分類的名稱會是可以本地化的名稱,這個名稱代號creativemodetab.industry_tab,我們可以在resources中的lang中設置不同語言有不同的文字,目前我的lang檔只有en_us.json檔,只需要在這個檔中寫上
(以下程式碼位在[resources/assets/pokerfirstmod/lang]中,名稱為en_us.json)

"creativemodetab.industry_tab": "Industry"

就可以了

展示

https://ithelp.ithome.com.tw/upload/images/20230930/20161797i45KW7ai9p.png

中秋快樂,雖然已經過了

終於到了第十五天,這十幾天真的是提心吊膽

明天講語言本地化


上一篇
Minecraft Mod 模組製作 [DAY14] 全新金屬"銀錠"展示與程式截圖
下一篇
Minecraft Mod 模組製作 [DAY16] 自己的模組自己漢化
系列文
成為童年的英雄,Minecraft Java 模組製作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言