diff --git a/src/main/java/de/ellpeck/prettypipes/Registry.java b/src/main/java/de/ellpeck/prettypipes/Registry.java index 533ec6e..5d18495 100644 --- a/src/main/java/de/ellpeck/prettypipes/Registry.java +++ b/src/main/java/de/ellpeck/prettypipes/Registry.java @@ -50,12 +50,16 @@ import de.ellpeck.prettypipes.terminal.containers.ItemTerminalGui; import net.minecraft.client.gui.screens.MenuScreens; import net.minecraft.client.renderer.blockentity.BlockEntityRenderers; import net.minecraft.client.renderer.entity.EntityRenderers; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.MobCategory; import net.minecraft.world.inventory.MenuType; import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraftforge.common.capabilities.Capability; @@ -70,20 +74,13 @@ import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.RegisterEvent; +import java.util.Comparator; import java.util.Locale; import java.util.function.BiFunction; @Mod.EventBusSubscriber(bus = Bus.MOD) public final class Registry { - // TODO creative tab bleh -/* public static final CreativeModeTab TAB = new CreativeModeTab(PrettyPipes.ID) { - @Override - public ItemStack makeIcon() { - return new ItemStack(Registry.wrenchItem); - } - };*/ - public static Capability pipeNetworkCapability = CapabilityManager.get(new CapabilityToken<>() { }); public static Capability pipeConnectableCapability = CapabilityManager.get(new CapabilityToken<>() { @@ -181,6 +178,17 @@ public final class Registry { Registry.craftingModuleContainer = Registry.registerPipeContainer(h, "crafting_module"); Registry.filterModifierModuleContainer = Registry.registerPipeContainer(h, "filter_modifier_module"); }); + + event.register(BuiltInRegistries.CREATIVE_MODE_TAB.key(), h -> { + h.register(new ResourceLocation(PrettyPipes.ID, "tab"), CreativeModeTab.builder() + .title(Component.translatable("item_group." + PrettyPipes.ID + ".tab")) + .icon(() -> new ItemStack(Registry.wrenchItem)) + .displayItems((params, output) -> ForgeRegistries.ITEMS.getEntries().stream() + .filter(b -> b.getKey().location().getNamespace().equals(PrettyPipes.ID)) + .sorted(Comparator.comparing(b -> b.getValue().getClass().getSimpleName())) + .forEach(b -> output.accept(b.getValue()))).build() + ); + }); } private static > MenuType registerPipeContainer(RegisterEvent.RegisterHelper> helper, String name) { diff --git a/src/main/resources/assets/prettypipes/lang/en_us.json b/src/main/resources/assets/prettypipes/lang/en_us.json index 17c3554..de8fddc 100644 --- a/src/main/resources/assets/prettypipes/lang/en_us.json +++ b/src/main/resources/assets/prettypipes/lang/en_us.json @@ -57,7 +57,7 @@ "block.prettypipes.item_terminal": "Item Terminal", "block.prettypipes.crafting_terminal": "Crafting Terminal", "block.prettypipes.pressurizer": "Pipe Pressurizer", - "itemGroup.prettypipes": "Pretty Pipes", + "item_group.prettypipes.tab": "Pretty Pipes", "container.prettypipes.pipe": "Pipe", "container.prettypipes.item_terminal": "Item Terminal", "container.prettypipes.crafting_terminal": "Crafting Terminal", @@ -98,4 +98,4 @@ "dir.prettypipes.south": "South", "dir.prettypipes.west": "West", "dir.prettypipes.all": "All Sides" -} \ No newline at end of file +}