提供: Minecraft Modding Wiki
2013年9月15日 (日) 02:13時点における124.210.78.172 (トーク)による版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先: 案内検索

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

ツールの追加

鉄の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;
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", "サンプルツルハシ");

		/* レシピの登録 */
		GameRegistry.addRecipe(new ItemStack(samplePickaxe, 1), 
		   		       new Object[] {"XYX", " Z ", " Z ", 'X', Item.ingotIron , 'Y', Block.blockIron, 'Z', Item.stick});
	}
	
	@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.func_111206_d("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はブロックを引数として取ることができないため)。

GameRegistry.addRecipe(new ItemStack(samplePickaxe, 1), 
		       new Object[] {"XYX", " Z ", " Z ", 'X', Item.ingotIron , 'Y', Block.blockIron, 'Z', Item.stick});

ツルハシの製作レシピを登録します。
1段目の引数には制作するアイテム, 個数を指定します。
2段目の引数で素材アイテムの置き方を指定します。

まず最初の3つの引数がそれぞれクラフティンググリッドの上段、中断、下段に対応します。
まずグリッド上段、すなわち"XYX"の項目で上段左、上段右に'X'で指定するアイテムを、上段中央に'Y'で指定するアイテムを指定しています。
次にグリッド中段、" Z "の項目でグリッドの中央に'Z'で指定するアイテムを指定しています。
注意すべきは、'Z'の前後にスペースが入っていることです。
このスペースで空白を指定することができます。
グリッド下段は中段と同じ配置なので省略します。

2段目の引数では1段目の引数で置いた文字がどのアイテムに対応するかを指定します。
'文字', アイテム, '文字', アイテム, ... という風に指定していきます。
文字の前後の記号が " ではなく ' であることに気をつけてください。

なお、このツルハシのレシピは上段に(鉄インゴット, 鉄ブロック, 鉄インゴット)、中段・下段に(空白, 木の棒, 空白)を置くというものになります。


ItemSamplePickaxe.java

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

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