提供: Minecraft Modding Wiki
2012年12月4日 (火) 22:51時点におけるTakanasayo (トーク | 投稿記録)による版 (新規)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先: 案内検索

この記事は"MinecraftForge3.3.7以降"を前提MODとしています。

解説

このチュートリアルは、各種デバッグ用のテキストを、チャット欄に表示する方法を解説します。


Minecraft型の引数をもつメソッドの場合

例)BaseMod.onTickInGame メソッド
public boolean onTickInGame(float f, Minecraft minecraft)
{
}

例の onTickInGame のように引数にMinecraft型が含まれているメソッドの場合は、Minecraft型の引数を参照してテキストを表示できます。

minecraft.ingameGUI.addChatMessage("表示したいテキスト");


Minecraft型の引数を持たないメソッドの場合

Minecraft型の引数を持たないメソッド内でテキストを表示するには、先にMinecraft型のインスタンスを取得する必要があります。

必要ファイルのインポート
import net.minecraft.client.Minecraft;
import cpw.mods.fml.common.FMLCommonHandler;
クラス宣言の上部に上記の文を追加し、Minecraft.class と FMLCommonHandler.class をインポートします。


インスタンスの取得
Minecraft minecraft = (Minecraft)FMLCommonHandler.instance().getMinecraftInstance();
メッセージを表示したいメソッドで、Minecraft型のメンバ minecraft を宣言し、Minecraft型にキャストしたインスタンス取得します。


テキストの表示
minecraft.ingameGUI.addChatMessage("表示したいテキスト");
あとは引数を持つメソッドと同じように、minecraft のメソッドからテキストを表示できます。


デバッグ用ライブラリ

デバッグ作業を楽にするライブラリを置いておきます。


ソース全文

DebugLibrary.java
package net.minecraft.src;

import net.minecraft.client.Minecraft;
import cpw.mods.fml.common.FMLCommonHandler;

public class DebugLibrary
{
	private static Minecraft minecraft;

	public DebugLibrary()
	{
		minecraft = (Minecraft)FMLCommonHandler.instance().getMinecraftInstance();
	}

	public static Minecraft getMinecraft()
	{
		return minecraft;
	}

	public static void addChatMessage(String text)
	{
		minecraft.ingameGUI.addChatMessage(text);
	}
}

使い方

開発中のMODと同じフォルダに置き、

DebugLibrary lib = new DebugLibrary();
で、クラスを生成します。
lib.addChatMessage("表示したいテキスト");
で、テキストを表示できます。
lib.getMinecraft();
で、Minecraftを取得できます。
メソッドの引数としてワールドなどが存在しない場合に、アクセスするために使えます。


デバッグ用の文を書く際のTips

通常、プログラムを組む際は、構造ごとに適切にインデントしていると思います。
しかし、デバッグ用の文までインデントしてしまうと、デバッグ終了時に見落としやすくなります。
そのため、デバッグ用の文だけは、あえてインデントせずに行頭から書くようにすると、見落としが少なくなります。