简单物品的开发,不包含任何交互逻辑
一、物品注册
1、定义物品注册类
import cloude.abaaba.tutorial.TutorialMod;
import net.minecraft.world.item.Item;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.neoforge.registries.DeferredItem;
import net.neoforged.neoforge.registries.DeferredRegister;
/**
* ModItems 物品注册
*
* @author Pig-Gua
* @date 2026-05-10
*/
public class ModItems {
public static final DeferredRegister.Items ITEMS = DeferredRegister.createItems(TutorialMod.MODID);
public static void register(IEventBus eventBus) {
ITEMS.register(eventBus);
}
}2、在主类中进行全局注册
/**
* TutorialMod 主类
*
* @author Pig-Gua
* @date 2026-05-10
*/
@Mod(TutorialMod.MODID)
public class TutorialMod {
public TutorialMod(IEventBus modEventBus, ModContainer modContainer) {
//...
// 全局注册物品
ModItems.register(modEventBus);
//...
}
}二、创建物品
物品属性
import cloude.abaaba.tutorial.TutorialMod;
import net.minecraft.world.item.Item;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.neoforge.registries.DeferredItem;
import net.neoforged.neoforge.registries.DeferredRegister;
/**
* ModItems 物品注册
*
* @author Pig-Gua
* @date 2026-05-10
*/
public class ModItems {
public static final DeferredRegister.Items ITEMS = DeferredRegister.createItems(TutorialMod.MODID);
// 自定义物品
public static final DeferredItem<Item> PIG_GUA = ITEMS.registerSimpleItem("pig_gua", Item.Properties::new);
public static void register(IEventBus eventBus) {
ITEMS.register(eventBus);
}
}物品材质
1、物品定义
文件位置:
resource > assets > [mod_id] > items > [物品id.json]文件名:需要和物品的id对应
示例如下:该物品的model文件,在 tutorial_mod 的 models 文件夹,下面的
item > pig_gua.json
{
"model": {
"type": "minecraft:model",
"model": "tutorial_mod:item/pig_gua"
}
}2、model定义
文件位置:
resource > assets > [mod_id] > models > (上述文件定义的路径,如:item > pig_gua.json)示例如下:该物品只有一个材质,在 tutorial_mod 的 textures 文件夹,下面的
item > pig_gua.png
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "tutorial_mod:item/pig_gua"
}
}3、textures定义
文件位置:
resource > assets > [mod_id] > textures > (上述文件定义的路径,如:item > pig_gua.png)图片大小:16*16像素(推荐),或者 32*32,64*64 等
图片颜色:标准 8-bit 索引颜色 PNG(调色板 256 色)
三、创造标签栏
在主类中,将物品添加到创造模式物品栏
/**
* TutorialMod 主类
*
* @author Pig-Gua
* @date 2026-05-10
*/
@Mod(TutorialMod.MODID)
public class TutorialMod {
public TutorialMod(IEventBus modEventBus, ModContainer modContainer) {
//...
// 添加事件监听
modEventBus.addListener(this::addCreative);
//...
}
/**
* 将物品添加到创造模式Tab栏中
*
* @param event 创建 "创造模式Tab栏内容" 事件
*/
private void addCreative(BuildCreativeModeTabContentsEvent event) {
// 建筑方块 Tab 栏
if (event.getTabKey() == CreativeModeTabs.BUILDING_BLOCKS) {
// 添加自定义物品
event.accept(ModItems.PIG_GUA);
}
}
}四、效果演示


评论区