创建一个com.example.items包
创建一个ItemLoader类。
ItemLoader.java
package com.example.items;
public class ItemLoader
{
public ItemLoader()
{
}
private void register(String name, Item item)
{
Registry.register(Registry.ITEM, new Identifier("haha", name), item);
}
}
在主类中实例化ItemLoader类。
ExampleFabric.java
package com.example;
public class FabricExample implements ModInitializer
{
public static final Logger LOGGER = LogManager.getLogger("haha");
@Override
public void onInitialize()
{
new ItemLoader();
}
}
在创建一个ItemVoidIngot类
ItemVoidIngot.java
package com.example.items;
public class ItemVoidIngot extends Item
{
public ItemVoidIngot()
{
super(new Settings().group(ItemGroup.MISC));
}
}
然后我们再在ItemLoader里面注册我们的物品。
ItemLoader.java
public class ItemLoader
{
public static final Item VOID_INGOT = new ItemVoidIngot();
public ItemLoader()
{
register("void_ingot", VOID_INGOT);
}
private void register(String name, Item item)
{
Registry.register(Registry.ITEM, new Identifier("haha", name), item);
}
}
然后运行看看结果。
我们可以看到我们的虚空锭已经有了,但是材质还是一坨黑紫色的,这个时候我们就要给它添加自己的材质了。
我们建立下面这样的文件夹
然后在models/item里新建文件
void_ingot.json (这里的文件名就是你在ItemLoader里注册时设置的名字)
{
"parent": "item/generated",
"textures": {
"layer0": "haha:item/void_ingot"
}
}
把你自己的材质放入textures/item
void_ingot.png
因为我不怎么会画材质,所以就是拿原版的铁锭涂个色就完事了。
然后我们启动游戏看看效果
可以看到我们的材质已经建立好了。
接下来创建自己的创造模式物品栏。
新建包com.example.group ,创建类GroupLoader。
GroupLoader.java
package com.example.group;
public class GroupLoader
{
public static final ItemGroup GROUPHAHA = FabricItemGroupBuilder.build(
new Identifier("haha", "haha_group"),
() -> new ItemStack(ItemLoader.VOID_INGOT));
}
ItemVoidIngot.java
public class ItemVoidIngot extends Item
{
public ItemVoidIngot()
{
super(new Settings().group(GroupLoader.GROUPHAHA));
}
}
运行游戏查看效果。
可以看到我们自己的创造模式物品栏已经创建好了。