提供: Minecraft Modding Wiki
移動先: 案内検索
(一行コメント)
(一行コメント)
338行目: 338行目:
  
 
<comments />
 
<comments />
 +
----
 +
* またバージョンによって内容が異なるものは、以前の情報を消さずに、新しいバージョン用のページを新規作成して下さい。 --[[利用者:Takanasayo|Takanasayo]] 2013年1月30日 (水) 07:50 (JST)
 
----
 
----
 
* メソッド名などはバージョンによって異なりますので、内容を追加した場合には追加した内容を適用可能なバージョンを必ず記載してください。 --[[利用者:Takanasayo|Takanasayo]] 2013年1月30日 (水) 07:48 (JST)
 
* メソッド名などはバージョンによって異なりますので、内容を追加した場合には追加した内容を適用可能なバージョンを必ず記載してください。 --[[利用者:Takanasayo|Takanasayo]] 2013年1月30日 (水) 07:48 (JST)

2013年1月30日 (水) 07:50時点における版

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 clientChat(String log)クライアント側でチャットのログが流れるたびに呼ばれる
void serverChat(NetServerHandler handler, String log)サーバー側でチャットのログがなれるたびに呼ばれる
clientCustomPayload(NetClientHandler var1, Packet250CustomPayload var2)
serverCustomPayload(NetServerHandler var1, Packet250CustomPayload var2)
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)ワールド上に配置されているブロックを描画するために呼ばれる。
clientConnect(NetClientHandler handler)サーバーに接続するときに呼ばれる
clientDisconnect(NetClientHandler handler)サーバーから切断するときに呼ばれる
void takenFromCrafting(EntityPlayer entityplayer, ItemStack itemstack, IInventory iinventory)作業台で作成したアイテムを取り出したときに呼び出される。
void takenFromFurnace(EntityPlayer entityplayer, ItemStack itemstack)竈で精錬したアイテムを取り出したときに呼び出される。
String toString()クラスを示す文字列を定義する。
GuiContainer getContainerGUI(EntityClientPlayerMP var1, int var2, int var3, int var4, int var5)
Entity spawnEntity(int id, World world, double x, double y, double z)Entityがスポーンするときに呼ばれる
Packet23VehicleSpawn getSpawnPacket(Entity var1, int var2)

MLProp

MLPropはModLoaderに含まれるクラスの一つです。
このクラスをModLoaderが自作Modを読み込んだ際、コンフィグ用ファイルを作成・適応します。

コンフィグとして設定させたいフィールドの宣言に、アノテーションとして付加します。

使用例

@MLProp(info = "default = 250", min = 0, max = 255)
public static int blockID = 250;

要素の概要

全ての要素は省略可能。

要素名形式説明
infojava.lang.Stringコンフィグファイルの先頭に追加のヘルプを書き出します。
mindouble割り当てられる最小値を設定します。
maxdouble割り当てられる最大値を設定します。
namejava.lang.Stringプロパティキーのフィールド名を上書きします。

ModLoader

各種データの登録を簡単にできるようにするクラス。
このクラスで、MODを読み込んでいます。

メソッド一覧

戻り値が書いてないものは、voidです。

メソッド名説明
addAchievementDesc(Achievement achievement, String name, String info)実績を登録するときに使う
addEntityTracker(BaseMod var0, Class var1, int var2, int var3, int var4, boolean var5)EntityTrackerを登録するときに使う
int addArmor(String name)防具を追加するときに使う
addBiome(BiomeGenBase biomebase)地上にバイオームを追加するときに使う
addCommand(ICommand var0)コマンドを追加するときに使う
addDispenserBehavior(Item var0, IBehaviorDispenseItem var1)ディスペンサーで特殊な発射を登録するときに使う
addLocalization(String var0, String var1)各種表示名の登録に使う
addLocalization(String var0, String var1, String var2)各種表示名を言語で変えて登録するときに使う
addTrade(int var0, TradeEntry var1)村人との取引を追加するときに使う
addName(Object var0, String var1)アイテム/ブロック/アイテムスタックの表示名の登録に使う
addName(Object var0, String var1)アイテム/ブロック/アイテムスタックの表示名を言語で変えて登録するときに使う
int addOverride(String var0, String var1)新しいテクスチャを使用するための画像をオーバーライドする
addOverride(String var0, String var1, int var2)指定した位置に画像をオーバーライドする
addRecipe(ItemStack var0, Object ... var1)新しくレシピを追加する
addShapelessRecipe(ItemStack var0, Object ... var1)新しく不定形レシピを追加する
addSmelting(int var0, ItemStack var1, float var2)新しく精錬レシピを追加する
addSpawn(Class var0, int var1, int var2, int var3, EnumCreatureType var4)新しくEntityをスポーンさせたい時に使う
addSpawn(Class var0, int var1, int var2, int var3, EnumCreatureType var4, BiomeGenBase[] var5)バイオームを指定してEntityをスポーンさせたいときに使う
addSpawn(String var0, int var1, int var2, int var3, EnumCreatureType var4)addSpawnでEntityを名前で指定したいときに使う
addSpawn(String var0, int var1, int var2, int var3, EnumCreatureType var4, BiomeGenBase[] var5)addSpawnでEntityを名前で指定したいときに使う
Minecraft getMinecraftInstance()Minecraftのインスタンスを取得する
Object getPrivateValue(Class var0, Object var1, int var2)指定クラスの指定したフィールド名を取得する(番号)
Object getPrivateValue(Class var0, Object var1, String var2)指定クラスの指定したフィールド名を取得する(文字列)
int getUniqueBlockModelID(BaseMod var0, boolean var1)空きのブロックモデルIDを取得する
int getUniqueEntityId()空きのEntityIDを取得する
int getUniqueItemSpriteIndex()空きのスプライトIDを取得する
int getUniqueSpriteIndex(String var0)指定した画像の空きIDを取得する
int getUniqueTerrainSpriteIndex()空きのterrainIDを取得する
openGUI(EntityPlayer var0, GuiScreen var1)指定したGUIを開く
registerBlock(Block var0)新しくブロックを登録する
registerBlock(Block var0, Class var1)新しくブロックをItemBlockとともに登録する
registerEntityID(Class var0, String var1, int var2)新しくEntityを登録する
registerEntityID(Class var0, String var1, int var2, int var3, int var4)新しくEntityを登録する。卵も追加する
registerKey(BaseMod var0, KeyBinding var1, boolean var2)新しくキーバインドを登録する
registerPacketChannel(BaseMod var0, String var1)新しいチャンネルを追加する
registerTileEntity(Class var0, String var1)新しくTileEntityを登録する
registerTileEntity(Class var0, String var1, TileEntitySpecialRenderer var2)新しくTileEntityとTileEntitySpecialRenderを登録する
removeBiome(BiomeGenBase var0)登録したバイオームを削除する
removeSpawn(Class var0, EnumCreatureType var1)登録したaddSpawnを削除する
removeSpawn(Class var0, EnumCreatureType var1, BiomeGenBase[] var2)登録したaddSpawnをバイオーム指定して削除する
removeSpawn(String var0, EnumCreatureType var1)登録したaddSpawnを削除する(文字列)
removeSpawn(String var0, EnumCreatureType var1, BiomeGenBase[] var2)登録したaddSpawnをバイオーム指定して削除する(文字列)
renderInvBlock(RenderBlocks var0, Block var1, int var2, int var3)インベントリでブロックを特殊Renderすると気に使う
renderWorldBlock(RenderBlocks var0, IBlockAccess var1, int var2, int var3, int var4, Block var5, int var6)ワールドでブロックを特殊Renderすると気に使う
setInGameHook(BaseMod var0, boolean var1, boolean var2)指定したMODのonTickGameを有効にする
setInGUIHook(BaseMod var0, boolean var1, boolean var2)指定したMODのonTickGUIを有効にする
setPrivateValue(Class var0, Object var1, int var2, Object var3)指定クラスの指定したフィールド名に代入する(番号)
setPrivateValue(Class var0, Object var1, String var2, Object var3)指定クラスの指定したフィールド名に代入する(文字列)


自分のコメントを追加
Minecraft Modding Wikiはすべてのコメントを歓迎します。匿名で投稿したくない場合は、アカウント作成またはログインしてください。無料です。


  • またバージョンによって内容が異なるものは、以前の情報を消さずに、新しいバージョン用のページを新規作成して下さい。 --Takanasayo 2013年1月30日 (水) 07:50 (JST)

  • メソッド名などはバージョンによって異なりますので、内容を追加した場合には追加した内容を適用可能なバージョンを必ず記載してください。 --Takanasayo 2013年1月30日 (水) 07:48 (JST)