From 5b53cc7bda66be5f740749f9fd0cba23927c4d82 Mon Sep 17 00:00:00 2001 From: Thunderblade73 <85900443+Thunderblade73@users.noreply.github.com> Date: Mon, 11 Mar 2024 16:28:59 +0100 Subject: Backend: RenderEntityLiving performance fix (#1127) --- .../features/summonings/SummoningMobManager.kt | 36 +++++++++------------- 1 file changed, 15 insertions(+), 21 deletions(-) (limited to 'src/main/java/at/hannibal2/skyhanni/features/summonings') diff --git a/src/main/java/at/hannibal2/skyhanni/features/summonings/SummoningMobManager.kt b/src/main/java/at/hannibal2/skyhanni/features/summonings/SummoningMobManager.kt index 93a79c4ea..6b9e11ec7 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/summonings/SummoningMobManager.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/summonings/SummoningMobManager.kt @@ -6,11 +6,10 @@ import at.hannibal2.skyhanni.events.GuiRenderEvent import at.hannibal2.skyhanni.events.LorenzChatEvent import at.hannibal2.skyhanni.events.LorenzTickEvent import at.hannibal2.skyhanni.events.LorenzWorldChangeEvent -import at.hannibal2.skyhanni.events.RenderMobColoredEvent -import at.hannibal2.skyhanni.events.ResetEntityHurtEvent import at.hannibal2.skyhanni.events.SkyHanniRenderEntityEvent -import at.hannibal2.skyhanni.events.withAlpha +import at.hannibal2.skyhanni.mixins.hooks.RenderLivingEntityHelper import at.hannibal2.skyhanni.utils.ChatUtils +import at.hannibal2.skyhanni.utils.ColorUtils.withAlpha import at.hannibal2.skyhanni.utils.EntityUtils import at.hannibal2.skyhanni.utils.LocationUtils import at.hannibal2.skyhanni.utils.LorenzColor @@ -114,6 +113,7 @@ class SummoningMobManager { .distance(playerLocation) < 10 && it.ticksExisted < 2 }.forEach { summoningMobs[it] = SummoningMob(System.currentTimeMillis(), name = "Mob") + it.setColor(LorenzColor.GREEN) updateData() if (summoningMobs.size == summoningsSpawned) { searchMobs = false @@ -133,6 +133,7 @@ class SummoningMobManager { val name = summoningMob.name if (currentHealth == 0) { summoningMobs.remove(entityLiving) + entityLiving.setColor(null) ChatUtils.chat("Your Summoning Mob just §cdied!") continue } @@ -182,24 +183,6 @@ class SummoningMobManager { event.isCanceled = entity in summoningMobNametags } - @SubscribeEvent - fun onRenderMobColored(event: RenderMobColoredEvent) { - if (config.summoningMobColored) { - val entity = event.entity - if (entity is EntityLiving && entity in summoningMobs.keys) { - event.color = LorenzColor.GREEN.toColor().withAlpha(127) - } - } - } - - @SubscribeEvent - fun onResetEntityHurtTime(event: ResetEntityHurtEvent) { - val entity = event.entity - if (config.summoningMobColored && entity in summoningMobs.keys) { - event.shouldReset = true - } - } - @SubscribeEvent fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent) { event.move(2, "summonings", "combat.summonings") @@ -222,4 +205,15 @@ class SummoningMobManager { var name: String = "", var lastDisplayName: String = "", ) + + private infix fun EntityLivingBase.setColor(color: LorenzColor?) { + if (color != null) { + RenderLivingEntityHelper.setEntityColorWithNoHurtTime( + this, + color.toColor().withAlpha(127), + ) { isEnabled() && config.summoningMobColored } + } else { + RenderLivingEntityHelper.removeCustomRender(this) + } + } } -- cgit