注册新物品

完善注册系统

在Items.java文件下复制其原生的物品注册代码

public static Item register(String id, Item item) {
		return register(new Identifier(id), item);
	}

	public static Item register(Identifier id, Item item) {
		return register(RegistryKey.of(Registries.ITEM.getKey(), id), item);
	}

	public static Item register(RegistryKey<Item> key, Item item) {
		if (item instanceof BlockItem) {
			((BlockItem)item).appendBlocks(Item.BLOCK_ITEMS, item);
		}

		return Registry.register(Registries.ITEM, key, item);
	}

将其粘贴到新建的item软件包的ModItem类中

Image

Image

并将其默认的命名空间改为自己的数据包的命名空间

Image

开始注册物品

仿照原版物品注册的格式在ModItems中注册

Image

辅助注册方法

在末尾加上

//辅助注册
    public  static void registerItems() {

    }
//暂时不用写东西

注意,要到模组主类中调用(这里的主类是TestMod)

Image

添加贴图,语言文件

新建lang,models,textures文件夹

Image

在lang文件夹下创建en_us.json文件来存放英文的物品名称,zn_cn.json存中文

Image

Image

接下来,在models和textures文件夹中各建一个item(物品)和一个block(方块)

再在models/item中创建一个test_item.json文件用来配置物品。

在其中输入

{
  "parent": "minecraft:item/generated",//设置父级文件
  "textures": {
    "layer0": "test-mod:item/test_item"//设置贴图,test-mod是命名空间,也就是数据包id
  }
}

添加贴图文件

将png格式的贴图文件放进textures/item中,名字与物品id一致

Image