提供: Minecraft Modding Wiki
2017年8月7日 (月) 11:57時点における115.36.95.48 (トーク)による版 (SampleFoodCore.java)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先: 案内検索

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

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

食料の追加

食べることのできる食料の追加
レシピの追加は行っていないので、自分で追加する必要がある

ソースコード

  • SampleFoodCore.java
package mods.foodsample;

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="SampleFoodCore", name="SampleFoodCore", version="1.0")
public class SampleFoodCore
{
	public static Item sampleFood;
	public static int sampleFoodID = 28521;
	
	@EventHandler
	public void init(FMLInitializationEvent event)
	{
		//表示名の登録
		LanguageRegistry.addName(sampleFood, "Sample Food");
		LanguageRegistry.instance().addNameForObject(sampleFood, "ja_JP", "サンプル フード");
	}
	
	@EventHandler
	public void preInit(FMLPreInitializationEvent event)
	{
		//インスタンスの代入。引数はID, 回復量, 狼が食べれるか
		sampleFood = new ItemSampleFood(sampleFoodID, 5, false);
		GameRegistry.registerItem(sampleFood, "sampleFood");
	}
}
  • ItemSampleFood.java
package mods.foodsample;

import net.minecraft.item.ItemFood;
import net.minecraft.potion.Potion;

public class ItemSampleFood extends ItemFood
{

	public ItemSampleFood(int par1, int par2, boolean par3)
	{
		super(par1, par2, par3);
		this.setUnlocalizedName("SampleFood");	//システム名の登録
		this.setTextureName("sample_food");	//テクスチャの指定
		this.setMaxStackSize(64);	//スタックできる量

		//以下不要なら消してください
		this.setAlwaysEdible();	//お腹すいてなくても食べれる。
		this.setPotionEffect(Potion.poison.id, 5, 0, 0.6F);	//ポーション効果 ID, 時間(秒), レベル(書いた値+1になる), 確率(0.0~1.0F 1.0Fの時100%)
	}


}

解説

SampleFoodCore.java

public static Item sampleFood;
public static int sampleFoodID = 28521;

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

LanguageRegistry.addName(sampleFood, "Sample Food");
LanguageRegistry.instance().addNameForObject(sampleFood, "ja_JP", "サンプル フード");

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

//インスタンスの代入。引数はID, 回復量, 狼が食べれるか
sampleFood = new ItemSampleFood(sampleFoodID, 5, false);
GameRegistry.registerItem(sampleFood, "sampleFood");

sampleFood の変数にItemSampleFoodのインスタンスを代入。
一つ目の引数は、アイテムID、二つ目は回復量、三つ目は狼が食べられるか。食べられる=true

ItemSampleFood.java

this.setUnlocalizedName("SampleFood");	//システム名の登録
this.func_111206_d("sample_food");	//テクスチャの指定
this.setMaxStackSize(64);	//スタックできる量

//以下不要なら消してください
this.setAlwaysEdible();	//お腹すいてなくても食べれる。
this.setPotionEffect(Potion.poison.id, 5, 0, 0.6F);	//ポーション効果 ID, 時間(秒), レベル(書いた値+1になる), 確率(0.0~1.0F 1.0Fの時100%)

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