aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorBrandon <brandon.wamboldt@gmail.com>2023-10-11 05:57:05 -0300
committerGitHub <noreply@github.com>2023-10-11 10:57:05 +0200
commitc896c6872d5ccb2b0d28eb666f944c4c63f107a7 (patch)
treee4ea17e5906768bb5cba803059950cf640953bb3 /src/main/java
parent1d6a0c1c4396d45fbdd7bf1c2d5ce230b0ac7279 (diff)
downloadskyhanni-c896c6872d5ccb2b0d28eb666f944c4c63f107a7.tar.gz
skyhanni-c896c6872d5ccb2b0d28eb666f944c4c63f107a7.tar.bz2
skyhanni-c896c6872d5ccb2b0d28eb666f944c4c63f107a7.zip
Feature: Highlight party members (#463)
Added Highlight Party Members. #463
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/SkyHanniMod.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/MiscConfig.java25
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/misc/PartyMemberOutlines.kt29
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/EntityOutlineRenderer.kt1
4 files changed, 57 insertions, 0 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.kt b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.kt
index 7a0b79cbe..c7bb40f39 100644
--- a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.kt
+++ b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.kt
@@ -183,6 +183,7 @@ import at.hannibal2.skyhanni.features.misc.MiscFeatures
import at.hannibal2.skyhanni.features.misc.MovementSpeedDisplay
import at.hannibal2.skyhanni.features.misc.NonGodPotEffectDisplay
import at.hannibal2.skyhanni.features.misc.ParticleHider
+import at.hannibal2.skyhanni.features.misc.PartyMemberOutlines
import at.hannibal2.skyhanni.features.misc.PasteIntoSigns
import at.hannibal2.skyhanni.features.misc.PatcherSendCoordinates
import at.hannibal2.skyhanni.features.misc.PetCandyUsedDisplay
@@ -587,6 +588,7 @@ class SkyHanniMod {
loadModule(QuickCraftFeatures())
loadModule(SkyBlockKickDuration())
loadModule(LimboTimeTracker())
+ loadModule(PartyMemberOutlines())
init()
diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/MiscConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/MiscConfig.java
index e58648c4d..13c559f88 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/features/MiscConfig.java
+++ b/src/main/java/at/hannibal2/skyhanni/config/features/MiscConfig.java
@@ -535,6 +535,31 @@ public class MiscConfig {
}
+
+ @Expose
+ @ConfigOption(name = "Highlight Party Members", desc = "")
+ @Accordion
+ public HighlightPartyMembers highlightPartyMembers = new HighlightPartyMembers();
+
+ public static class HighlightPartyMembers {
+
+ @Expose
+ @ConfigOption(name = "Enabled", desc = "Draws a glowing outline around your party members")
+ @ConfigEditorBoolean
+ @FeatureToggle
+ public boolean enabled = false;
+
+ @Expose
+ @ConfigOption(
+ name = "Outline Color",
+ desc = "The color to outline party members in."
+ )
+ @ConfigEditorColour
+ public String outlineColor = "0:245:85:255:85";
+
+ }
+
+
@Expose
@ConfigOption(name = "Compact Tab List", desc = "")
@Accordion
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
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/EntityOutlineRenderer.kt b/src/main/java/at/hannibal2/skyhanni/utils/EntityOutlineRenderer.kt
index d290d540b..30853c9ca 100644
--- a/src/main/java/at/hannibal2/skyhanni/utils/EntityOutlineRenderer.kt
+++ b/src/main/java/at/hannibal2/skyhanni/utils/EntityOutlineRenderer.kt
@@ -274,6 +274,7 @@ object EntityOutlineRenderer {
if (SkyHanniMod.feature.fishing.rareSeaCreatureHighlight) return true
if (SkyHanniMod.feature.misc.glowingDroppedItems.enabled) return true
if (SkyHanniMod.feature.dungeon.highlightTeammates) return true
+ if (SkyHanniMod.feature.misc.highlightPartyMembers.enabled) return true
return false
}