概要
何の機能もない基本的なアイテムを追加する。
ソースコード
package tutorial.aluminiummod;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.registry.GameRegistry;
@Mod(modid = "AluminiumMod", name = "Aluminium Mod", version = "1.0.0")
public class AluminiumMod {
//追加するアイテムの宣言
public static Item aluminium;
@EventHandler
public void preInit(FMLPreInitializationEvent event) {
//Itemのインスタンスを生成し、代入する。
aluminium = new Item()
//クリエイティブタブの登録
.setCreativeTab(CreativeTabs.tabMaterials)
//システム名の登録
.setUnlocalizedName("aluminium")
//テクスチャ名の登録
.setTextureName("aluminiummod:aluminium");
//GameRegistryへの登録
GameRegistry.registerItem(aluminium, "aluminium");
}
}
解説
AluminiumMod
void preInit(FMLPreInitializationEvent event)
modが読み込まれるとき最初に行われる処理。
アイテムやブロックの追加をする。
@EventHandlerをつける。
Mod
String modid, String name, String versionなど
modのコアクラスをFMLに登録するためのアノテーション。
modidは必須。nameとversionは、modsリストで表示される。
Item
minecraftのアイテムはすべてこのクラスを継承している。
modで追加するアイテムもこのクラスを継承することになる。
Item setCreativetab(CreativeTabs tab)
アイテムをクリエイティブタブに登録するメソッド。
バニラのクリエイティブタブはCreativeTabsにまとめられている。
+
|
バニラのクリエイティブタブの一覧 |
tabBlock・・・建築ブロック
tabBrewing・・・醸造
tabCombat・・・戦闘
tabDecorations・・・装飾ブロック
tabFood・・・食料
tabMaterials・・・材料
tabMisc・・・その他
tabRedStone・・・レッドストーン
tabTools・・・道具
tabTransport・・・移動
|
Item setUnlocalizedName(String name)
アイテムのシステム名を登録するメソッド。
Item setTextureName(String name)
アイテムのテクスチャ名を登録するメソッド。
テクスチャ名は、"小文字のmodid:ファイル名(拡張子なし)"で指定する。
GameRegistry
modが追加したアイテム・ブロック・レシピなどを登録するためのクラス。
Item registerItem(Item item, String name)
GameRegistryに追加アイテムを登録するメソッド。
引数は追加アイテムと登録名。
使用例
オファレンレーザーマガジン [白]を追加する部分。
メタデータなどを使っている箇所は省略した。
+
|
オファレンMOD |
package nahama.ofalenmod;
/*略*/
/**@author Akasata Nahama*/
@Mod(modid = OfalenModCore.MODID, name = OfalenModCore.MODNAME, version = OfalenModCore.VERSION)
public class OfalenModCore {
public static final String MODID = "OfalenMod";
public static final String MODNAME = "Ofalen Mod";
public static final String VERSION = "[1.7.10]1.0.0";
/*略*/
/**最初に行われる処理。アイテム・ブロックの追加などを行う*/
@EventHandler
public void preInit(FMLPreInitializationEvent event) {
/*略*/
//アイテムを設定するメソッドを実行
OfalenModItemCore.registerItem();
/*略*/
}
/*略*/
}
package nahama.ofalenmod.core;
/*略*/
public class OfalenModItemCore {
/*略*/
public static Item magazineLaserWhite;
/**アイテムを設定する*/
public static void registerItem () {
/*略*/
magazineLaserWhite = new LaserMagazine()
.setUnlocalizedName("magazineLaserWhite")
.setTextureName("ofalenmod:laser_magazine_white");
GameRegistry.registerItem(magazineLaserWhite, "magazineLaserWhite");
}
}
package nahama.ofalenmod.item;
/*略*/
public class LaserMagazine extends Item {
public LaserMagazine() {
super();
this.setCreativeTab(OfalenModCore.tabOfalen);
/*略*/
}
/*略*/
}
|
このままテストプレイをしてみると、テクスチャがない状態ではピンクと黒のデフォルトテクスチャになってしまう。
また、名前がitem.aluminium.nameとなる。
これらの解決方法は、次の次、
リソースの作成で。
コメント
この項目に関する質問などをどうぞ。
最終更新:2016年02月05日 18:15