提供: Minecraft Modding Wiki
この記事は"Minecraft Forge Universal 9.10.0.xxx~"を前提MODとしています。 |
武器(剣)の追加
ダメージが6(鉄剣と同じ)剣を追加する。また、金床で骨を使って修復することができる。
ソースコード
- SampleSwordCore.java
package mods.swordsample; import net.minecraft.item.EnumToolMaterial; import net.minecraft.item.Item; import net.minecraft.item.ItemSword; import net.minecraftforge.common.EnumHelper; 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="SampleSwordCore", name="SampleSwordCore", version="1.0") public class SampleSwordCore { public static Item sampleSword; public static int sampleSwordID = 28522; public static EnumToolMaterial sampleEnum; @EventHandler public void init(FMLInitializationEvent event) { //表示名の登録 LanguageRegistry.addName(sampleSword, "Sample Sword"); LanguageRegistry.instance().addNameForObject(sampleSword, "ja_JP", "サンプル剣"); } @EventHandler public void preInit(FMLPreInitializationEvent event) { //インスタンスの代入。 sampleSword = new ItemSampleSword(sampleSwordID, sampleEnum); GameRegistry.registerItem(sampleSword, "sampleSword"); } static { //剣に使う基本素材の設定 sampleEnum = EnumHelper.addToolMaterial("SAMPLE", 0, 150, 4.0F, 2.0F, 22); sampleEnum.customCraftingMaterial = Item.bone; } }
- ItemSampleSword.java
package mods.swordsample; import net.minecraft.item.EnumToolMaterial; import net.minecraft.item.ItemSword; public class ItemSampleSword extends ItemSword { public ItemSampleSword(int par1, EnumToolMaterial par2EnumToolMaterial) { super(par1, par2EnumToolMaterial); this.setUnlocalizedName("SampleSword"); //システム名の登録 this.setTextureName("sample_sword"); //テクスチャの指定 } }
解説
SampleSwordCore.java
public static Item sampleSword; public static int sampleSwordID = 28522;
追加する剣を保持しておく変数と、剣のIDを保持しておく変数を宣言。
LanguageRegistry.addName(sampleSword, "Sample Sword"); LanguageRegistry.instance().addNameForObject(sampleSword, "ja_JP", "サンプル剣");
ゲーム中に表示される名前の登録。
2段目の2つめの引数に"ja_JP"を指定することで日本語名称の登録
//インスタンスの代入。 sampleSword = new ItemSampleSword(sampleSwordID, sampleEnum); GameRegistry.registerItem(sampleSword, "sampleSword");
剣のデータをMinecraftに登録している。
sampleEnum = EnumHelper.addToolMaterial("SAMPLE", 0, 150, 4.0F, 2.0F, 22); sampleEnum.customCraftingMaterial = Item.bone;
剣の素材を設定している。
1段目の設定では、引数に、名前、基本性能(今回は不要)、耐久値、壊す速度(今回は不要)、攻撃時のダメージ(これに+3されます)、良エンチャントの付きやすさ
を指定している。
2段めでは、金床使用時に修復するアイテムを指定している。今回は骨を指定している。
ItemSampleSword.java
this.setUnlocalizedName("SampleSword"); //システム名の登録 this.setTextureName("sample_sword"); //テクスチャの指定
システム名の登録をしないと、表示名の登録はできません。
テクスチャは、"assets/minecraft/textures/items/登録名"に置いたのが表示されます。
今回の場合は、"assets/minecraft/textures/items/sample_sword.png"です。