侧边栏壁纸
博主头像
呱仔爱学习 博主等级

✨基础不牢,地动山摇✨

  • 累计撰写 12 篇文章
  • 累计创建 4 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

NeoForge Mod开发(三)

呱仔
2026-05-12 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

创造模式Tab页

一、Tab页注册

1、定义Tab页注册类

import cloude.abaaba.tutorial.TutorialMod;
import cloude.abaaba.tutorial.item.ModItems;
import net.minecraft.core.registries.Registries;
import net.minecraft.network.chat.Component;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.ItemStack;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.neoforge.registries.DeferredRegister;

import java.util.function.Supplier;

/**
 * ModCreativeModeTabs Tab页注册
 *
 * @author Pig-Gua
 * @date 2026-05-12
 */
public class ModCreativeModeTabs {

    public static final DeferredRegister<CreativeModeTab> CREATIVE_MODE_TAB_REGISTRY = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, TutorialMod.MODID);

    public static void register(IEventBus eventBus) {
        CREATIVE_MODE_TAB_REGISTRY.register(eventBus);
    }
}

2、在主类中进行全局注册

/**
 * TutorialMod 主类
 *
 * @author Pig-Gua
 * @date 2026-05-10
 */
@Mod(TutorialMod.MODID)
public class TutorialMod {

    public TutorialMod(IEventBus modEventBus, ModContainer modContainer) {
        //...

        // 全局注册Tab页
        ModCreativeModeTabs.register(modEventBus);

        //...
    }
}

二、创建Tab页

Tab页属性

  • title: 名称 ( 使用翻译 )

  • icon: 图标

  • displayItems: Tab页内展示的内容

import cloude.abaaba.tutorial.TutorialMod;
import cloude.abaaba.tutorial.item.ModItems;
import net.minecraft.core.registries.Registries;
import net.minecraft.network.chat.Component;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.ItemStack;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.neoforge.registries.DeferredRegister;

import java.util.function.Supplier;

/**
 * ModCreativeModeTabs Tab页注册
 *
 * @author Pig-Gua
 * @date 2026-05-12
 */
public class ModCreativeModeTabs {

    public static final DeferredRegister<CreativeModeTab> CREATIVE_MODE_TAB_REGISTRY = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, TutorialMod.MODID);

    // 自定义Tab页
    public static final Supplier<CreativeModeTab> TUTORIAL_TAB = CREATIVE_MODE_TAB_REGISTRY.register("tutorial_tab",
            () -> CreativeModeTab.builder()
                    .title(Component.translatable("item_group.tutorial_mod.tutorial_tab"))
                    .icon(() -> new ItemStack(ModItems.PIG_GUA.get()))
                    .displayItems((parameters, output) -> {
                        output.accept(ModItems.PIG_GUA);
                    }).build());

    public static void register(IEventBus eventBus) {
        CREATIVE_MODE_TAB_REGISTRY.register(eventBus);
    }
}

三、效果演示

0

评论区