提供: Minecraft Modding Wiki
(→解説) |
(→ソースコード) |
||
10行目: | 10行目: | ||
<source lang = "java"> | <source lang = "java"> | ||
package com.example.itemgroup; | package com.example.itemgroup; | ||
+ | |||
+ | import net.fabricmc.api.ModInitializer; | ||
+ | import net.fabricmc.fabric.api.client.itemgroup.FabricItemGroupBuilder; | ||
+ | import net.minecraft.item.ItemGroup; | ||
+ | import net.minecraft.item.ItemStack; | ||
+ | import net.minecraft.util.Identifier; | ||
public class SampleMod implements ModInitializer | public class SampleMod implements ModInitializer | ||
26行目: | 32行目: | ||
} | } | ||
</source> | </source> | ||
+ | |||
==作成したクリエイティブタグにアイテムを登録== | ==作成したクリエイティブタグにアイテムを登録== | ||
[[Fabric/アイテム追加]]か[[Fabric/ブロック追加]]で作成したアイテムを登録するには、 | [[Fabric/アイテム追加]]か[[Fabric/ブロック追加]]で作成したアイテムを登録するには、 |
2019年9月14日 (土) 20:31時点における版
この記事は"Fabric API 0.3.2 build 230~"を前提MODとしています。 |
クリエイティブタブの追加
ブロックやアイテムの初期化時やコンストラクタで、既存のクリエイティブタブのどのタブに追加するかを指定するメソッドgroup()を呼び出すことで、追加したアイテムをどのカテゴリにするか決めることができる。しかし、大量のアイテムを追加した場合や、多くのMODを追加した場合、クリエイティブタブ上で探すのは簡単ではない。この状況を打破するために、アイテムグループでクリエイティブタブが拡張でき、任意のタブを追加することができる。
ソースコード
- SampleMod.java
package com.example.itemgroup; import net.fabricmc.api.ModInitializer; import net.fabricmc.fabric.api.client.itemgroup.FabricItemGroupBuilder; import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemStack; import net.minecraft.util.Identifier; public class SampleMod implements ModInitializer { /** * ModID文字列 */ public static final String MOD_ID = "samplemod"; //クリエイティブタグの作成 public static final ItemGroup SAMPLE_GROUP = FabricItemGroupBuilder.build( new Identifier(MOD_ID, "sampletag"), //クリエイティブタグのアイコン () -> new ItemStack(Blocks.COBBLESTONE)); } }
作成したクリエイティブタグにアイテムを登録
Fabric/アイテム追加かFabric/ブロック追加で作成したアイテムを登録するには、
public static final Item SAMPLE_ITEM = new Item(new Item.Settings().group(ItemGroup.MISC)); //省略 Registry.register(Registry.ITEM, new Identifier(MOD_ID, "sample_block"), new BlockItem(SAMPLE_BLOCK, new Item.Settings().group(ItemGroup.MISC)));
を
group(SampleMod.SAMPLE_GROUP));
に変更する必要がある。
解説
() -> new ItemStack(Blocks.COBBLESTONE));
クリエイティブタブ上に表示されるアイコンのIDを指定する。ブロックなら"Blocks.バニラのID"。アイテムなら"Items.バニラのID"である。MODのアイテム・ブロックなら例として"SampleMod.SAMPLE_ITEM"(アイテムを登録しているクラス.アイテムの文字列)である。