本篇教程的视频

(待发布)

本篇教程的源代码

(待发布)

简介

燃料是Minecraft中用于燃烧物品的资源,比如熔炉、烟熏炉等,还有其他模组的各类工业设备

燃料

自定义物品

首先我们创建一个自定义物品类ModFuelItem,继承自Item

1
2
3
4
5
6
public class ModFuelItem extends Item {

public ModFuelItem(Properties pProperties) {
super(pProperties);
}
}

然后我们添加一个burnTime字段,并重写getBurnTime方法

1
2
3
4
5
6
private int burnTime = 0;

@Override
public int getBurnTime(ItemStack itemStack, @Nullable RecipeType<?> recipeType) {
return burnTime;
}

这里的burnTime字段用于存储燃料的燃烧时间,单位是ticks,20ticks等于1秒

构造函数也需要修改,添加一个burnTime参数

1
2
3
4
public ModFuelItem(Properties pProperties, int burnTime) {
super(pProperties);
this.burnTime = burnTime;
}

值得注意的是,getBurnTime方法并不是Item类中的方法,而是IForgeItem接口中的方法

IForgeItem接口是Forge为物品提供的一个扩展接口,允许我们为物品添加一些自定义的功能,它也让Item类实现了这个接口

注册燃料物品

接下来我们在ModItems类中注册一个燃料物品

1
2
public static final RegistryObject<Item> ANTHRACITE =
ITEMS.register("anthracite", () -> new ModFuelItem(new Item.Properties(), 1600));

这里我们注册了一个名为ANTHRACITE的燃料物品,燃烧时间为1600ticks,即80秒,也是一般燃料(比如煤炭)的燃烧时间

这样,我们就成功为模组添加了一个燃料物品,玩家可以使用它来燃烧物品了

添加到物品栏

最后,我们还需要将燃料物品添加到物品栏中,方便玩家获取

1
pOutput.accept(ModItems.ANTHRACITE.get());

数据文件

另外的就是常规的数据文件了,同样也使用数据生成来写

语言文件

1
add(ModItems.ANTHRACITE.get(), "Anthracite");

模型文件

1
basicItem(ModItems.ANTHRACITE.get());

贴图

还要将物品的贴图放到对应的文件夹中

之后就可以启动游戏进行测试了