その他の解説

ForgeDirection の ROTATION_MATRIX

ForgeDirection クラスには ROTATION_MATRIX 配列が定義されている。

これは方角の回転に用いられるのだが、内容は int で定義されているうえに、解説もなく分かりにくい。

そこで簡単にだが解説を用意した。

回転系は難しいので、あくまでも参考にしていただきたい。

ForgeDirection クラスのコード抜粋

package net.minecraftforge.common.util;


public enum ForgeDirection

{

// 考えられるすべての回転軸に対する左手の法則の回転行列

public static final int[][] ROTATION_MATRIX = {

{0, 1, 4, 5, 3, 2, 6}, // Y軸の+方向を向いて左に90°回転します。

{0, 1, 5, 4, 2, 3, 6}, // Y軸の+方向を向いて右に90°回転します。

{5, 4, 2, 3, 0, 1, 6}, // Z軸の+方向を向いて左に90°回転します。

{4, 5, 2, 3, 1, 0, 6}, // Z軸の+方向を向いて右に90°回転します。

{2, 3, 1, 0, 4, 5, 6}, // X軸の+方向を向いて左に90°回転します。

{3, 2, 0, 1, 4, 5, 6}, // X軸の+方向を向いて右に90°回転します。

{0, 1, 2, 3, 4, 5, 6},

};

}

筆者 : Megria 2023/7/22 更新

デフォルトの IIcon クラス

Block や Item には registerBlockIcons(IIconRegister register) メソッドが定義されている。

ほとんどのMOD製作者はこのメソッドで IIcon を取得していると思うが、戻り値はインターフェイスである。

デフォルトのクラスは net.minecraft.client.renderer.texture.TextureAtlasSprite で定義されている。

また、反転した IIcon を返す net.minecraft.client.renderer.IconFlipped クラスがある。

ちなみに上記のメソッドで呼ばれる IIconRegister のクラスは net.minecraft.client.renderer.texture.TextureMap である。

筆者 : Megria 2023/7/25 更新

リソースパックを読み込むクラス

Minecraft にはリソースパックという、 Block や Item などのテクスチャーを簡単に変更できるようにする機能がある。

基本的に設定などの GUI で目にするリソースパックは、ユーザーが任意で追加するリソースパックだが、内部データには当然デフォルトのリソースパックも存在する。

Minecraft 公式のリソースパックは net.minecraft.client.resources.DefaultResourcePack クラスで読み込み、Mod のリソースパックはデフォルトでは cpw.mods.fml.client.FMLFolderResourcePack クラスまたは cpw.mods.fml.client.FMLFileResourcePack クラスで読み込んでいる。(いずれも net.minecraft.client.resources.IResourcePack インターフェイスを実装している)

また、FMLFolderResourcePack は net.minecraft.client.resources.FolderResourcePack クラスFMLFileResourcePack は net.minecraft.client.resources.FileResourcePack クラスを継承している

リソースパックを動的に読み込む場合はこれらのクラスを参考にするとよい。

また、これらのクラスは private List<net.minecraft.client.resources.IResourcePack> net.minecraft.client.Minecraft#defaultResourcePacks に格納されている。

筆者 : Megria 2024/1/29 更新