From 36f1f795ac569c712d86d02192082e233a5f17d8 Mon Sep 17 00:00:00 2001 From: hannibal2 <24389977+hannibal00212@users.noreply.github.com> Date: Sat, 11 Feb 2023 01:27:52 +0100 Subject: Reworked entity highlight config for area mini bosses, slayer mini bosses, corrupted mobs and arachne keepers. --- .../mixins/hooks/RenderLivingEntityHelper.kt | 40 ++++++++++++---------- 1 file changed, 21 insertions(+), 19 deletions(-) (limited to 'src/main/java/at/hannibal2/skyhanni/mixins') diff --git a/src/main/java/at/hannibal2/skyhanni/mixins/hooks/RenderLivingEntityHelper.kt b/src/main/java/at/hannibal2/skyhanni/mixins/hooks/RenderLivingEntityHelper.kt index 371f97a68..036c75627 100644 --- a/src/main/java/at/hannibal2/skyhanni/mixins/hooks/RenderLivingEntityHelper.kt +++ b/src/main/java/at/hannibal2/skyhanni/mixins/hooks/RenderLivingEntityHelper.kt @@ -11,53 +11,55 @@ class RenderLivingEntityHelper { @SubscribeEvent fun onWorldChange(event: WorldEvent.Load) { entityColorMap.clear() + entityColorCondition.clear() + entityNoHurTime.clear() + entityNoHurTimeCondition.clear() } companion object { private val entityColorMap = mutableMapOf() + private val entityColorCondition = mutableMapOf Boolean>() + private val entityNoHurTime = mutableListOf() + private val entityNoHurTimeCondition = mutableMapOf Boolean>() - fun setEntityColor(entity: T, color: Int) { + fun setEntityColor(entity: T, color: Int, condition: () -> Boolean) { entityColorMap[entity] = color + entityColorCondition[entity] = condition } - fun setNoHurtTime(entity: T) { + fun setNoHurtTime(entity: T, condition: () -> Boolean) { entityNoHurTime.add(entity) + entityNoHurTimeCondition[entity] = condition } - fun setColorMultiplier(entity: T, ): Int { + fun setColorMultiplier(entity: T): Int { if (entityColorMap.containsKey(entity)) { - return entityColorMap[entity]!! + val condition = entityColorCondition[entity]!! + if (condition.invoke()) { + return entityColorMap[entity]!! + } } //TODO remove event val event = RenderMobColoredEvent(entity, 0) event.postAndCatch() - val color = event.color - if (color != 0) { - //TODO remove? - entityColorMap[entity] = color - } - - return color + return event.color } fun changeHurtTime(entity: T): Int { if (entityNoHurTime.contains(entity)) { - return 0 + val condition = entityNoHurTimeCondition[entity]!! + if (condition.invoke()) { + return 0 + } } //TODO remove event val event = ResetEntityHurtEvent(entity, false) event.postAndCatch() - val shouldReset = event.shouldReset - - if (shouldReset) { - //TODO remove? - entityNoHurTime.add(entity) - } - return if (shouldReset) 0 else entity.hurtTime + return if (event.shouldReset) 0 else entity.hurtTime } } } \ No newline at end of file -- cgit