提供: Minecraft Modding Wiki
移動先: 案内検索
 
(同じ利用者による、間の4版が非表示)
3行目: 3行目:
 
{{チュートリアルカテゴリー|difficulty=0|type=Item}}
 
{{チュートリアルカテゴリー|difficulty=0|type=Item}}
  
ここでは、1.14.x以降のブロックの追加の方法を解説します。
+
ここでは、1.14.x~1.15.xのブロックの追加の方法を解説します。
 
 
1.17以降で使用する場合は、 「ItemGroup」の部分を「CreativeModeTab」に、「.group」の部分を「.tab」変更してください。
 
 
 
また、Block.Propertiesは、バージョンによって違うので、Block型のコンストラクタを生成している部分を見てください。
 
  
 
==ソース==
 
==ソース==
17行目: 13行目:
 
     public static final String MOD_ID = "sample";
 
     public static final String MOD_ID = "sample";
  
     public static final Block sample_block = new Block(new Block.Properties()
+
     public static final Block sample_block = new Block(Block.Properties.create(Material.ROCK))
 
         .setRegistryName(new ResourceRocation(SampleMod.MOD_ID, "sample_item"));
 
         .setRegistryName(new ResourceRocation(SampleMod.MOD_ID, "sample_item"));
  
23行目: 19行目:
 
     public static class Eventhandler{
 
     public static class Eventhandler{
 
         @SubscribeEvent
 
         @SubscribeEvent
         public void registerItems(final RegistryEvent.Register<Block> event) {
+
         public void registerBlocks(final RegistryEvent.Register<Block> event) {
 
             event.getRegistry.register(sample_block);
 
             event.getRegistry.register(sample_block);
 
         }
 
         }
40行目: 36行目:
 
Block型のコンストラクターを定数に代入します。
 
Block型のコンストラクターを定数に代入します。
  
コンストラクターの中のBlock.Propertiesのコンストラクターでアイテムの色々な設定をします。
+
コンストラクターの中のBlock.Propertiesのcreateでブロックの色々な設定をします。
 +
 
 +
いろんな候補が出てくるので、それっぽいのを設定します。
  
 
Block型のコンストラクターで.setRegistryName(new ResourceRocation(SampleMod.MOD_ID, ブロック名))は絶対に要ります。
 
Block型のコンストラクターで.setRegistryName(new ResourceRocation(SampleMod.MOD_ID, ブロック名))は絶対に要ります。
  
ブロックステートモデルの設置フォルダはassets.(モッドid).blockstate.(ブロック名)になります。
+
ブロックステートモデルの設置フォルダはassets.(モッドid).blockstate.(ブロック名).jsonになります。
  
ブロックアイテムテクスチャモデルの設置フォルダはassets.(モッドid).models.item.(ブロック名)になります。
+
ブロックアイテムテクスチャモデルの設置フォルダはassets.(モッドid).models.item.(ブロック名).jsonになります。
  
 
テクスチャの設定はMinecraft Wiki([//minecraft.fandom.com/ja/wiki/モデル モデル])にありますのでそちらを見てください。
 
テクスチャの設定はMinecraft Wiki([//minecraft.fandom.com/ja/wiki/モデル モデル])にありますのでそちらを見てください。
  
また、このままではブロックを壊しても何もドロップしないので、LootTableをdata.(モッドid).loot_table.block.(ブロック名)に配置します。
+
また、このままではブロックを壊しても何もドロップしないので、LootTableをdata.(モッドid).loot_tables.block.(ブロック名).jsonに配置します。
  
 
ルートテーブルの設定はMinecraft Wiki([//minecraft.fandom.com/ja/wiki/ルートテーブル ルートテーブル])にありますのでそちらを見てください。
 
ルートテーブルの設定はMinecraft Wiki([//minecraft.fandom.com/ja/wiki/ルートテーブル ルートテーブル])にありますのでそちらを見てください。

2022年1月12日 (水) 15:01時点における最新版

この記事は"Minecraft Forge 1.14-28.0.x~"を前提MODとしています。

Wood pickaxe.png
初心者向けのチュートリアルです。
C item.png
Itemに関係のあるチュートリアルです。


ここでは、1.14.x~1.15.xのブロックの追加の方法を解説します。

ソース[編集]

SampleMod.java

/*パッケージ・インポートは省略*/
@Mod(SampleMod.MOD_ID)
public class SampleMod {
    public static final String MOD_ID = "sample";

    public static final Block sample_block = new Block(Block.Properties.create(Material.ROCK))
        .setRegistryName(new ResourceRocation(SampleMod.MOD_ID, "sample_item"));

    @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
    public static class Eventhandler{
        @SubscribeEvent
        public void registerBlocks(final RegistryEvent.Register<Block> event) {
            event.getRegistry.register(sample_block);
        }

        @SubscribeEvent
        public void registerItems(final RegistryEvent.Register<Item> event) {
            event.getRegistry.register(new BlockItem(sample_block, new Item.Properties().group(ItemGroup.BUILDING_BLOCKS)).setRegistryName(sample_block.getRegistryName()));
        }
    }
}

解説[編集]

1.13から、@ModにはMOD_IDだけ記述するようになったので注意です。

Block型のコンストラクターを定数に代入します。

コンストラクターの中のBlock.Propertiesのcreateでブロックの色々な設定をします。

いろんな候補が出てくるので、それっぽいのを設定します。

Block型のコンストラクターで.setRegistryName(new ResourceRocation(SampleMod.MOD_ID, ブロック名))は絶対に要ります。

ブロックステートモデルの設置フォルダはassets.(モッドid).blockstate.(ブロック名).jsonになります。

ブロックアイテムテクスチャモデルの設置フォルダはassets.(モッドid).models.item.(ブロック名).jsonになります。

テクスチャの設定はMinecraft Wiki(モデル)にありますのでそちらを見てください。

また、このままではブロックを壊しても何もドロップしないので、LootTableをdata.(モッドid).loot_tables.block.(ブロック名).jsonに配置します。

ルートテーブルの設定はMinecraft Wiki(ルートテーブル)にありますのでそちらを見てください。