提供: Minecraft Modding Wiki
19行目: | 19行目: | ||
public static class Eventhandler{ | public static class Eventhandler{ | ||
@SubscribeEvent | @SubscribeEvent | ||
− | public void | + | public void registerBlocks(final RegistryEvent.Register<Block> event) { |
event.getRegistry.register(sample_block); | event.getRegistry.register(sample_block); | ||
} | } | ||
25行目: | 25行目: | ||
@SubscribeEvent | @SubscribeEvent | ||
public void registerItems(final RegistryEvent.Register<Item> event) { | public void registerItems(final RegistryEvent.Register<Item> event) { | ||
− | event.getRegistry.register(new BlockItem(sample_block, new Item.Properties().tab(CreativeModeTab. | + | event.getRegistry.register(new BlockItem(sample_block, new Item.Properties().tab(CreativeModeTab.TAB_BUILDING_BLOCKS)).setRegistryName(sample_block.getRegistryName())); |
} | } | ||
} | } |
2021年12月14日 (火) 09:36時点における最新版
この記事は"Minecraft Forge 1.14-28.0.x~"を前提MODとしています。 |
ここでは、1.17.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(BlockBehaviour.Properties.of(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().tab(CreativeModeTab.TAB_BUILDING_BLOCKS)).setRegistryName(sample_block.getRegistryName())); } } }
解説[編集]
1.13から、@ModにはMOD_IDだけ記述するようになったので注意です。
Block型のコンストラクターを定数に代入します。
コンストラクターの中のBlockBehaviour.Propertiesのofでブロックの色々な設定をします。
いろんな候補が出てくるので、それっぽいのを設定します。
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(ルートテーブル)にありますのでそちらを見てください。