diff options
| author | Brandon <brandon.wamboldt@gmail.com> | 2023-09-26 05:44:34 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-09-26 10:44:34 +0200 |
| commit | 5963a6555fff757a263e47f2cc8b2e49ae16c6ed (patch) | |
| tree | 5b2d2220fda5b4045e2e462eec3c80c941939bb4 /src/main/java/at/hannibal2/skyhanni/features/itemabilities | |
| parent | 768cb23a7fd6aa82af60129f7f3c9d17169f16bd (diff) | |
| download | skyhanni-5963a6555fff757a263e47f2cc8b2e49ae16c6ed.tar.gz skyhanni-5963a6555fff757a263e47f2cc8b2e49ae16c6ed.tar.bz2 skyhanni-5963a6555fff757a263e47f2cc8b2e49ae16c6ed.zip | |
item ability cooldown and ff display improvements #477
* Improve performance for tooltips and item ability cooldown feature
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/itemabilities')
| -rw-r--r-- | src/main/java/at/hannibal2/skyhanni/features/itemabilities/abilitycooldown/ItemAbilityCooldown.kt | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/itemabilities/abilitycooldown/ItemAbilityCooldown.kt b/src/main/java/at/hannibal2/skyhanni/features/itemabilities/abilitycooldown/ItemAbilityCooldown.kt index f644cdd76..7aca21152 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/itemabilities/abilitycooldown/ItemAbilityCooldown.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/itemabilities/abilitycooldown/ItemAbilityCooldown.kt @@ -15,6 +15,7 @@ import at.hannibal2.skyhanni.utils.LorenzUtils.equalsOneOf import at.hannibal2.skyhanni.utils.LorenzUtils.round import at.hannibal2.skyhanni.utils.NEUInternalName.Companion.asInternalName import at.hannibal2.skyhanni.utils.SkyBlockItemModifierUtils.getAbilityScrolls +import at.hannibal2.skyhanni.utils.SkyBlockItemModifierUtils.getItemUuid import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher import net.minecraft.client.Minecraft import net.minecraft.item.ItemStack @@ -24,6 +25,7 @@ import kotlin.math.max class ItemAbilityCooldown { private var lastAbility = "" private var items = mapOf<ItemStack, List<ItemText>>() + private var abilityItems = mapOf<ItemStack, MutableList<ItemAbility>>() private val youAlignedOthersPattern = "§eYou aligned §r§a.* §r§eother player(s)?!".toPattern() private val WEIRD_TUBA = "WEIRD_TUBA".asInternalName() private val WEIRDER_TUBA = "WEIRDER_TUBA".asInternalName() @@ -234,19 +236,15 @@ class ItemAbilityCooldown { fun onTick(event: LorenzTickEvent) { if (!isEnabled()) return - if (event.isMod(2)) { - checkHotBar() - } + checkHotBar(event.isMod(10)) } - private fun checkHotBar() { - val items = mutableMapOf<ItemStack, MutableList<ItemText>>() - for ((stack, _) in ItemUtils.getItemsInInventoryWithSlots(true)) { - for (ability in hasAbility(stack)) { - items.getOrPut(stack) { mutableListOf() }.add(createItemText(ability)) - } + private fun checkHotBar(recheckInventorySlots: Boolean = false) { + if (recheckInventorySlots || abilityItems.isEmpty()) { + abilityItems = ItemUtils.getItemsInInventory(true).associateWith { hasAbility(it) } } - this.items = items + + items = abilityItems.mapValues { kp -> kp.value.map { createItemText(it) } } } private fun createItemText(ability: ItemAbility): ItemText { @@ -287,7 +285,7 @@ class ItemAbilityCooldown { val stack = event.stack val guiOpen = Minecraft.getMinecraft().currentScreen != null - val list = items.filter { it.key == stack } + val list = items.filter { it.key.getItemUuid() == stack.getItemUuid() } .firstNotNullOfOrNull { it.value } ?: return for (itemText in list) { |
