提供: Minecraft Modding Wiki
移動先: 案内検索

この記事は"Minecraft Forge Universal 12.16.0.xxx~"を前提MODとしています。

Wood pickaxe.png
初心者向けのチュートリアルです。
C item.png
Itemに関係のあるチュートリアルです。

アイテムの追加

簡単な無機能アイテムの追加方法

注意:一度入れたMODを外すと、再び入れてもテクスチャが反映されなくなります。デバッグ時にご注意を。

ソースコード

SampleMod.java

package com.example.item;

import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.registry.GameRegistry;

@Mod(modid = SampleMod.MOD_ID,
        name = SampleMod.MOD_NAME,
        version = SampleMod.MOD_VERSION,
        dependencies = SampleMod.MOD_DEPENDENCIES,
        acceptedMinecraftVersions = SampleMod.MOD_ACCEPTED_MC_VERSIONS,
        useMetadata = true)
public class SampleMod{
    /** ModID文字列 */
    public static final String MOD_ID = "samplemod";
    /** MOD名称 */
    public static final String MOD_NAME = "SampleMod";
    /** MODのバージョン */
    public static final String MOD_VERSION = "0.0.1";
    /** 前に読み込まれるべき前提MODをバージョン込みで指定 */
    public static final String MOD_DEPENDENCIES = "required-after:Forge@[1.9-12.16.0.1853,)";
    /** 起動出来るMinecraft本体のバージョン。記法はMavenのVersion Range Specificationを検索すること。 */
    public static final String MOD_ACCEPTED_MC_VERSIONS = "[1.9]";
    /** 追加したいアイテムのインスタンスを格納する変数。レシピ等で利用。 */
    public static Item sampleItem;

    @EventHandler
    public void preInit(FMLPreInitializationEvent event){
        sampleItem = new Item()
        .setCreativeTab(CreativeTabs.tabMaterials)/*クリエイティブのタブ*/
        .setUnlocalizedName("SampleItem")/*システム名の登録*/
        /*.setHasSubtypes(true)*//*ダメージ値等で複数の種類のアイテムを分けているかどうか。デフォルトfalse*/
    	/*.setMaxDamage(256)*//*耐久値の設定。デフォルト0*/
        /*.setFull3D()*//*3D表示で描画させる。ツールや骨、棒等。*/
        /*.setContainerItem(Items.stick)*//*クラフト時にアイテムを返却できるようにしている際の返却アイテムの指定。*/
        /*.setPotionEffect(PotionHelper.ghastTearEffect)*//*指定文字列に対応した素材として醸造台で使える。PotionHelper参照のこと。*/
        /*.setNoRepair()*//*修理レシピを削除し、金床での修繕を出来なくする*/
        .setMaxStackSize(64);/*スタックできる量。デフォルト64*/
        //アイテムの登録。登録文字列はMOD内で被らなければ何でも良い。
        GameRegistry.register(sampleItem, new ResourceLocation(MOD_ID, "sampleitem"));

        //テクスチャ・モデル指定JSONファイル名の登録。
        if(event.getSide().isClient()){
            //1IDで複数モデルを登録するなら、上のメソッドで登録した登録名を指定する。
            ModelLoader.setCustomModelResourceLocation(sampleItem, 0, new ModelResourceLocation(sampleItem.getRegistryName(), "inventory"));
        }

    }
}

sampleitem.json

{
  "parent": "item/generated",
  "textures": {
    "layer0": "items/apple"
  }
}

解説

SampleMod.java

1.8のアイテム追加に同じ。

sampleitem.json

{
  "parent": "item/generated",
  "textures": {
    "layer0": "items/apple"
  }
}

アイテムモデル用JSONファイルである。このファイルは、
assets\<modid>\models\item
ディレクトリに配置する。(※MODIDに大文字が含まれる場合、フォルダ名称は小文字にする)

parent:親のモデルJSONファイルを指定。"item/generated"で通常のアイテムのモデルを指定。Toolは"item/handheld"。棒状のものは"item/handheld_rod"。