iT邦幫忙

2025 iThome 鐵人賽

DAY 11
0

首先要新增一個新資料夾,並在裡面新增一個ModBlocks Class,大概長這樣。https://ithelp.ithome.com.tw/upload/images/20250925/20169406hY9DfQ4dXb.png

在Class裡面打上public static final DeferredRegister<Block> BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, RubyMod.MOD_ID);這段程式碼在forge的框架裡代表的是註冊器,<>內表示要註冊的東西是Blocks,在Minecraft中是一個物品。

就和註冊物品一樣,要利用這個註冊器註冊物品public static final RegistryObject<Block> RUBY_BLOCK = registerBlock("ruby_block", () -> new Block(BlockBehaviour.Properties.copy(Blocks.DIAMOND_BLOCK)));,這段程式碼中的"RUBY_BLOCLK"變數就是我們要新增的方塊(只能用大寫),BLOCK.register函數內的"ruby_block"是在整個Mod裡的註冊名稱(只能用小寫),之後要調用這個物品都是用這個名稱。

最後要打上public static void register(IEventBus eventBus){ BLOCKS.register(eventBus); }
這是用來將你的方塊(BLOCKS)連結到Forge的事件總線(Event Bus)上。

要回到RubyMod的Class中,在ModItems.register(modEventBus);的下方加入ModBlocks.register(modEventBus);
,還有addCreative中{event.accept(ModItems.RUBY);的下方加入````event.accept(ModBlocks.RUBY_BLOCK);``就完成註冊了。

可以在ruby旁邊看到它,方塊也可以正常放置
https://ithelp.ithome.com.tw/upload/images/20250925/20169406bS7m2xmPI6.png


上一篇
D10:方塊(Blocks)
下一篇
D12:第一個方塊(2)
系列文
Minecraft:使用AI工具來創造我的世界吧!13
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言