我們使用隕鐵來做樓梯、柵欄及按鈕等等方塊,其實使用的都是隕鐵原本的紋理材質,並不需要額外去畫新的紋理,只需要使用BlockTexturePoll就好,我們在ModModelProvider中有寫好。
BlockStateModelGenerator.BlockTexturePool sideritePoll = blockStateModelGenerator.registerCubeAllModelTexturePool(ModBlocks.SIDERITE_BLOCK);
這樣我們就可以使用sideritePoll做其他方塊的紋理,我們這樣寫。
sideritePoll.stairs(ModBlocks.SIDERITE_STAIRS);
sideritePoll.button(ModBlocks.SIDERITE_BUTTON);
sideritePoll.fence(ModBlocks.SIDERITE_FENCE);
sideritePoll.fenceGate(ModBlocks.SIDERITE_FENCE_GATE);
sideritePoll.pressurePlate(ModBlocks.SIDERITE_PRESSURE_PLATE);
sideritePoll.slab(ModBlocks.SIDERITE_SLAB);
sideritePoll.wall(ModBlocks.SIDERITE_WALL);
blockStateModelGenerator.registerDoor(ModBlocks.SIDERITE_DOOR);
blockStateModelGenerator.registerTrapdoor(ModBlocks.SIDERITE_TRAPDOOR);
我們使用sideritePoll.XXX並指定物品,就可以將隕鐵的材質帶入物品,我們的門因為是兩格的方塊,所以需要額外設定,活板門同樣因為開關的狀態下有不同外觀,所以也要額外設定。
addDrop(ModBlocks.SIDERITE_TRAPDOOR);
addDrop(ModBlocks.SIDERITE_BUTTON);
addDrop(ModBlocks.SIDERITE_FENCE);
addDrop(ModBlocks.SIDERITE_WALL);
addDrop(ModBlocks.SIDERITE_FENCE_GATE);
addDrop(ModBlocks.SIDERITE_PRESSURE_PLATE);
addDrop(ModBlocks.SIDERITE_STAIRS );
因為這些方塊都是普通的方塊掉落模式,我們在ModLootTableProvider只需要這樣寫就可以了,使用addDrop設定這些方塊都屬於普通掉落。
我們這側的方塊中有像是柵欄、柵欄門以及柵欄牆(石質柵欄)等等會根據旁邊方塊改變自己樣子的方塊,例如柵欄在旁邊也是柵欄的時候會連接在一起,所以我們要到ModBlockTagProvider中將這些方塊設定自己的Tag
getOrCreateTagBuilder(BlockTags.FENCES)
.add(ModBlocks.SIDERITE_FENCE);
getOrCreateTagBuilder(BlockTags.FENCE_GATES)
.add(ModBlocks.SIDERITE_FENCE_GATE);
getOrCreateTagBuilder(BlockTags.WALLS)
.add(ModBlocks.SIDERITE_WALL);
這樣就可以讓這些方塊有自己的擺放邏輯了。