提供: Minecraft Modding Wiki
細 |
|||
1行目: | 1行目: | ||
{{前提MOD|reqmod="Minecraft Forge Universal 9.10.0.xxx~"}} | {{前提MOD|reqmod="Minecraft Forge Universal 9.10.0.xxx~"}} | ||
− | + | {{チュートリアル難易度|difficulty=0|clear=none}} | |
+ | {{チュートリアルカテゴリー|difficulty=0|type=Item}} | ||
+ | <p>簡単なアイテムの追加方法</p> | ||
==アイテムの追加== | ==アイテムの追加== | ||
− | |||
− | |||
===ソースコード=== | ===ソースコード=== | ||
*SampleItemCore.java | *SampleItemCore.java |
2014年10月5日 (日) 13:24時点における版
この記事は"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.setTextureName("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"です。
ドメイン名は全て小文字にしなければいけません。