提供: Minecraft Modding Wiki
(ページの作成:「{{前提MOD|reqmod="Fabric API 0.3.2 build 230~"}} {{チュートリアル難易度|difficulty=1|clear=none}} {{チュートリアルカテゴリー|difficulty=1|type=I…」) |
細 (→ツール(道具)の追加) |
||
35行目: | 35行目: | ||
//ツール作成 | //ツール作成 | ||
− | public static ToolItem EMERALD_SWORD = new SwordItem( | + | public static ToolItem EMERALD_SWORD = new SwordItem(CustomToolMaterial.INSTANCE, 3, -2F, new Item.Settings().group(ItemGroup.TOOLS)); |
− | public static ToolItem EMERALD_PICKAXE = new CustomPickaxeItem( | + | 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( | + | 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( | + | 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( | + | public static ToolItem EMERALD_HOE = new CustomHoeItem(CustomToolMaterial.INSTANCE, -1, -3.0F, new Item.Settings().group(ItemGroup.TOOLS)); |
@Override | @Override | ||
50行目: | 50行目: | ||
Registry.register(Registry.ITEM, new Identifier(MOD_ID, "emerald_hoe"), EMERALD_HOE); | Registry.register(Registry.ITEM, new Identifier(MOD_ID, "emerald_hoe"), EMERALD_HOE); | ||
} | } | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
+ | *CustomToolMaterial.java | ||
+ | <source lang = "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 | ||
+ | } | ||
+ | } | ||
+ | |||
+ | </source> | ||
+ | 「PickaxeItem」と「HoeItem」、「AxeItem」はプライベートコンストラクターなので新しくパブリックコンストラクターを作成してください。<br> | ||
+ | 下記のソースコードをコピペしてください。 | ||
+ | *CustomAxeItem.java | ||
+ | <source lang = "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); | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
+ | *CustomHoeItem.java | ||
+ | <source lang = "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); | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
+ | *CustomPickaxeItem.java | ||
+ | <source lang = "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); | ||
} | } | ||
} | } | ||
</source> | </source> |
2020年10月12日 (月) 20:16時点における版
この記事は"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); } }