提供: Minecraft Modding Wiki
(ページの作成:「{{前提MOD|reqmod="Minecraft Forge Universal 9.10.0.xxx~"}} ==アイテムの追加== <p>簡単なアイテムの追加方法</p> ===ソースコード=== *SampleI...」) |
細 |
||
(9人の利用者による、間の10版が非表示) | |||
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 | ||
17行目: | 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"; | ||
+ | /** 追加したいItemクラスのインスタンス */ | ||
public static Item sampleItem; | public static Item sampleItem; | ||
+ | /** ItemID変数。32000まで。 */ | ||
public static int sampleItemID = 28520; | public static int sampleItemID = 28520; | ||
57行目: | 62行目: | ||
this.setCreativeTab(CreativeTabs.tabMaterials); //クリエイティブのタブ | this.setCreativeTab(CreativeTabs.tabMaterials); //クリエイティブのタブ | ||
this.setUnlocalizedName("SampleItem"); //システム名の登録 | this.setUnlocalizedName("SampleItem"); //システム名の登録 | ||
− | this. | + | this.setTextureName("samplemod:sample_item"); //テクスチャの指定 |
this.setMaxStackSize(64); //スタックできる量 | this.setMaxStackSize(64); //スタックできる量 | ||
} | } | ||
81行目: | 86行目: | ||
} | } | ||
</source> | </source> | ||
+ | |||
==解説== | ==解説== | ||
===SampleItemCore.java=== | ===SampleItemCore.java=== | ||
111行目: | 117行目: | ||
this.setCreativeTab(CreativeTabs.tabMaterials); //クリエイティブのタブ | this.setCreativeTab(CreativeTabs.tabMaterials); //クリエイティブのタブ | ||
this.setUnlocalizedName("SampleItem"); //システム名の登録 | this.setUnlocalizedName("SampleItem"); //システム名の登録 | ||
− | this. | + | this.setTextureName("samplemod:sample_item"); //テクスチャの指定 |
this.setMaxStackSize(64); //スタックできる量 | this.setMaxStackSize(64); //スタックできる量 | ||
</source> | </source> | ||
システム名の登録をしないと、表示名の登録はできません。<br> | システム名の登録をしないと、表示名の登録はできません。<br> | ||
− | テクスチャは、'''" | + | テクスチャは、'''"assets/ドメイン名/textures/items/登録名"'''に置いたのが表示されます。<br> |
− | 今回の場合は、"assets/ | + | 今回の場合は、"assets/samplemod/textures/items/sample_item.png"です。<br> |
+ | ドメイン名は全て小文字にしなければいけません。 |
2015年12月11日 (金) 23:09時点における最新版
この記事は"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"; /** 追加したいItemクラスのインスタンス */ public static Item sampleItem; /** ItemID変数。32000まで。 */ 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"です。
ドメイン名は全て小文字にしなければいけません。