From a47b98e92254eaeb77c1efc0ccb4b36f93b85fff Mon Sep 17 00:00:00 2001 From: Patricia Prehn Date: Tue, 11 Jul 2023 12:21:30 +0200 Subject: [PATCH] Create dedicated class for creative tab and use `fillItemList` to sort our creative tab --- .../advancedperipherals/APCreativeTab.java | 62 +++++++++++++++++++ .../AdvancedPeripherals.java | 14 +---- 2 files changed, 63 insertions(+), 13 deletions(-) create mode 100644 src/main/java/de/srendi/advancedperipherals/APCreativeTab.java diff --git a/src/main/java/de/srendi/advancedperipherals/APCreativeTab.java b/src/main/java/de/srendi/advancedperipherals/APCreativeTab.java new file mode 100644 index 000000000..dcdd0c566 --- /dev/null +++ b/src/main/java/de/srendi/advancedperipherals/APCreativeTab.java @@ -0,0 +1,62 @@ +package de.srendi.advancedperipherals; + +import de.srendi.advancedperipherals.common.setup.Blocks; +import de.srendi.advancedperipherals.common.setup.CCRegistration; +import de.srendi.advancedperipherals.common.setup.Registration; +import de.srendi.advancedperipherals.common.util.inventory.ItemUtil; +import net.minecraft.core.NonNullList; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.ItemStack; +import net.minecraftforge.registries.RegistryObject; +import org.jetbrains.annotations.NotNull; + +import java.util.Collection; +import java.util.Set; + +public class APCreativeTab extends CreativeModeTab { + + public APCreativeTab() { + super("advancedperipheralstab"); + } + + @Override + public void fillItemList(NonNullList items) { + Registration.ITEMS.getEntries().stream().map(RegistryObject::get).forEach(item -> items.add(new ItemStack(item))); + items.addAll(pocketUpgrade(CCRegistration.ID.COLONY_POCKET)); + items.addAll(pocketUpgrade(CCRegistration.ID.CHATTY_POCKET)); + items.addAll(pocketUpgrade(CCRegistration.ID.PLAYER_POCKET)); + items.addAll(pocketUpgrade(CCRegistration.ID.ENVIRONMENT_POCKET)); + items.addAll(pocketUpgrade(CCRegistration.ID.GEOSCANNER_POCKET)); + + items.addAll(turtleUpgrade(CCRegistration.ID.CHATTY_TURTLE)); + items.addAll(turtleUpgrade(CCRegistration.ID.CHUNKY_TURTLE)); + items.addAll(turtleUpgrade(CCRegistration.ID.COMPASS_TURTLE)); + items.addAll(turtleUpgrade(CCRegistration.ID.PLAYER_TURTLE)); + items.addAll(turtleUpgrade(CCRegistration.ID.ENVIRONMENT_TURTLE)); + items.addAll(turtleUpgrade(CCRegistration.ID.GEOSCANNER_TURTLE)); + + items.addAll(turtleUpgrade(CCRegistration.ID.WEAK_AUTOMATA)); + items.addAll(turtleUpgrade(CCRegistration.ID.OP_WEAK_AUTOMATA)); + items.addAll(turtleUpgrade(CCRegistration.ID.HUSBANDRY_AUTOMATA)); + items.addAll(turtleUpgrade(CCRegistration.ID.OP_HUSBANDRY_AUTOMATA)); + items.addAll(turtleUpgrade(CCRegistration.ID.END_AUTOMATA)); + items.addAll(turtleUpgrade(CCRegistration.ID.OP_END_AUTOMATA)); + } + + private static Collection pocketUpgrade(ResourceLocation pocketId) { + return Set.of(ItemUtil.makePocket(ItemUtil.POCKET_NORMAL, pocketId.toString()), + ItemUtil.makePocket(ItemUtil.POCKET_ADVANCED, pocketId.toString())); + } + + private static Collection turtleUpgrade(ResourceLocation pocketId) { + return Set.of(ItemUtil.makeTurtle(ItemUtil.TURTLE_NORMAL, pocketId.toString()), + ItemUtil.makeTurtle(ItemUtil.TURTLE_ADVANCED, pocketId.toString())); + } + + @Override + @NotNull + public ItemStack makeIcon() { + return new ItemStack(Blocks.CHAT_BOX.get()); + } +} diff --git a/src/main/java/de/srendi/advancedperipherals/AdvancedPeripherals.java b/src/main/java/de/srendi/advancedperipherals/AdvancedPeripherals.java index 45f380184..95ca5e91e 100644 --- a/src/main/java/de/srendi/advancedperipherals/AdvancedPeripherals.java +++ b/src/main/java/de/srendi/advancedperipherals/AdvancedPeripherals.java @@ -3,13 +3,10 @@ import de.srendi.advancedperipherals.client.HudOverlayHandler; import de.srendi.advancedperipherals.common.addons.APAddons; import de.srendi.advancedperipherals.common.configuration.APConfig; -import de.srendi.advancedperipherals.common.setup.Blocks; import de.srendi.advancedperipherals.common.setup.Registration; import de.srendi.advancedperipherals.common.village.VillageStructures; import de.srendi.advancedperipherals.network.MNetwork; import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.CreativeModeTab; -import net.minecraft.world.item.ItemStack; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.fml.ModLoadingContext; @@ -20,7 +17,6 @@ import org.apache.logging.log4j.Level; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.jetbrains.annotations.NotNull; import java.util.Random; @@ -31,15 +27,7 @@ public class AdvancedPeripherals { public static final String NAME = "Advanced Peripherals"; public static final Logger LOGGER = LogManager.getLogger(NAME); public static final Random RANDOM = new Random(); - public static final CreativeModeTab TAB = new CreativeModeTab("advancedperipheralstab") { - - @Override - @NotNull - public ItemStack makeIcon() { - return new ItemStack(Blocks.CHAT_BOX.get()); - } - - }; + public static final APCreativeTab TAB = new APCreativeTab(); public AdvancedPeripherals() { LOGGER.info("AdvancedPeripherals says hello!");