iT邦幫忙

2024 iThome 鐵人賽

DAY 15
0

戰利品表

我們可以在ModLootTable裡面設定各個方塊的掉落物JSON檔生成,我們在ModLootTable中這樣寫

public class ModLootTableProvider extends FabricBlockLootTableProvider {
    public ModLootTableProvider(FabricDataOutput dataOutput) {
        super(dataOutput);
    }

    @Override
    public void generate() {
        addDrop(ModBlocks.SIDERITE_BLOCK);
        addDrop(ModBlocks.KUNLUN_STONE);

    }
}

我們Override generate方法,這個方法用於生成戰利品表。
addDrop用於一般被破壞後會掉落自身的方塊,只要使用addDrop就可以自動生成JSON檔,超方便

BlockTagProvider

接下來我們到ModBlockTagProvider上,我們這樣寫

public class ModBlockTagProvider extends FabricTagProvider.BlockTagProvider {
    public ModBlockTagProvider(FabricDataOutput output, CompletableFuture<RegistryWrapper.WrapperLookup> registriesFuture) {
        super(output, registriesFuture);
    }

    @Override
    protected void configure(RegistryWrapper.WrapperLookup arg) {
        getOrCreateTagBuilder(BlockTags.PICKAXE_MINEABLE)
                .add(ModBlocks.SIDERITE_BLOCK);

        getOrCreateTagBuilder(BlockTags.NEEDS_IRON_TOOL)
                .add(ModBlocks.SIDERITE_BLOCK)
                .add(ModBlocks.KUNLUN_STONE);


    }

}

BlockTag可以將方塊貼上各式的標籤來讓遊戲知道這個方塊的類型以及在遊戲中的某些互動要怎麼安排,例如這個方塊的最低挖掘等級以及使用那些工具才能正確挖掘。

getOrCreateTagBuilder(BlockTags.PICKAXE_MINEABLE)
                .add(ModBlocks.SIDERITE_BLOCK);

PICKAXE_MINEABLE代表玩家應該使用十字稿來破壞方塊,這裡我們添加SIDERITE就好

        getOrCreateTagBuilder(BlockTags.NEEDS_IRON_TOOL)
                .add(ModBlocks.SIDERITE_BLOCK)
                .add(ModBlocks.KUNLUN_STONE);

NEEDS_IRON_TOOL代表破壞這個方塊最低需要鐵製工具,我們使用.add添加了兩個方塊

感冒還沒好,先講到這裡


上一篇
Minecraft Fabric Mod 模組製作 DAY14 DataGeneration2
下一篇
Minecraft Fabric Mod 模組製作 DAY16 DataGeneration
系列文
Minecraft JAVA Fabric 模組製作 : 成為真正的創世神30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言