From 36e2c0f488fbe194e45f34f5b7ac44bb7f42f550 Mon Sep 17 00:00:00 2001 From: NopoTheGamer <40329022+NopoTheGamer@users.noreply.github.com> Date: Sun, 21 Jul 2024 21:33:53 +1000 Subject: Fix fps in armour museum page (#1262) --- .../miscfeatures/inventory/MuseumTooltipManager.kt | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/io/github/moulberry/notenoughupdates/miscfeatures/inventory/MuseumTooltipManager.kt b/src/main/kotlin/io/github/moulberry/notenoughupdates/miscfeatures/inventory/MuseumTooltipManager.kt index 675708e9..307475e6 100644 --- a/src/main/kotlin/io/github/moulberry/notenoughupdates/miscfeatures/inventory/MuseumTooltipManager.kt +++ b/src/main/kotlin/io/github/moulberry/notenoughupdates/miscfeatures/inventory/MuseumTooltipManager.kt @@ -29,6 +29,7 @@ import io.github.moulberry.notenoughupdates.util.Utils import io.github.moulberry.notenoughupdates.util.kotlin.KSerializable import io.github.moulberry.notenoughupdates.util.stripControlCodes import net.minecraft.inventory.ContainerChest +import net.minecraft.inventory.Slot import net.minecraft.util.EnumChatFormatting import net.minecraftforge.event.world.WorldEvent import net.minecraftforge.fml.common.eventhandler.SubscribeEvent @@ -116,6 +117,8 @@ object MuseumTooltipManager { return profileData.visitedOnce } + private var previousSlots: List = emptyList() + @SubscribeEvent fun onBackgroundDrawn(event: GuiContainerBackgroundDrawnEvent) { val gui = event.container ?: return @@ -125,14 +128,17 @@ object MuseumTooltipManager { val armor = Utils.getOpenChestName().stripControlCodes().endsWith("Armor Sets") val slots = chest.inventorySlots - for (i in 0..53) { - val slot = slots[i] - if (slot == null || slot.stack == null) continue - val item = MuseumUtil.findMuseumItem(slot.stack, armor) ?: continue - if (donatedStates.contains(item.state)) { - addItemToDonatedList(item.skyblockItemIds) + if (!slots.equals(previousSlots)) { + for (i in 0..53) { + val slot = slots[i] + if (slot == null || slot.stack == null) continue + val item = MuseumUtil.findMuseumItem(slot.stack, armor) ?: continue + if (donatedStates.contains(item.state)) { + addItemToDonatedList(item.skyblockItemIds) + } } } + previousSlots = slots } @SubscribeEvent -- cgit