提供: Minecraft Modding Wiki
(→ソースコード) |
(→ソースコード) |
||
33行目: | 33行目: | ||
public void preInit(FMLPreInitializationEvent event) | public void preInit(FMLPreInitializationEvent event) | ||
{ | { | ||
− | sampleItem = new | + | sampleItem = new Item(sampleItemID); |
GameRegistry.registerItem(sampleItem, "sampleItem"); | GameRegistry.registerItem(sampleItem, "sampleItem"); | ||
} | } |
2014年2月14日 (金) 20:55時点における版
この記事は"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 Item(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"です。
ドメイン名は全て小文字にしなければいけません。