提供: Minecraft Modding Wiki
(一行コメント) |
(解説を追加。) |
||
1行目: | 1行目: | ||
{{前提MOD|reqmod="ModLoader"}} | {{前提MOD|reqmod="ModLoader"}} | ||
− | |||
作成するクラス<br/> | 作成するクラス<br/> | ||
mod_hoge<br/> | mod_hoge<br/> | ||
7行目: | 6行目: | ||
ここは、[[ブロックの追加]]を理解した中級者向けのチュートリアルです。<br /> | ここは、[[ブロックの追加]]を理解した中級者向けのチュートリアルです。<br /> | ||
− | == | + | ==全体の完成形== |
===mod_hogeクラス作成=== | ===mod_hogeクラス作成=== | ||
22行目: | 21行目: | ||
public String fileToOverride; | public String fileToOverride; | ||
public String textureFilePath; | public String textureFilePath; | ||
+ | public static int imageIDTop, imageIDSide ; | ||
public mod_hoge() | public mod_hoge() | ||
140行目: | 140行目: | ||
</source> | </source> | ||
+ | ==ソースの解説== | ||
+ | |||
+ | 基本的な所は[[ブロックの追加]]と変わりませんので、変更するところだけを解説します。<br /> | ||
+ | |||
+ | ===mod_hogeクラス=== | ||
+ | |||
+ | <source lang="java"> | ||
+ | |||
+ | textureFilePathtop = "/block/hogetop.png"; | ||
+ | textureFilePathside = "/block/hogeside.png"; | ||
+ | |||
+ | </source> | ||
+ | |||
+ | ここで、追加するテクスチャの種類を増やしています。<br /> | ||
+ | |||
+ | ===BlockHogeクラス=== | ||
+ | |||
+ | <source lang="java"> | ||
+ | |||
+ | 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; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | </source> | ||
+ | |||
+ | ここが、今回の重要ポイントです。<br /> | ||
+ | |||
+ | <source lang="java"> | ||
+ | |||
+ | getBlockTextureFromSideAndMetadata(int i, int j) | ||
+ | |||
+ | </source> | ||
+ | |||
+ | これで、ブロックのテクスチャを指定しています。 | ||
+ | |||
+ | iの中の数字は、0~5まであり<br /> | ||
+ | 0が上 1が下 2~5が周りのテクスチャを指定しています。 | ||
147行目: | 196行目: | ||
---- | ---- | ||
* imageIDTop,imageIDSideの宣言が抜けてませんか? public static int imageIDSide;あたりがいるかと --[[特別:投稿記録/219.99.11.26|219.99.11.26]] 2012年3月30日 (金) 21:16 (JST) | * imageIDTop,imageIDSideの宣言が抜けてませんか? public static int imageIDSide;あたりがいるかと --[[特別:投稿記録/219.99.11.26|219.99.11.26]] 2012年3月30日 (金) 21:16 (JST) | ||
+ | |||
+ | 解説を追加。 |
2012年3月30日 (金) 22:51時点における版
この記事は"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が周りのテクスチャを指定しています。
- 確かめていませんが、加筆中なのでまだ入れていないだけかと --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)
解説を追加。
コメントの自動更新を有効化