From ad5e66f4b03ae80cd4f4cf6268495e6b4db901de Mon Sep 17 00:00:00 2001 From: hannibal2 <24389977+hannibal00212@users.noreply.github.com> Date: Fri, 21 Apr 2023 23:51:37 +0200 Subject: added useful stuff --- .../java/at/hannibal2/skyhanni/utils/ItemBlink.kt | 31 ++++++++++++++++++++++ .../at/hannibal2/skyhanni/utils/LorenzUtils.kt | 3 +++ .../java/at/hannibal2/skyhanni/utils/NEUItems.kt | 6 +++-- 3 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 src/main/java/at/hannibal2/skyhanni/utils/ItemBlink.kt (limited to 'src/main/java/at/hannibal2/skyhanni/utils') diff --git a/src/main/java/at/hannibal2/skyhanni/utils/ItemBlink.kt b/src/main/java/at/hannibal2/skyhanni/utils/ItemBlink.kt new file mode 100644 index 000000000..8afc2a2b7 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/utils/ItemBlink.kt @@ -0,0 +1,31 @@ +package at.hannibal2.skyhanni.utils + +import net.minecraft.item.Item +import net.minecraft.item.ItemStack + +object ItemBlink { + private val offsets = mutableMapOf() + private var lastOffset = 0L + private var endOfBlink = 0L + private var blinkItem: ItemStack? = null + + fun setBlink(item: ItemStack?, durationMillis: Long) { + endOfBlink = System.currentTimeMillis() + durationMillis + blinkItem = item + } + + fun ItemStack.checkBlinkItem(): ItemStack { + val stack = blinkItem ?: return this + if (System.currentTimeMillis() > endOfBlink) return this + + val offset: Long = if (!offsets.containsKey(item)) { + lastOffset += 200 + val number = lastOffset % 1000 + offsets[item] = number + number + } else { + offsets[item]!! + } + return if ((offset + System.currentTimeMillis()) % 1000 > 500) stack else this + } +} \ No newline at end of file diff --git a/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt index 526d2a3c7..8047cc61a 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt @@ -51,6 +51,9 @@ object LorenzUtils { val isBingoProfile: Boolean get() = inSkyBlock && HypixelData.bingo + val lastWorldSwitch: Long + get() = HypixelData.joinedWorld + const val DEBUG_PREFIX = "[SkyHanni Debug] ยง7" private val log = LorenzLogger("chat/mod_sent") diff --git a/src/main/java/at/hannibal2/skyhanni/utils/NEUItems.kt b/src/main/java/at/hannibal2/skyhanni/utils/NEUItems.kt index 71bcc2f09..b34462e3e 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/NEUItems.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/NEUItems.kt @@ -1,5 +1,6 @@ package at.hannibal2.skyhanni.utils +import at.hannibal2.skyhanni.utils.ItemBlink.checkBlinkItem import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName import at.hannibal2.skyhanni.utils.NumberUtil.romanToDecimal import io.github.moulberry.notenoughupdates.NEUManager @@ -122,7 +123,8 @@ object NEUItems { fun isVanillaItem(item: ItemStack) = manager.auctionManager.isVanillaItem(item.getInternalName()) fun ItemStack.renderOnScreen(x: Float, y: Float, scaleMultiplier: Double = 1.0) { - val isSkull = item === Items.skull + val item = checkBlinkItem() + val isSkull = item.item === Items.skull val baseScale = (if (isSkull) 0.8f else 0.6f) val finalScale = baseScale * scaleMultiplier @@ -144,7 +146,7 @@ object NEUItems { GlStateManager.scale(finalScale, finalScale, 1.0) RenderHelper.enableGUIStandardItemLighting() - Minecraft.getMinecraft().renderItem.renderItemIntoGUI(this, 0, 0) + Minecraft.getMinecraft().renderItem.renderItemIntoGUI(item, 0, 0) RenderHelper.disableStandardItemLighting() GlStateManager.popMatrix() -- cgit