提供: Minecraft Modding Wiki
移動先: 案内検索

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

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

武器(剣)の追加

ダメージが6(鉄剣と同じ)剣を追加する。また、金床で骨を使って修復することができる。

ソースコード

  • SampleSwordCore.java
package mods.swordsample;

import net.minecraft.item.EnumToolMaterial;
import net.minecraft.item.Item;
import net.minecraft.item.ItemSword;
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="SampleSwordCore", name="SampleSwordCore", version="1.0")
public class SampleSwordCore
{
	public static Item sampleSword;
	public static int sampleSwordID = 28522;
	
	public static EnumToolMaterial sampleEnum;
	
	@EventHandler
	public void init(FMLInitializationEvent event)
	{
		//表示名の登録
		LanguageRegistry.addName(sampleSword, "Sample Sword");
		LanguageRegistry.instance().addNameForObject(sampleSword, "ja_JP", "サンプル剣");
	}
	
	@EventHandler
	public void preInit(FMLPreInitializationEvent event)
	{
		//インスタンスの代入。
		sampleSword = new ItemSampleSword(sampleSwordID, sampleEnum);
		GameRegistry.registerItem(sampleSword, "sampleSword");
	}
	
	static
	{
		//剣に使う基本素材の設定
		sampleEnum = EnumHelper.addToolMaterial("SAMPLE", 0, 150, 4.0F, 2.0F, 22);
		sampleEnum.customCraftingMaterial = Item.bone;
	}
}
  • ItemSampleSword.java
package mods.swordsample;

import net.minecraft.item.EnumToolMaterial;
import net.minecraft.item.ItemSword;

public class ItemSampleSword extends ItemSword
{
	
	public ItemSampleSword(int par1, EnumToolMaterial par2EnumToolMaterial)
	{
		super(par1, par2EnumToolMaterial);
		this.setUnlocalizedName("SampleSword");	//システム名の登録
		this.setTextureName("sample_sword");	//テクスチャの指定
	}

}

解説

SampleSwordCore.java

public static Item sampleSword;
public static int sampleSwordID = 28522;

追加する剣を保持しておく変数と、剣のIDを保持しておく変数を宣言。

LanguageRegistry.addName(sampleSword, "Sample Sword");
LanguageRegistry.instance().addNameForObject(sampleSword, "ja_JP", "サンプル剣");

ゲーム中に表示される名前の登録。
2段目の2つめの引数に"ja_JP"を指定することで日本語名称の登録

//インスタンスの代入。
sampleSword = new ItemSampleSword(sampleSwordID, sampleEnum);
GameRegistry.registerItem(sampleSword, "sampleSword");

剣のデータをMinecraftに登録している。

sampleEnum = EnumHelper.addToolMaterial("SAMPLE", 0, 150, 4.0F, 2.0F, 22);
sampleEnum.customCraftingMaterial = Item.bone;

剣の素材を設定している。
1段目の設定では、引数に、名前、基本性能(今回は不要)、耐久値、壊す速度(今回は不要)、攻撃時のダメージ(これに+3されます)、良エンチャントの付きやすさ
を指定している。
2段めでは、金床使用時に修復するアイテムを指定している。今回は骨を指定している。

ItemSampleSword.java

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

システム名の登録をしないと、表示名の登録はできません。
テクスチャは、"assets/minecraft/textures/items/登録名"に置いたのが表示されます。
今回の場合は、"assets/minecraft/textures/items/sample_sword.png"です。