このページはModLoaderを使っていることを前提に書かれています。 作成するソース mod_hoge.java BlockHoge.java
また、データとしてBlockを追加するだけなので機能部分は省いています。
全体の完成形
mod_hoge.java
package net.minecraft.src; public class mod_hoge extends BaseMod{ public static Block oreHoge; public int blockID; public String fileToOverride; public String textureFilePath; public mod_hoge() { } public void load() { blockID = 120; fileToOverride = "/terrain.png"; textureFilePath = "block/hoge.png"; oreHoge = new BlockHoge(blockID, ModLoader.addOverride(fileToOverride, textureFilePath)); oreHoge.setHardness(3F); oreHoge.setBlockName("oreHoge"); oreHoge.setResistance(5F); oreHoge.setStepSound(Block.soundStoneFootstep); oreHoge.setLightValue(1.0F); ModLoader.RegisterBlock(oreHoge); ModLoader.AddName(oreHoge, "Hoge Ore"); } public String getVersion() { return "1.0.0"; } }
BlockHoge.java
package net.minecraft.src; import java.util.Random; import net.minecraft.src.forge.*; public class BlockHoge extends Block { public BlockHoge(int i, int j) { super(i, j, Material.rock); } }
mod_hoge
各項目部分を説明します。
blockID = 120; fileToOverride = "/terrain.png"; textureFilePath = "/block/hoge.png"; oreHoge = new BlockHoge(blockID, ModLoader.addOverride(fileToOverride, textureFilePath));
BlockHogeに対してBlockIDとテクスチャファイルの参照先を指定しています。
ModLoader.addOverride(fileToOverride,textureFilePath)は fileToOverride:GUIインベントリを使用しない場合は"/terrain.png" GUIインベントリを使用する場合は"/gui/items.png"と覚えておけばいいと思います。 textureFilePath:テクスチャの参照ファイルのパスを指定する。
oreHoge.setHardness(3F); oreHoge.setBlockName("oreHoge"); oreHoge.setResistance(5F); oreHoge.setStepSound(Block.soundStoneFootstep); oreHoge.setLightValue(1.0F); ModLoader.RegisterBlock(oreHoge); ModLoader.AddName(oreHoge, "Hoge Ore");
setHardness(Float):対象Blockの硬さをFloatで指定しています。デフォルトは3F setBlockName(String):Blockの名前を指定 setResistance(Float):Blockの爆破耐性を指定指定しています。デフォルトは5F setStepSound(stepsound):Blockの上を歩いた際の音を指定しています。上記例では石の上を歩いた時と同じ音を出します。 setLightValue(Float):対象ブロックを発光させる場合明るさを指定します。 ModLoader.RegisterBlock(Block):設定したBlock(例ではoreHoge)をBlockとして登録します。 ModLoader.AddName(Block, String);Minecraft内で表示させるBlockの名前をStringで指定します。
public class BlockHoge extends Block { public BlockHoge(int i, int j) { super(i, j, Material.rock); } }
執筆中・・・