首先要在Mod資料夾下新增一個item資料夾,並在裡面新增一個ModItem Class,大概長這樣
在Class裡面打上public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, RubyMod.MOD_ID);
這段程式碼在forge的框架裡代表的是註冊器,<>內表示要註冊的東西是Item,在Minecraft中是一個物品。
接下來就是要利用這個註冊器註冊物品了public static final RegistryObject<Item> RUBY = ITEMS.register("ruby",() -> new Item(new Item.Properties()));
,這段程式碼中的"RUBY"變數就是我們要新增的具體物品(只能用大寫),ITEMS.register函數內的"ruby"是在整個Mod裡的註冊名稱(只能用小寫),之後要調用這個物品都是用這個名稱。
最後要打上public static void register(IEventBus eventBus) {ITEMS.register(eventBus);}
這是用來將你的物品清單(ITEMS)連結到Forge的事件總線(Event Bus)上。
要回到RubyMod的Class中在public RubyMod中加入IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
和ModItems.register(modEventBus);
,還有addCreative中加入if(event.getTabKey() == CreativeModeTabs.INGREDIENTS {event.accept(ModItems.RUBY);
就完成註冊了。
打開遊戲就能看到...
嗯???!