目次
概要
MOD固有のクリエイティブタブを追加します。
動作確認
2023年12月26日
- Minecraft 1.19.4
- Forge 45.2.0
解説
ExampleTNTEvents.java
ExampleTNT/src/main/java/com/tntmodders/exampletnt/ExampleTNTEvents.java
package com.tntmodders.exampletnt;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.CreativeModeTabs;
import net.minecraft.world.level.block.Blocks;
import net.minecraftforge.event.CreativeModeTabEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
@Mod.EventBusSubscriber(modid = ExampleTNT.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
public class ExampleTNTEvents {
public static CreativeModeTab TAB_TNT;
@SubscribeEvent
public static void creativeTabsBuildEvent(CreativeModeTabEvent.BuildContents event) {
if (event.getTab() == CreativeModeTabs.TOOLS_AND_UTILITIES) {
event.accept(ExampleTNTItems.SMALL_TNT.get());
} else if (event.getTab() == CreativeModeTabs.REDSTONE_BLOCKS) {
event.accept(ExampleTNTBlocks.LARGE_TNT.get());
}
}
@SubscribeEvent
public static void creativeTabRegisterEvent(CreativeModeTabEvent.Register event) {
TAB_TNT = event.registerCreativeModeTab(new ResourceLocation(ExampleTNT.MOD_ID, "tab_tnt"),
builder -> builder
.icon(() -> ExampleTNTItems.SMALL_TNT.get().getDefaultInstance())
.displayItems((parameters, output) -> {
output.accept(ExampleTNTItems.SMALL_TNT.get());
output.accept(ExampleTNTBlocks.LARGE_TNT.get());
output.accept(Blocks.TNT);
})
.title(Component.translatable("block.minecraft.tnt")));
}
}
CreativeModeTabEvent.Register
を呼ぶことでタブの登録処理ができます。今回はあとから参照の必要がありませんが、必要になったとき用にstaticフィールドとして保持しておくことをおすすめします。
builderから呼ぶメソッドとして以下の処理を行います。
icon
では、タブのアイコンになるアイテムを設定します。今回はsmall_tntをItemStackとして呼び出しアイコンにしています。displayItems
では、creativeTabsBuildEvent
で利用したようにタブに表示するアイテムをacceptすることができます。複数のタブで表示させることもできるので、このチュートリアルではcreativeTabsBuildEvent
で他のタブに表示させたMOD追加アイテムや、バニラのTNTを表示させています。title
では、表示名を設定できます。Component.translatable
で.langファイルに設定した翻訳鍵を渡すことで、各言語に翻訳されて表示されます。今回はバニラのTNTの翻訳鍵を設定しました。
リンク
前:レシピの追加
次:進捗の追加