提供: Minecraft Modding Wiki
この記事は"ModLoader"を前提MODとしています。 |
作成するクラス
mod_hoge
BlockHoge
ここは、ブロックの追加を理解した中級者向けのチュートリアルです。
全体の完成形[編集]
mod_hogeクラス作成[編集]
mod_***クラスを作成します。
mod_hogeソース
package net.minecraft.src; public class mod_hoge extends BaseMod{ public static Block oreHoge; public int blockID; public String fileToOverride; public String textureFilePath; public static int imageIDTop, imageIDSide ; public mod_hoge() { } public void load() { blockID = 120; fileToOverride = "/terrain.png"; textureFilePathtop = "/block/hogetop.png"; textureFilePathside = "/block/hogeside.png"; /* BlockHogeクラスから新規BlockのIDとテクスチャファイルを指定 blockID:追加するBlockのIDを指定 ここでは120として定義 fileToOverride:GUIインベントリを使用しない場合は"/terrain.png" GUIインベントリを使用する場合は"/gui/items.png" textureFilePath:テクスチャの参照ファイルパスを指定 */ oreHoge = new BlockHoge(blockID, 0); imageIDTop = ModLoader.addOverride(fileToOverride, textureFilePathtop); imageIDSide = ModLoader.addOverride(fileToOverride, textureFilePathside); /* setHardness:対象Blockの硬さをFloatで指定 デフォルトは3F */ oreHoge.setHardness(3F); /* setBlockName:対象Blockの名前を指定 */ oreHoge.setBlockName("oreHoge"); /* setResistance:対象Blockの爆破耐性をFloatで指定 デフォルトは5F */ oreHoge.setResistance(5F); /* setStepSound:対象Blockの上を歩いた際の音を指定 下記では石の上を歩いた場合と同じ音を参照 */ oreHoge.setStepSound(Block.soundStoneFootstep); /* setLightValue:対象ブロックを発光させる場合、明るさをFloatで指定 */ oreHoge.setLightValue(1.0F); /* ModLoader.registerBlock:指定したBlockデータを登録します。 */ ModLoader.registerBlock(oreHoge); /* ModLOader.AddName:Minecraftで表示させるBlockの名前を指定 */ ModLoader.AddName(oreHoge, "Hoge Ore"); } public String getVersion() { return "1.0.0"; } }
BlockHogeクラス作成[編集]
BlockHogeクラスを作成します。 Blockクラスを継承して作成します。
package net.minecraft.src; import java.util.Random; public class BlockHoge extends Block { /* 親クラスを初期化する必要があるため定義 */ public BlockHoge(int i, int j) { /* Material.rock:石と同じ処理をさせる定義をしているだけです。 */ super(i, j, Material.rock); } /* ここで複数のテクスチャを指定しています。 */ public int getBlockTextureFromSideAndMetadata(int i, int j) { { if(i == 1) { return mod_hoge.imageIDTop; } if(i == 0) { return mod_hoge.imageIDTop; }else { return mod_hoge.imageIDSide; } } } /* ブロックが破壊された時にドロップするものを設定 returnでthis.blockIDなので同じ物をドロップさせています */ public int idDropped(int i, int j,Random random) { return this.blockID; } /* 上記破壊時のドロップアイテムの個数を指定 returnで1個ドロップするように指定しています。 */ public int quantityDropped(Random random) { return 1; } }
ソースの解説[編集]
基本的な所はブロックの追加と変わりませんので、変更するところだけを解説します。
mod_hogeクラス[編集]
textureFilePathtop = "/block/hogetop.png"; textureFilePathside = "/block/hogeside.png";
ここで、追加するテクスチャの種類を増やしています。
BlockHogeクラス[編集]
public int getBlockTextureFromSideAndMetadata(int i, int j) { { if(i == 1) { return mod_hoge.imageIDTop; } if(i == 0) { return mod_hoge.imageIDTop; }else { return mod_hoge.imageIDSide; } } }
ここが、今回の重要ポイントです。
getBlockTextureFromSideAndMetadata(int i, int j)
これで、ブロックのテクスチャを指定しています。
iの中の数字は、0~5まであり
0が上 1が下 2~5が周りのテクスチャを指定しています。
- 219.99.11.26さん> 書き忘れていましたので修正しておきました。 --Shift 2012年3月30日 (金) 22:59 (JST)
- 確かめていませんが、加筆中なのでまだ入れていないだけかと --59.134.55.116 2012年3月30日 (金) 22:02 (JST)
- imageIDTop,imageIDSideの宣言が抜けてませんか? public static int imageIDSide;あたりがいるかと --219.99.11.26 2012年3月30日 (金) 21:16 (JST)
コメントの自動更新を有効化