本篇教程的视频

本篇教程的源代码

GitHub地址:TutorialMod-HorseArmor-1.20.1

本篇教程目标

  • 理解原版的马铠注册,了解马铠资源文件的位置
  • 学会为模组添加马铠

查看源代码

这里我们先来看看马铠的注册

同样也是到Items类中来看

1
public static final Item IRON_HORSE_ARMOR = register("iron_horse_armor", new HorseArmorItem(5, "iron", new Item.Settings().maxCount(1)));

可以看到,马铠的注册和普通物品的注册是一样的,只不过实例化的是HorseArmorItem

它接受三个参数,第一个是马铠的护甲值,第二个是马铠的材质iron来表示铁马铠,
第三个是马铠的设置,这里我们设置它的最大堆叠数1,因为马铠不能堆叠

不过,除了HorseArmorItem,其实还有一个DyeableHorseArmorItem类,这个是皮革材质马铠实例化的

皮革的马铠、盔甲其实都是可以染色,所以它实例化的类是与一般的不一样

接下去我们看看它的材质文件位置

这个可以看到HorseArmorItem类的构造函数

1
2
3
4
5
public HorseArmorItem(int bonus, String name, Item.Settings settings) {
super(settings);
this.bonus = bonus;
this.entityTexture = "textures/entity/horse/armor/horse_armor_" + name + ".png";
}

可以看到,它的材质文件位置是textures/entity/horse/armor/horse_armor_ + 材质名 + .png
而它的命名空间是minecraft的,所以我们放马铠的材质文件时,也是要放到minecraft的命名空间下的

注册马铠

添加马铠

首先,我们还是先在ModItems类中添加马铠

1
2
public static final Item ICE_ETHER_HORSE_ARMOR = registerItems("ice_ether_horse_armor",
new HorseArmorItem(11 , "ice_ether", new Item.Settings().maxCount(1)));

相关的设置我们设置一下就好了

添加到物品栏

然后,我们添加到物品栏

1
entries.add(ModItems.ICE_ETHER_HORSE_ARMOR);

数据生成

语言文件

1
translationBuilder.add(ModItems.ICE_ETHER_HORSE_ARMOR, "Ice Ether Horse Armor");

物品模型

1
itemModelGenerator.register(ModItems.ICE_ETHER_HORSE_ARMOR, Models.GENERATED);

物品的模型还是和一般物品一样的

材质文件

材质文件除了物品模型对应的,在物品栏形式下的材质文件,还有就是我们上面提到过的模型类文件

它和盔甲的模型材质一样,也是展开图,但命名空间是minecraft

将它放在textures/entity/horse/armor/下,命名为horse_armor_ice_ether.png

测试

数据生成完成之后,我们就可以进入游戏进行测试了