提供: Minecraft Modding Wiki
移動先: 案内検索
(テクスチャ指定についての記述ミスをを訂正。)
(func_111206_d→setTextureName)
111行目: 111行目:
 
this.setCreativeTab(CreativeTabs.tabMaterials); //クリエイティブのタブ
 
this.setCreativeTab(CreativeTabs.tabMaterials); //クリエイティブのタブ
 
this.setUnlocalizedName("SampleItem"); //システム名の登録
 
this.setUnlocalizedName("SampleItem"); //システム名の登録
this.func_111206_d("samplemod:sample_item"); //テクスチャの指定
+
this.setTextureName("samplemod:sample_item"); //テクスチャの指定
 
this.setMaxStackSize(64); //スタックできる量
 
this.setMaxStackSize(64); //スタックできる量
 
</source>
 
</source>

2013年10月15日 (火) 14:47時点における版

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

アイテムの追加

簡単なアイテムの追加方法

ソースコード

  • SampleItemCore.java
package mods.itemsample;

import net.minecraft.item.Item;
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="SampleItemCore", name="SampleItemCore", version="1.0")
public class SampleItemCore
{
	public static Item sampleItem;
	public static int sampleItemID = 28520;
	
	@EventHandler
	public void init(FMLInitializationEvent event)
	{
		LanguageRegistry.addName(sampleItem, "Sample Item");
		LanguageRegistry.instance().addNameForObject(sampleItem, "ja_JP", "サンプル アイテム");
	}
	
	@EventHandler
	public void preInit(FMLPreInitializationEvent event)
	{
		sampleItem = new ItemSample(sampleItemID);
		GameRegistry.registerItem(sampleItem, "sampleItem");
	}
}
  • ItemSample.java
package mods.itemsample;

import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;

public class ItemSample extends Item
{

	public ItemSample(int par1)
	{
		super(par1);
		this.setCreativeTab(CreativeTabs.tabMaterials);	//クリエイティブのタブ
		this.setUnlocalizedName("SampleItem");	//システム名の登録
		this.func_111206_d("samplemod:sample_item");	//テクスチャの指定
		this.setMaxStackSize(64);	//スタックできる量
	}

	/*
	 * 以下おまけ
	 * 特に機能がなければ消してください
	 */
	
	@Override
	public boolean onItemUse(ItemStack item, EntityPlayer player, World world, int x, int y, int z, int side, float disX, float disY, float disZ)
	{
		//アイテムをブロックに対して右クリックした時に呼ばれる
		return false;
	}

	@Override
	public ItemStack onItemRightClick(ItemStack item, World world, EntityPlayer player)
	{
		//アイテムを右クリック時に呼ばれる
		return item;
	}
}

解説

SampleItemCore.java

public static Item sampleItem;
public static int sampleItemID = 28520;

追加するアイテムを記憶しておく変数と、アイテムIDの変数を宣言。

LanguageRegistry.addName(sampleItem, "Sample Item");
LanguageRegistry.instance().addNameForObject(sampleItem, "ja_JP", "サンプル アイテム");

追加するアイテムの表示名を登録。
2つめの登録は、日本語名の登録。真ん中の引数で登録する言語を指定。

sampleItem = new ItemSample(sampleItemID);
GameRegistry.registerItem(sampleItem, "sampleItem");

変数に、新しくインスタンスを代入。
そして、新しくアイテムを登録している。
登録する際にアイテムIDが +256されるので、変数の値で登録したい時には、-256する必要がある。

sampleItem = new ItemSample(sampleItemID - 256);

ItemSample.java

this.setCreativeTab(CreativeTabs.tabMaterials);	//クリエイティブのタブ
this.setUnlocalizedName("SampleItem");	//システム名の登録
this.setTextureName("samplemod:sample_item");	//テクスチャの指定
this.setMaxStackSize(64);	//スタックできる量

システム名の登録をしないと、表示名の登録はできません。
テクスチャは、"assets/ドメイン名/textures/items/登録名"に置いたのが表示されます。
今回の場合は、"assets/samplemod/textures/items/sample_item.png"です。
ドメイン名は全て小文字にしなければいけません。