提供: Minecraft Modding Wiki
Nanatuboshi (トーク | 投稿記録) 細 (テクスチャ指定について) |
(不要な処理はなかったけど、MODIDの持ち方を変えた。) |
||
(6人の利用者による、間の8版が非表示) | |||
1行目: | 1行目: | ||
{{前提MOD|reqmod="Minecraft Forge Universal 9.10.0.xxx~"}} | {{前提MOD|reqmod="Minecraft Forge Universal 9.10.0.xxx~"}} | ||
− | + | {{チュートリアル難易度|difficulty=0|clear=none}} | |
+ | {{チュートリアルカテゴリー|difficulty=0|type=Block}} | ||
+ | <p>ワールド上に設置できる簡単なブロックの追加方法</p> | ||
==ブロックの追加== | ==ブロックの追加== | ||
− | + | 簡単な無機能ブロックの追加 | |
− | |||
===ソースコード=== | ===ソースコード=== | ||
*SampleBlockCore.java | *SampleBlockCore.java | ||
18行目: | 19行目: | ||
import cpw.mods.fml.common.registry.LanguageRegistry; | import cpw.mods.fml.common.registry.LanguageRegistry; | ||
− | @Mod(modid= | + | @Mod(modid=SampleBlockCore.MOD_ID, name="BlockSampleMod", version="1.0") |
public class SampleBlockCore | public class SampleBlockCore | ||
{ | { | ||
+ | public static final String MOD_ID = "BlockSampleMod"; | ||
public static Block blockSample; | public static Block blockSample; | ||
public static int blockSampleID = 4087; | public static int blockSampleID = 4087; | ||
62行目: | 64行目: | ||
this.setCreativeTab(CreativeTabs.tabBlock);//クリエイティブタブの選択 | this.setCreativeTab(CreativeTabs.tabBlock);//クリエイティブタブの選択 | ||
this.setUnlocalizedName("blockSample"); //システム名の設定 | this.setUnlocalizedName("blockSample"); //システム名の設定 | ||
− | this. | + | this.setTextureName("samplemod:block_sample"); //ブロックのテクスチャの指定 |
//いらないものは消してください | //いらないものは消してください | ||
this.setHardness(1.5F); //硬さ | this.setHardness(1.5F); //硬さ | ||
119行目: | 121行目: | ||
</source> | </source> | ||
blockSampleの変数にBlockSampleのインスタンスを代入。<br> | blockSampleの変数にBlockSampleのインスタンスを代入。<br> | ||
− | + | 一つ目の引数は、ブロックID、二つ目はそのブロックのMaterial。 | |
+ | Materialとはブロックの性質として、可燃性であるか、自分自身をドロップするか、ピストンなどで動かすことができるか、マップ上での色、透明(例:葉)か、地面につもる(例:雪)かをまとめて定義したもの。 | ||
+ | 既にMaterial.javaに定義されているものと同じ性質で良ければ、そのまま使える。 | ||
+ | ここでは上記の性質について石ブロックと同じものを使うので、Material.rockをそのまま使っている。 | ||
===BlockSample.java=== | ===BlockSample.java=== | ||
126行目: | 131行目: | ||
this.setCreativeTab(CreativeTabs.tabBlock);//クリエイティブタブの選択 | this.setCreativeTab(CreativeTabs.tabBlock);//クリエイティブタブの選択 | ||
this.setUnlocalizedName("blockSample"); //システム名の設定 | this.setUnlocalizedName("blockSample"); //システム名の設定 | ||
− | this. | + | this.setTextureName("samplemod:block_sample"); //ブロックのテクスチャの指定(<ドメイン名>:<登録名>) |
//いらないものは消してください | //いらないものは消してください | ||
this.setHardness(1.5F); //硬さ | this.setHardness(1.5F); //硬さ |
2015年12月11日 (金) 22:53時点における最新版
この記事は"Minecraft Forge Universal 9.10.0.xxx~"を前提MODとしています。 |
ワールド上に設置できる簡単なブロックの追加方法
ブロックの追加[編集]
簡単な無機能ブロックの追加
ソースコード[編集]
- SampleBlockCore.java
package mods.blocksample; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; @Mod(modid=SampleBlockCore.MOD_ID, name="BlockSampleMod", version="1.0") public class SampleBlockCore { public static final String MOD_ID = "BlockSampleMod"; public static Block blockSample; public static int blockSampleID = 4087; @EventHandler public void init(FMLInitializationEvent event) { //表示名の登録 LanguageRegistry.addName(blockSample, "Sample Block"); LanguageRegistry.instance().addNameForObject(blockSample, "ja_JP", "サンプル ブロック"); } @EventHandler public void preInit(FMLPreInitializationEvent event) { //ブロックの登録 blockSample = new BlockSample(blockSampleID, Material.rock); GameRegistry.registerBlock(blockSample, "blockSample"); } }
- BlockSample
package mods.blocksample; import java.util.Random; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.world.World; public class BlockSample extends Block { public BlockSample(int par1, Material par2Material) { super(par1, par2Material); this.setCreativeTab(CreativeTabs.tabBlock);//クリエイティブタブの選択 this.setUnlocalizedName("blockSample"); //システム名の設定 this.setTextureName("samplemod:block_sample"); //ブロックのテクスチャの指定 //いらないものは消してください this.setHardness(1.5F); //硬さ this.setResistance(1.0F); //爆破耐性 this.setStepSound(Block.soundStoneFootstep); //ブロックの音 this.setLightValue(1.0F); //明るさ 1.0F = 15 } /* * 以下おまけ * 特に機能がなければ消してしまってください */ @Override public int idDropped(int metadata, Random rand, int fortune) { //ブロックを壊した時にドロップするもの return this.blockID; } @Override public int quantityDropped(Random rand) { //ブロックを壊した時にドロップする量 return 1; } @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float disX, float disY, float disZ) { //ブロックが右クリックされた時 return false; } }
解説[編集]
SampleBlockCore.java[編集]
public static Block blockSample; public static int blockSampleID = 4087;
追加するブロックを保持しておく変数と、ブロックのIDを保持しておく変数を宣言
LanguageRegistry.addName(blockSample, "Sample Block"); LanguageRegistry.instance().addNameForObject(blockSample, "ja_JP", "サンプル ブロック");
ゲーム中に表示される名前の登録。
2つめの引数に"ja_JP"を指定することで日本語名称の登録
blockSample = new BlockSample(blockSampleID, Material.rock); GameRegistry.registerBlock(blockSample, "blockSample");
blockSampleの変数にBlockSampleのインスタンスを代入。
一つ目の引数は、ブロックID、二つ目はそのブロックのMaterial。
Materialとはブロックの性質として、可燃性であるか、自分自身をドロップするか、ピストンなどで動かすことができるか、マップ上での色、透明(例:葉)か、地面につもる(例:雪)かをまとめて定義したもの。
既にMaterial.javaに定義されているものと同じ性質で良ければ、そのまま使える。
ここでは上記の性質について石ブロックと同じものを使うので、Material.rockをそのまま使っている。
BlockSample.java[編集]
super(par1, par2Material); this.setCreativeTab(CreativeTabs.tabBlock);//クリエイティブタブの選択 this.setUnlocalizedName("blockSample"); //システム名の設定 this.setTextureName("samplemod:block_sample"); //ブロックのテクスチャの指定(<ドメイン名>:<登録名>) //いらないものは消してください this.setHardness(1.5F); //硬さ this.setResistance(1.0F); //爆破耐性 this.setStepSound(Block.soundStoneFootstep); //ブロックの音 this.setLightValue(1.0F); //明るさ 1.0F = 15
システム名は登録しないと、表示名が登録できません。
ブロックのテクスチャは、"src/minecraft/assets/ドメイン名/textures/blocks/登録名"においてください。
今回:"src/minecraft/assets/samplemod/textures/blocks/block_sample.png"
ドメイン名は全て小文字にしてください。
明るさは1.0Fでレベル15の光レベルです。