提供: Minecraft Modding Wiki
(→アイテムの追加) |
(不要な処理はなかったけど、MODIDの持ち方を変えた。) |
||
18行目: | 18行目: | ||
import cpw.mods.fml.common.registry.LanguageRegistry; | import cpw.mods.fml.common.registry.LanguageRegistry; | ||
− | @Mod(modid= | + | @Mod(modid=SampleItemCore.MOD_ID, name="SampleItemCore", version="1.0") |
public class SampleItemCore | public class SampleItemCore | ||
{ | { | ||
+ | /** MODIDの文字列。ベタ書きでも良いけど、いろいろ使うこともあるので。 */ | ||
+ | public static final String MOD_ID = "sampleitemcore"; | ||
public static Item sampleItem; | public static Item sampleItem; | ||
public static int sampleItemID = 28520; | public static int sampleItemID = 28520; |
2015年12月11日 (金) 22:57時点における版
この記事は"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.MOD_ID, name="SampleItemCore", version="1.0") public class SampleItemCore { /** MODIDの文字列。ベタ書きでも良いけど、いろいろ使うこともあるので。 */ public static final String MOD_ID = "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"です。
ドメイン名は全て小文字にしなければいけません。