概要
minecraftのタイトル画面にある「mods」ボタンを押すと表示されるリストで使われる情報を設定する。
ここではjavaで設定しているが、"C:/forge/src/main/resources/mcmod.info"で設定することも可能。
ソースコード
package tutorial.aluminiummod;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import cpw.mods.fml.common.IFuelHandler;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Metadata;
import cpw.mods.fml.common.ModMetadata;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.registry.GameRegistry;
@Mod(modid = AluminiumMod.MODID, name = AluminiumMod.MODNAME, version = AluminiumMod.VERSION)
public class AluminiumMod {
//MODのIDなどを定義
public static final String MODID = "AluminiumMod";
public static final String MODNAME = "Aluminium Mod";
public static final String VERSION = "1.0.0";
//ModMetadataを格納するための変数を宣言
@Metadata(MODID)
public static ModMetadata meta;
public static Item aluminium;
public static Block blockAluminium;
@EventHandler
public void perInit(FMLPreInitializationEvent event) {
//Infoファイルを読み込む
ModInfo.loadInfo(meta);
aluminium = new Item()
.setCreativeTab(CreativeTabs.tabMaterials)
.setUnlocalizedName("aluminium")
.setTextureName("aluminiummod:aluminium");
GameRegistry.registerItem(aluminium, "aluminium");
blockAluminium = new AluminiumBlock(Material.rock)
.setBlockName("blockAluminium")
.setBlockTextureName("aluminiummod:aluminium_block");
GameRegistry.registerBlock(blockAluminium, "blockAluminium");
}
/*略*/
}
package tutorial.aluminiummod;
import cpw.mods.fml.common.ModMetadata;
public class ModInfo {
public static void loadInfo(ModMetadata meta) {
meta.modId = AluminiumMod.MODID;
meta.name = AluminiumMod.MODNAME;
meta.description ="This mod adds Aluminium.";
meta.version =AluminiumMod.VERSION ;
meta.url = "http://www63.atwiki.jp/akasatanahama/pages/17.html";
meta.authorList.add("Akasata Nahama");
meta.credits = "";
meta.logoFile ="assets/aluminiummod/logo.png";
meta.autogenerated = false;
}
}
解説
Metadata
String modid
@Modで使用したmodidを渡すことで、このアノテーションをつけたModMetadata変数を設定に使えるようになる。
ModMetadata
modsリストで表示される情報を格納する変数が宣言されているクラス。
String modId
@Modで使用したものと同じmodidを指定する。
String name
MODの名前。
@Modで指定したものと同じでよい。
String version
MODのバージョン。
@Modで設定したものと併記される。
@Modで指定したものと同じでよい。
String description
MODの説明文。
String url
MODの配布場所のURL。
List<String> authorList
作者名のリスト。
String credits
クレジット。
作者以外で記しておきたい人の名前などを指定する。(?)
String logoFile
ロゴ画像を指定する。
ここで指定した場所に画像を置いておけば、読み込んでくれる。
boolean autogenerated
falseにすることでmcmod.infoを使用せず、こちらを読み込んでくれる。
ModInfo
AluminiumModの情報を登録するためのクラス。
void loadInfo(ModMetadata meta)
AluminiumModの情報をmetaに指定するためのメソッド。
使用例
このチュートリアルに関係ない部分は省略した。
+
|
オファレン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";
/*略*/
/**Infoファイル作成用*/
@Metadata(MODID)
public static ModMetadata meta;
/*略*/
/**最初に行われる処理。アイテム・ブロックの追加などを行う*/
@EventHandler
public void preInit(FMLPreInitializationEvent event) {
//Infoファイルを読み込む
OfalenModInfoCore.loadInfo(meta);
/*略*/
}
/*略*/
}
package nahama.ofalenmod.core;
import nahama.ofalenmod.OfalenModCore;
import net.minecraft.util.StatCollector;
import cpw.mods.fml.common.ModMetadata;
public class OfalenModInfoCore {
public static void loadInfo(ModMetadata meta) {
meta.modId = OfalenModCore.MODID;
meta.name = OfalenModCore.MODNAME;
meta.description =StatCollector.translateToLocal("info.metadescription");
meta.version =OfalenModCore.VERSION ;
meta.url = "http://www63.atwiki.jp/akasatanahama/pages/15.html";
meta.authorList.add("Akasata Nahama");
meta.credits = "\"Takumi Craft\" is making by Tom Kate.";
meta.logoFile ="assets/ofalenmod/logo.png";
meta.autogenerated = false;
}
}
|
コメント
この項目に関する質問などをどうぞ。
最終更新:2015年07月13日 14:18