提供: Minecraft Modding Wiki
この記事は"Minecraft Forge Universal 9.10.0.xxx~"を前提MODとしています。 |
食料の追加
食べることのできる食料の追加
レシピの追加は行っていないので、自分で追加する必要がある
ソースコード
- 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");
sampleFoo の変数に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"です。