提供: Minecraft Modding Wiki
2014年10月5日 (日) 14:29時点におけるShift (トーク | 投稿記録)による版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先: 案内検索

この記事は"Minecraft Forge Universal 9.10.0.xxx~"を前提MODとしています。

Stone pickaxe.png
中級者向けのチュートリアルです。
C item.png
Itemに関係のあるチュートリアルです。

ツールの追加

鉄の2倍の耐久度を持ち、ダイヤの2倍の速さでブロックを破壊できるツルハシを追加します。
攻撃力、破壊できるブロックの種類はは鉄と同等です。 金床での修復には鉄ブロックを使用します。

ソースコード

  • SamplePickaxeCore.java
package mods.pickaxesample;

import net.minecraft.item.EnumToolMaterial;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.block.Block;
import net.minecraft.item.ItemPickaxe;

import net.minecraftforge.common.EnumHelper;

import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;

@Mod(modid="SamplePickaxe", name="SamplePickaxe", version="1.0")
public class SamplePickaxeCore
{
	public static Item samplePickaxe;
	public static int samplePickaxeID = 28523;
	
	public static EnumToolMaterial samplePickaxeEnum;
	
	@EventHandler
	public void init(FMLInitializationEvent event)
	{
		/* 表示名の登録 */
		LanguageRegistry.addName(samplePickaxe, "Sample Pickaxe");
		LanguageRegistry.instance().addNameForObject(samplePickaxe, "ja_JP", "サンプルツルハシ");
	}
	
	@EventHandler
	public void preInit(FMLPreInitializationEvent event)
	{
		/* インスタンスの代入 */
		samplePickaxe= new ItemSamplePickaxe(samplePickaxeID, samplePickaxeEnum);
		GameRegistry.registerItem(samplePickaxe, "samplePickaxe");
	}
	
	static
	{
		/* 基本素材の設定 */
		samplePickaxeEnum = EnumHelper.addToolMaterial("SAMPLE_PICKAXE", 2, 500, 16.0F, 2.0F, 14);
		samplePickaxeEnum.customCraftingMaterial = new ItemStack(Block.blockIron).getItem();
	}
}
  • ItemSamplePickaxe.java
package mods.pickaxesample;

import net.minecraft.item.EnumToolMaterial;
import net.minecraft.item.ItemPickaxe;

public class ItemSamplePickaxe extends ItemPickaxe
{
	public ItemSamplePickaxe(int par1, EnumToolMaterial par2EnumToolMaterial) {
		super(par1, par2EnumToolMaterial);
		this.setUnlocalizedName("SamplePickaxe");  /* システム名の登録 */
		this.setTextureName("sample:sample_pickaxe");	   /* テクスチャの指定 */
	}
}

解説

SamplePickaxeCore.java

samplePickaxeEnum = EnumHelper.addToolMaterial("SAMPLE_PICKAXE", 2, 500, 16.0F, 2.0F, 14);
samplePickaxeEnum.customCraftingMaterial = new ItemStack(Block.blockIron).getItem();

ツルハシの素材を指定します。
1段目の設定の意味は剣のサンプルのページにあるので省略します。
2段目で、金床使用時に修復するアイテムを指定します。
今回の例のようにブロックを使用する場合は、このように記述します。(customCraftingMaterialはブロックを引数として取ることができないため)。

ItemSamplePickaxe.java

this.setUnlocalizedName("SamplePickaxe");  /* システム名の登録 */
this.setTextureName("sample_pickaxe");	   /* テクスチャの指定 */

アイテムのシステム名とテクスチャを登録します。
システム名は他のアイテムと被らないように設定しなければいけません
modとして配布する際には特に注意してください。
テクスチャは、"assets/ドメイン名/textures/items/登録名"に置いたものが表示されます。
今回の場合は、"assets/sample/textures/items/sample_pickaxe.png"です。