From c896c6872d5ccb2b0d28eb666f944c4c63f107a7 Mon Sep 17 00:00:00 2001 From: Brandon Date: Wed, 11 Oct 2023 05:57:05 -0300 Subject: Feature: Highlight party members (#463) Added Highlight Party Members. #463 --- .../skyhanni/features/misc/PartyMemberOutlines.kt | 29 ++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/main/java/at/hannibal2/skyhanni/features/misc/PartyMemberOutlines.kt (limited to 'src/main/java/at/hannibal2/skyhanni/features') diff --git a/src/main/java/at/hannibal2/skyhanni/features/misc/PartyMemberOutlines.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/PartyMemberOutlines.kt new file mode 100644 index 000000000..c2ac7490b --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/features/misc/PartyMemberOutlines.kt @@ -0,0 +1,29 @@ +package at.hannibal2.skyhanni.features.misc + +import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.data.PartyAPI +import at.hannibal2.skyhanni.events.RenderEntityOutlineEvent +import at.hannibal2.skyhanni.utils.LorenzUtils +import at.hannibal2.skyhanni.utils.SpecialColour +import net.minecraft.client.entity.EntityOtherPlayerMP +import net.minecraft.entity.Entity +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent + +class PartyMemberOutlines { + private val config get() = SkyHanniMod.feature.misc.highlightPartyMembers + + @SubscribeEvent + fun onRenderEntityOutlines(event: RenderEntityOutlineEvent) { + if (isEnabled() && event.type === RenderEntityOutlineEvent.Type.NO_XRAY) { + event.queueEntitiesToOutline { entity -> getEntityOutlineColor(entity) } + } + } + + private fun isEnabled() = LorenzUtils.inSkyBlock && !LorenzUtils.inDungeons && config.enabled + + private fun getEntityOutlineColor(entity: Entity): Int? { + if (entity !is EntityOtherPlayerMP || !PartyAPI.partyMembers.contains(entity.name)) return null + + return SpecialColour.specialToChromaRGB(config.outlineColor) + } +} \ No newline at end of file -- cgit