提供: Minecraft Modding Wiki
(MLPropの内容を追加) |
(コメント欄を追加(忘れてた。)) |
||
179行目: | 179行目: | ||
</tr> | </tr> | ||
</table> | </table> | ||
+ | |||
+ | <comments /> |
2012年3月20日 (火) 16:00時点における版
ModLoaderとは、マインクラフトの大半のMODの作成、導入を補助する前提MOD。
レシピやアイテムなどの追加アイテムなどを簡単に作ったりすることができる。
BaseMod
BaseModはModLoaderに含まれるクラスの一つです。
このクラスを継承した自作Modクラスを作成することで、ModLoaderが自作Modを読み込めるようになります。
ソースコードの例
以下にもっとも単純な自作Modクラスを示します。
このコードだけでも完全なModとして動作します。
package net.minecraft.src; import net.minecraft.client.Minecraft; /** * 自作Modクラス * BaseModクラスを継承している */ public class mod_MyMod extends BaseMod { /** * 自作Modのコンストラクタ */ public mod_MyMod() { super(); } /** * 自作ModがModLoaderによって読み込まれる際に呼ばれる * ここでアイテムやブロックの定義、レシピの追加などを行う */ public void load() { } /** * 自作Modのバージョンを定義する * MinecraftやModLoaderのバージョンと同じである必要はないが、わかりやすいものがよい */ public String getVersion() { return "1.2.3-a"; } }
メソッド一覧
BaseModクラスには上記のソースコードに示したメソッド以外にも、様々なメソッドが含まれます。以下の表はBaseModクラスに含まれるメソッドの一覧です。なお、太字で示したメソッドはabstractであるため必ずオーバーライドしなければなりません。
メソッド名 | 説明 |
---|---|
int addFuel(int itemID, int metaData) | 指定されたitemID、metaDataのアイテムが燃料として使用可能かどうか指定する。 燃料として利用可能であれば燃焼時間を戻り値とする。 |
void addRenderer(Map entityRenderMap) | Entityクラスとその描画に用いるRenderクラスの対応を追加する。 entityRenderMap.put(Entity.class, new Render())のように指定する。 |
boolean dispenseEntity(World world, double x, double y, double z, int xVel, int zVel, Item item) | ディスペンサーからitemが発射される直前に呼ばれ、対応するEntityの射出処理を行う。この処理を行った場合は戻り値をtrueとする。 |
void generateNether(World world, Random random, int chunkX, int chunkZ) | ネザーの新しい地形を生成するために使用される。 |
void generateSurface(World world, Random random, int chunkX, int chunkZ) | 通常の世界に新しい地形を生成するために使用される。ネザーなどの別ディメンジョン、スーパーフラットでは呼ばれない。 |
String getName() | このクラスの名前を定義する。 |
String getPriorities() | ModLoaderがこのModを読み込む順番を定義する。 |
String getVersion() | Modのバージョンを定義する。 |
void keyboardEvent(KeyBinding keybinding) | 登録されたキーが押されたときに呼び出される |
void load() | Modが読み込まれる際に呼ばれる。 |
void modsLoaded() | 全てのModが読み込まれた時に呼ばれる。 |
void onItemPickup(EntityPlayer entityplayer, ItemStack itemstack) | プレイヤーがアイテムを拾ったときに呼ばれる。 |
boolean onTickInGame(float f, Minecraft minecraft) | マインクラフトが起動している間、毎Tickごとに呼ばれる。falseを返すと呼ばれなくなる。 先にModLoader.setInGameHookを呼んで有効にする必要がある。 |
boolean onTickInGUI(float f, Minecraft minecraft, GuiScreen guiscreen) | ModでGUIを開くために使用する。falseを返すと呼ばれなくなる。 先にModLoader.setInGUIHookを呼んで有効にする必要がある。 |
void registerAnimation(Minecraft minecraft) | |
void renderInvBlock(RenderBlocks renderblocks, Block block, int i, int j) | インベントリ内のブロックを描画するために呼ばれる。 |
boolean renderWorldBlock(RenderBlocks renderblocks, IBlockAccess iblockaccess, int i, int j, int k, Block block, int l) | ワールド上に配置されているブロックを描画するために呼ばれる。 |
void takenFromCrafting(EntityPlayer entityplayer, ItemStack itemstack, IInventory iinventory) | 作業台で作成したアイテムを取り出したときに呼び出される。 |
void takenFromFurnace(EntityPlayer entityplayer, ItemStack itemstack) | 竈で精錬したアイテムを取り出したときに呼び出される。 |
String toString() | クラスを示す文字列を定義する。 |
MLProp
MLPropはModLoaderに含まれるクラスの一つです。
このクラスをModLoaderが自作Modを読み込んだ際、コンフィグ用ファイルを作成・適応します。
ソースコードの例
package net.minecraft.src; public class mod_hoge extends BaseMod { /* BlockIDを1~255(min,maxで指定)でコンフィグファイルから変更できるようにする) info:ファイルの先頭にヘルプ用コメントを追加 */ @MLProp(info="please assign an ID, hogeBlock", min = 1, max = 255) public static hogeBlockID = 111; @MLProp public static hogeItemID = 5000; public static Block hogeBlock; public static Item hogeItem; public mod_hoge { } public void load { hogeBlock = new Block(hogeBlockID, 1, Material.rock) ModLoader.RegisterBlock(hogeBlock); ModLoader.AddName(hogeBlockID, "Hoge Block"); hogeItem = new Item(hogeItemID).setItemName("hogeItem"); hogeItem.iconIndex = ModLoader.addOverride("/gui/items.png", "/item/hogeitem.png"); ModLoader.AddName(hogeItem, "Hoge Item"); } }
要素の概要
要素名 | 形式 | 説明 |
---|---|---|
info | java.lang.String | コンフィグファイルの先頭に追加のヘルプを書き出します。 |
min | double | 割り当てられる最小値を設定します。 |
max | double | 割り当てられる最大値を設定します。 |
name | java.lang.String | プロパティキーのフィールド名を上書きします。 |
コメントの自動更新を有効化