1. 程式人生 > 其它 >MinecraftFabricMod編寫Part3物品進階:物品組

MinecraftFabricMod編寫Part3物品進階:物品組

建立簡單物品組

要使你的ItemGroup屬性顯示在創造模式選單中,請使用FabricItemGroupBuilder建立它們:

public class ExampleMod implements ModInitializer {
 
    public static final ItemGroup FISH_GROUP = FabricItemGroupBuilder.build(
        new Identifier("fishmod", "general"),
        () -> new ItemStack(Items.SALMON));
 
    public
static final ItemGroup OTHER_GROUP = FabricItemGroupBuilder.create( new Identifier("fishmod", "other")) .icon(() -> new ItemStack(Items.TROPICAL_FISH)) .build(); }

呼叫FabricItemGroupBuilder#build後,您的組將被新增到創造模式選單中的物品組列表中。

請確保將您傳遞到Identifier構造器的引數替換為您的實際模組ID和你需要給予您的物品組用於稍後本地化的翻譯鍵(translation key)。

將物品新增到物品組

建立自定義物品時,請在設定上呼叫Item.Settings#group,然後傳入自定義組:

public static final Item YOUR_ITEM = new Item(new Item.Settings().group(ExampleMod.FISH_GROUP));

使物品組按特定順序顯示特定物品

呼叫FabricItemGroupBuilder#appendItems,並傳遞任何Consumer<List<ItemStack>>。然後,您可以按順序將將你想要新增的堆疊新增到特定列表中。ItemStack.EMPTY可用於在組中放置空格。

public class ExampleMod implements ModInitializer {
 
    public static final ItemGroup FISH_GROUP = FabricItemGroupBuilder.build(
        new Identifier("fishmod", "general"),
        () -> new ItemStack(Blocks.SALMON));
 
    public static final ItemGroup OTHER_GROUP = FabricItemGroupBuilder.create(
        new Identifier("fishmod", "other"))
        .icon(() -> new ItemStack(Items.TROPICAI_FISH))
        .appendItems(stacks -> {
            stacks.add(new ItemStack(Blocks.BONE_BLOCK));
            stacks.add(new ItemStack(Items.APPLE));
            stacks.add(PotionUtil.setPotion(new ItemStack(Items.POTION), Potions.WATER));
            stacks.add(ItemStack.EMPTY);
            stacks.add(new ItemStack(Items.IRON_SHOVEL));
        })
        .build();
}

這裡就是添加了骨塊(BONE_BLOCK)蘋果(APPLE)水瓶(POTTON,水瓶的語法有點特殊)鐵鍬(IRON_SHOVEL)