提供: Minecraft Modding Wiki
3行目: | 3行目: | ||
{{チュートリアルカテゴリー|difficulty=0|type=Item}} | {{チュートリアルカテゴリー|difficulty=0|type=Item}} | ||
− | ここでは、1.14. | + | ここでは、1.14.x~1.16.xのブロックの追加の方法を解説します。 |
+ | |||
+ | 1.16.xの場合は「new Block.Properties()」のところを「new AbstractBlock.Properties()」にしてください。 | ||
==ソース== | ==ソース== | ||
12行目: | 14行目: | ||
public class SampleMod { | public class SampleMod { | ||
public static final String MOD_ID = "sample"; | public static final String MOD_ID = "sample"; | ||
− | + | //1.16.x -> new Block(AbstractBlock.Properties.create(Material.ROCK) | |
− | public static final Block sample_block = new Block( | + | 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")); | ||
36行目: | 38行目: | ||
Block型のコンストラクターを定数に代入します。 | Block型のコンストラクターを定数に代入します。 | ||
− | コンストラクターの中のBlock. | + | コンストラクターの中の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). | + | また、このままではブロックを壊しても何もドロップしないので、LootTableをdata.(モッドid).loot_tables.block.(ブロック名).jsonに配置します。 |
ルートテーブルの設定はMinecraft Wiki([//minecraft.fandom.com/ja/wiki/ルートテーブル ルートテーブル])にありますのでそちらを見てください。 | ルートテーブルの設定はMinecraft Wiki([//minecraft.fandom.com/ja/wiki/ルートテーブル ルートテーブル])にありますのでそちらを見てください。 |
2021年12月14日 (火) 09:23時点における版
この記事は"Minecraft Forge 1.14-28.0.x~"を前提MODとしています。 |
ここでは、1.14.x~1.16.xのブロックの追加の方法を解説します。
1.16.xの場合は「new Block.Properties()」のところを「new AbstractBlock.Properties()」にしてください。
ソース
SampleMod.java
/*パッケージ・インポートは省略*/ @Mod(SampleMod.MOD_ID) public class SampleMod { public static final String MOD_ID = "sample"; //1.16.x -> new Block(AbstractBlock.Properties.create(Material.ROCK) 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 registerItems(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(ルートテーブル)にありますのでそちらを見てください。