首先要新增一個新資料夾,並在裡面新增一個ModBlocks Class,大概長這樣。
在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旁邊看到它,方塊也可以正常放置