提供: Minecraft Modding Wiki
この記事は"Fabric API 0.3.2 build 230~"を前提MODとしています。 |
防具の追加
ツール(ヘルメット、チェストプレート、レギンス、ブーツ)を作成します。
金床での修復にはエメラルドを使用します。
動作確認済みのバージョン:1.16.3
ソースコード
- SampleMod.java
package com.example.armor; import net.fabricmc.api.ModInitializer; import net.minecraft.entity.EquipmentSlot; import net.minecraft.item.ArmorItem; import net.minecraft.item.ArmorMaterial; import net.minecraft.item.Item; import net.minecraft.item.ItemGroup; import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; public class SampleMod implements ModInitializer { /** * ModID文字列 */ public static final String MOD_ID = "samplemod"; //防具作成 public static final ArmorMaterial armorMaterial = new CustomArmorMaterial(); public static Item SAMPLE_HELMET = new ArmorItem(armorMaterial, EquipmentSlot.HEAD, new Item.Settings().group(ItemGroup.TOOLS));//ヘルメット作成 public static Item SAMPLE_CHESTPLATE = new ArmorItem(armorMaterial, EquipmentSlot.CHEST, new Item.Settings().group(ItemGroup.TOOLS));//チェストプレート作成 public static Item SAMPLE_LEGGINGS = new ArmorItem(armorMaterial, EquipmentSlot.LEGS, new Item.Settings().group(ItemGroup.TOOLS));//レギンス作成 public static Item SAMPLE_BOOTS = new ArmorItem(armorMaterial, EquipmentSlot.FEET, new Item.Settings().group(ItemGroup.TOOLS));//ブーツ作成 @Override public void onInitialize() { //防具を登録 Registry.register(Registry.ITEM, new Identifier(MOD_ID, "sample_helmet"), SAMPLE_HELMET); Registry.register(Registry.ITEM, new Identifier(MOD_ID, "sample_chestplate"), SAMPLE_CHESTPLATE); Registry.register(Registry.ITEM, new Identifier(MOD_ID, "sample_leggings"), SAMPLE_LEGGINGS); Registry.register(Registry.ITEM, new Identifier(MOD_ID, "sample_boots"), SAMPLE_BOOTS); } } }
- CustomArmorMaterial.java
package com.example.armor; import net.minecraft.entity.EquipmentSlot; import net.minecraft.item.ArmorMaterial; import net.minecraft.item.Items; import net.minecraft.recipe.Ingredient; import net.minecraft.sound.SoundEvent; import net.minecraft.sound.SoundEvents; public class CustomArmorMaterial implements ArmorMaterial { private static final int[] PROTECTION_VALUES = new int[] { 4, 5, 7, 3 };//防御力{ヘルメット,チェストプレート,レギンス,ブーツ} @Override public int getDurability(EquipmentSlot slot) { //耐久性 return 500; } @Override public int getProtectionAmount(EquipmentSlot slot) { //防御力 return PROTECTION_VALUES[slot.getEntitySlotId()]; } @Override public int getEnchantability() { //エンチャント性 return 12; } @Override public SoundEvent getEquipSound() { //装備するときの音 return SoundEvents.ITEM_ARMOR_EQUIP_DIAMOND; } @Override public Ingredient getRepairIngredient() { //修理の材料 return Ingredient.ofItems(Items.EMERALD); } @Override public String getName() { return "sample_armor"; } @Override public float getToughness() { return 0; } @Override public float getKnockbackResistance() { //ノックバック耐性 return 2F; } }