提供: Minecraft Modding Wiki
この記事は"Fabric API 0.3.2 build 230~"を前提MODとしています。 |
ツール(道具)の追加
ここでのページは1.6のツール類追加を参考にして書いてます。
ツール(剣、ツルハシ、オノ、シャベル、クワ)を作成します。
金床での修復にはエメラルドを使用します。
動作確認済みのバージョン:1.16.3
ソースコード
- SampleMod.java
package com.example.tool; import com.example.tool.CustomAxeItem; import com.example.tool.CustomHoeItem; import com.example.tool.CustomPickaxeItem; import com.example.tool.CustomToolMaterial; import net.fabricmc.api.ModInitializer; import net.minecraft.item.Item; import net.minecraft.item.ItemGroup; import net.minecraft.item.ShovelItem; import net.minecraft.item.SwordItem; import net.minecraft.item.ToolItem; 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 ToolItem EMERALD_SWORD = new SwordItem(CustomToolMaterial.INSTANCE, 3, -2F, new Item.Settings().group(ItemGroup.TOOLS));//剣を作成 public static ToolItem EMERALD_PICKAXE = new CustomPickaxeItem(CustomToolMaterial.INSTANCE, 1, -3.0F, new Item.Settings().group(ItemGroup.TOOLS));//ツルハシを作成 public static ToolItem EMERALD_AXE = new CustomAxeItem(CustomToolMaterial.INSTANCE, 2, -3.0F, new Item.Settings().group(ItemGroup.TOOLS));//オノを作成 public static ToolItem EMERALD_SHOVEL = new ShovelItem(CustomToolMaterial.INSTANCE, 1.5F, -3.0F, new Item.Settings().group(ItemGroup.TOOLS));//シャベルを作成 public static ToolItem EMERALD_HOE = new CustomHoeItem(CustomToolMaterial.INSTANCE, -1, -3.0F, new Item.Settings().group(ItemGroup.TOOLS));//クワを作成 @Override public void onInitialize() { //ツールを登録 Registry.register(Registry.ITEM, new Identifier(MOD_ID, "emerald_sword"), EMERALD_SWORD); Registry.register(Registry.ITEM, new Identifier(MOD_ID, "emerald_shovel"), EMERALD_SHOVEL); Registry.register(Registry.ITEM, new Identifier(MOD_ID, "emerald_axe"), EMERALD_AXE); Registry.register(Registry.ITEM, new Identifier(MOD_ID, "emerald_pickaxe"), EMERALD_PICKAXE); Registry.register(Registry.ITEM, new Identifier(MOD_ID, "emerald_hoe"), EMERALD_HOE); } } }
- CustomToolMaterial.java
package com.example.tool; import net.minecraft.item.Items; import net.minecraft.item.ToolMaterial; import net.minecraft.recipe.Ingredient; public class CustomToolMaterial implements ToolMaterial { public static final CustomToolMaterial INSTANCE = new CustomToolMaterial(); //インスタンス化 @Override public int getDurability() { return 2000; //耐久値の設定 } @Override public float getMiningSpeedMultiplier() { return 9F; //破壊速度 } @Override public float getAttackDamage() { return 5F; //攻撃速度 } @Override public int getMiningLevel() { return 3; //採掘レベル(ダイヤモンドの採掘レベルは3です。黒曜石を採掘するには3以上にしてください。) } @Override public int getEnchantability() { return 15; //エンチャント性 } @Override //金床の修理 public Ingredient getRepairIngredient() { return Ingredient.ofItems(Items.EMERALD);//エメラルドを指定(modid.アイテム) 使わない場合はnull } }
「PickaxeItem」と「HoeItem」、「AxeItem」はプライベートコンストラクターなので新しくパブリックコンストラクターを作成してください。
下記のソースコードをコピペしてください。
- CustomAxeItem.java
package com.example.tool; import net.minecraft.item.AxeItem; import net.minecraft.item.ToolMaterial; public class CustomAxeItem extends AxeItem { public CustomAxeItem(ToolMaterial material, int attackDamage, float attackSpeed, Settings settings) { super(material, attackDamage, attackSpeed, settings); } }
- CustomHoeItem.java
package com.example.tool; import net.minecraft.item.HoeItem; import net.minecraft.item.ToolMaterial; public class CustomHoeItem extends HoeItem { public CustomHoeItem(ToolMaterial material, int attackDamage, float attackSpeed, Settings settings) { super(material, attackDamage, attackSpeed, settings); } }
- CustomPickaxeItem.java
package com.example.tool; import net.minecraft.item.PickaxeItem; import net.minecraft.item.ToolMaterial; public class CustomPickaxeItem extends PickaxeItem { public CustomPickaxeItem (ToolMaterial material, int attackDamage, float attackSpeed, Settings settings) { super(material, attackDamage, attackSpeed, settings); } }