summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/features/itemabilities
diff options
context:
space:
mode:
authorBrandon <brandon.wamboldt@gmail.com>2023-09-26 05:44:34 -0300
committerGitHub <noreply@github.com>2023-09-26 10:44:34 +0200
commit5963a6555fff757a263e47f2cc8b2e49ae16c6ed (patch)
tree5b2d2220fda5b4045e2e462eec3c80c941939bb4 /src/main/java/at/hannibal2/skyhanni/features/itemabilities
parent768cb23a7fd6aa82af60129f7f3c9d17169f16bd (diff)
downloadskyhanni-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.kt20
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) {