diff options
| author | Thunderblade73 <85900443+Thunderblade73@users.noreply.github.com> | 2024-03-11 16:28:59 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-03-11 16:28:59 +0100 |
| commit | 5b53cc7bda66be5f740749f9fd0cba23927c4d82 (patch) | |
| tree | 429d423dbe3e4dec775f6894df810fba9c132bfc /src/main/java/at/hannibal2/skyhanni/features/misc | |
| parent | 9637398e94e41a1bb8787d2ef5bce6b839606b57 (diff) | |
| download | skyhanni-5b53cc7bda66be5f740749f9fd0cba23927c4d82.tar.gz skyhanni-5b53cc7bda66be5f740749f9fd0cba23927c4d82.tar.bz2 skyhanni-5b53cc7bda66be5f740749f9fd0cba23927c4d82.zip | |
Backend: RenderEntityLiving performance fix (#1127)
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/misc')
| -rw-r--r-- | src/main/java/at/hannibal2/skyhanni/features/misc/MarkedPlayerManager.kt | 52 | ||||
| -rw-r--r-- | src/main/java/at/hannibal2/skyhanni/features/misc/trevor/TrevorFeatures.kt | 4 |
2 files changed, 26 insertions, 30 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/misc/MarkedPlayerManager.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/MarkedPlayerManager.kt index 6997da51b..86c7ffc92 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/misc/MarkedPlayerManager.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/misc/MarkedPlayerManager.kt @@ -5,10 +5,10 @@ import at.hannibal2.skyhanni.config.enums.OutsideSbFeature import at.hannibal2.skyhanni.events.ConfigLoadEvent 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.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.ConditionalUtils.onToggle import at.hannibal2.skyhanni.utils.EntityUtils import at.hannibal2.skyhanni.utils.LorenzUtils import net.minecraft.client.Minecraft @@ -16,10 +16,10 @@ import net.minecraft.client.entity.EntityOtherPlayerMP import net.minecraftforge.fml.common.eventhandler.SubscribeEvent class MarkedPlayerManager { - private val config get() = SkyHanniMod.feature.markedPlayers - companion object { + private val config get() = SkyHanniMod.feature.markedPlayers + val playerNamesToMark = mutableListOf<String>() private val markedPlayers = mutableMapOf<String, EntityOtherPlayerMP>() @@ -44,6 +44,7 @@ class MarkedPlayerManager { ChatUtils.chat("§aMarked §eplayer §b$displayName§e!") } else { playerNamesToMark.remove(name) + markedPlayers[name]?.let { RenderLivingEntityHelper.removeCustomRender(it) } markedPlayers.remove(name) ChatUtils.chat("§cUnmarked §eplayer §b$displayName§e!") } @@ -56,11 +57,28 @@ class MarkedPlayerManager { val name = entity.name.lowercase() if (name in playerNamesToMark) { markedPlayers[name] = entity + entity.setColor() } } } + private fun refreshColours() = + markedPlayers.forEach { + it.value.setColor() + } + + private fun EntityOtherPlayerMP.setColor() { + RenderLivingEntityHelper.setEntityColorWithNoHurtTime( + this, + config.entityColor.get().toColor().withAlpha(127), + ::isEnabled + ) + } + fun isMarkedPlayer(player: String): Boolean = player.lowercase() in playerNamesToMark + + private fun isEnabled() = (LorenzUtils.inSkyBlock || OutsideSbFeature.MARKED_PLAYERS.isSelected()) + && config.highlightInWorld } @SubscribeEvent @@ -75,6 +93,7 @@ class MarkedPlayerManager { playerNamesToMark.remove(name) } } + config.entityColor.onToggle(::refreshColours) } @SubscribeEvent @@ -87,29 +106,6 @@ class MarkedPlayerManager { } @SubscribeEvent - fun onRenderMobColored(event: RenderMobColoredEvent) { - if (!isEnabled()) return - - val entity = event.entity - if (entity in markedPlayers.values) { - event.color = config.entityColor.toColor().withAlpha(127) - } - } - - @SubscribeEvent - fun onResetEntityHurtTime(event: ResetEntityHurtEvent) { - if (!isEnabled()) return - - val entity = event.entity - if (entity in markedPlayers.values) { - event.shouldReset = true - } - } - - private fun isEnabled() = (LorenzUtils.inSkyBlock || OutsideSbFeature.MARKED_PLAYERS.isSelected()) - && config.highlightInWorld - - @SubscribeEvent fun onWorldChange(event: LorenzWorldChangeEvent) { if (Minecraft.getMinecraft().thePlayer == null) return diff --git a/src/main/java/at/hannibal2/skyhanni/features/misc/trevor/TrevorFeatures.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/trevor/TrevorFeatures.kt index ffd25c4e1..45a8c2f89 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/misc/trevor/TrevorFeatures.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/misc/trevor/TrevorFeatures.kt @@ -11,12 +11,12 @@ import at.hannibal2.skyhanni.events.LorenzChatEvent import at.hannibal2.skyhanni.events.LorenzKeyPressEvent import at.hannibal2.skyhanni.events.LorenzRenderWorldEvent import at.hannibal2.skyhanni.events.LorenzWorldChangeEvent -import at.hannibal2.skyhanni.events.withAlpha import at.hannibal2.skyhanni.features.garden.farming.GardenCropSpeed import at.hannibal2.skyhanni.mixins.hooks.RenderLivingEntityHelper import at.hannibal2.skyhanni.test.GriffinUtils.drawWaypointFilled import at.hannibal2.skyhanni.test.command.ErrorManager import at.hannibal2.skyhanni.utils.ChatUtils +import at.hannibal2.skyhanni.utils.ColorUtils.withAlpha import at.hannibal2.skyhanni.utils.ConfigUtils import at.hannibal2.skyhanni.utils.EntityUtils import at.hannibal2.skyhanni.utils.LocationUtils @@ -236,7 +236,7 @@ object TrevorFeatures { var entityTrapper = EntityUtils.getEntityByID(trapperID) if (entityTrapper !is EntityLivingBase) entityTrapper = EntityUtils.getEntityByID(backupTrapperID) if (entityTrapper is EntityLivingBase && config.trapperTalkCooldown) { - RenderLivingEntityHelper.setEntityColor(entityTrapper, currentStatus.color) + RenderLivingEntityHelper.setEntityColorWithNoHurtTime(entityTrapper, currentStatus.color) { config.trapperTalkCooldown } entityTrapper.getLorenzVec().let { if (it.distanceToPlayer() < 15) { |
