diff options
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java | 4 | ||||
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/config/Features.java | 4 | ||||
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/config/features/DamageIndicator.java | 71 | ||||
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/config/features/Misc.java | 76 | ||||
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/damageindicator/DamageIndicatorManager.kt (renamed from src/main/java/at/hannibal2/skyhanni/damageindicator/BossDamageIndicator.kt) | 16 |
5 files changed, 88 insertions, 83 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java index 4ee380890..848d45421 100644 --- a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java +++ b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java @@ -9,7 +9,7 @@ import at.hannibal2.skyhanni.chat.NewChatFilter; import at.hannibal2.skyhanni.chat.PlayerChatFilter; import at.hannibal2.skyhanni.config.Features; import at.hannibal2.skyhanni.config.gui.commands.Commands; -import at.hannibal2.skyhanni.damageindicator.BossDamageIndicator; +import at.hannibal2.skyhanni.damageindicator.DamageIndicatorManager; import at.hannibal2.skyhanni.dungeon.*; import at.hannibal2.skyhanni.fishing.SeaCreatureManager; import at.hannibal2.skyhanni.fishing.SeaCreatureMessageShortener; @@ -73,7 +73,7 @@ public class SkyHanniMod { registerEvent(new ItemDisplayOverlayFeatures()); registerEvent(new CurrentPetDisplay()); registerEvent(new ExpBottleOnGroundHider()); - registerEvent(new BossDamageIndicator()); + registerEvent(new DamageIndicatorManager()); registerEvent(new ItemAbilityCooldown()); registerEvent(new DungeonMilestoneDisplay()); registerEvent(new DungeonDeathCounter()); diff --git a/src/main/java/at/hannibal2/skyhanni/config/Features.java b/src/main/java/at/hannibal2/skyhanni/config/Features.java index 833cb8123..494acd36c 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/Features.java +++ b/src/main/java/at/hannibal2/skyhanni/config/Features.java @@ -88,6 +88,10 @@ public class Features { public Fishing fishing = new Fishing(); @Expose + @Category(name = "Damage Indicator", desc = "Better damage overview in combat with bosses of all sorts.") + public DamageIndicator damageIndicator = new DamageIndicator(); + + @Expose @Category(name = "Misc", desc = "Settings without a category.") public Misc misc = new Misc(); diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/DamageIndicator.java b/src/main/java/at/hannibal2/skyhanni/config/features/DamageIndicator.java new file mode 100644 index 000000000..0adef7865 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/DamageIndicator.java @@ -0,0 +1,71 @@ +package at.hannibal2.skyhanni.config.features; + +import at.hannibal2.skyhanni.config.gui.core.config.annotations.ConfigEditorBoolean; +import at.hannibal2.skyhanni.config.gui.core.config.annotations.ConfigEditorDraggableList; +import at.hannibal2.skyhanni.config.gui.core.config.annotations.ConfigEditorDropdown; +import at.hannibal2.skyhanni.config.gui.core.config.annotations.ConfigOption; +import com.google.gson.annotations.Expose; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class DamageIndicator { + + @Expose + @ConfigOption(name = "Enabled", desc = "Show the missing health of a boss.") + @ConfigEditorBoolean + public boolean enabled = false; + + @Expose + @ConfigOption(name = "Healing Chat Message", desc = "Sends a chat message when a boss heals himself.") + @ConfigEditorBoolean + public boolean healingMessage = false; + + @Expose + @ConfigOption( + name = "Boss Name", + desc = "Change how the boss name should be displayed") + @ConfigEditorDropdown(values = {"Disabled", "Full Name", "Short Name"}) + public int bossName = 1; + + @Expose + @ConfigOption( + name = "Select Boss", + desc = "Change what type of boss you want the damage indicator be enabled for." + ) + @ConfigEditorDraggableList( + exampleText = { + "\u00a7bDungeon All", + "\u00a7bNether Mini Bosses", + "\u00a7bVanquisher", + "\u00a7bEndstone Protector (not tested)", + "\u00a7bEnder Dragon (not finished)", + "\u00a7bRevenant Horror", + "\u00a7bTarantula Broodfather", + "\u00a7bSven Packmaster", + "\u00a7bVoidgloom Seraph", + "\u00a7bInferno Demonlord (only tier 1 yet)", + "\u00a7bHeadless Horseman (bugged)", + "\u00a7bDungeon Floor 1", + "\u00a7bDungeon Floor 2", + "\u00a7bDungeon Floor 3", + "\u00a7bDungeon Floor 4", + "\u00a7bDungeon Floor 5", + "\u00a7bDungeon Floor 6", + "\u00a7bDungeon Floor 7" + } + ) + //TODO only show currently working and tested features + public List<Integer> bossesToShow = new ArrayList<>(Arrays.asList(0, 1, 2, 5, 6, 7, 8, 9)); + + @Expose + @ConfigOption(name = "Hide Damage Splash", desc = "Hiding damage splashes near the damage indicator") + @ConfigEditorBoolean + public boolean hideDamageSplash = false; + + @Expose + @ConfigOption(name = "Damage Over Time", desc = "Show damage and health over time below the damage indicator") + @ConfigEditorBoolean + public boolean showDamageOverTime = false; +} diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/Misc.java b/src/main/java/at/hannibal2/skyhanni/config/features/Misc.java index 5362db7fa..23487a20d 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/features/Misc.java +++ b/src/main/java/at/hannibal2/skyhanni/config/features/Misc.java @@ -1,84 +1,14 @@ package at.hannibal2.skyhanni.config.features; import at.hannibal2.skyhanni.config.gui.core.config.Position; -import at.hannibal2.skyhanni.config.gui.core.config.annotations.*; +import at.hannibal2.skyhanni.config.gui.core.config.annotations.ConfigEditorBoolean; +import at.hannibal2.skyhanni.config.gui.core.config.annotations.ConfigEditorButton; +import at.hannibal2.skyhanni.config.gui.core.config.annotations.ConfigOption; import com.google.gson.annotations.Expose; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - public class Misc { @Expose - @ConfigOption(name = "Damage Indicator", desc = "") - @ConfigEditorAccordion(id = 1) - public boolean damageIndicatorInternal = false; - - @Expose - @ConfigOption(name = "Enabled", desc = "Show the missing health of a boss.") - @ConfigEditorBoolean - @ConfigAccordionId(id = 1) - public boolean damageIndicator = false; - - @Expose - @ConfigOption(name = "Healing Chat Message", desc = "Sends a chat message when a boss heals himself.") - @ConfigEditorBoolean - @ConfigAccordionId(id = 1) - public boolean damageIndicatorHealingMessage = false; - - @Expose - @ConfigOption( - name = "Boss Name", - desc = "Change how the boss name should be displayed") - @ConfigEditorDropdown(values = {"Disabled", "Full Name", "Short Name"}) - @ConfigAccordionId(id = 1) - public int damageIndicatorBossName = 1; - - @Expose - @ConfigOption( - name = "Select Boss", - desc = "Change what type of boss you want the damage indicator be enabled for." - ) - @ConfigEditorDraggableList( - exampleText = { - "\u00a7bDungeon All", - "\u00a7bNether Mini Bosses", - "\u00a7bVanquisher", - "\u00a7bEndstone Protector (not tested)", - "\u00a7bEnder Dragon (not finished)", - "\u00a7bRevenant Horror", - "\u00a7bTarantula Broodfather", - "\u00a7bSven Packmaster", - "\u00a7bVoidgloom Seraph", - "\u00a7bInferno Demonlord (only tier 1 yet)", - "\u00a7bHeadless Horseman (bugged)", - "\u00a7bDungeon Floor 1", - "\u00a7bDungeon Floor 2", - "\u00a7bDungeon Floor 3", - "\u00a7bDungeon Floor 4", - "\u00a7bDungeon Floor 5", - "\u00a7bDungeon Floor 6", - "\u00a7bDungeon Floor 7" - } - ) - @ConfigAccordionId(id = 1) - //TODO only show currently working and tested features - public List<Integer> damageIndicatorBossesToShow = new ArrayList<>(Arrays.asList(0, 1, 2, 5, 6, 7, 8, 9)); - - @Expose - @ConfigOption(name = "Hide Damage Splash", desc = "Hiding damage splashes near the damage indicator") - @ConfigEditorBoolean - @ConfigAccordionId(id = 1) - public boolean damageIndicatorHideDamageSplash = false; - - @Expose - @ConfigOption(name = "Damage Over Time", desc = "Show damage and health over time below the damage indicator") - @ConfigEditorBoolean - @ConfigAccordionId(id = 1) - public boolean damageIndicatorShowDamageOverTime = false; - - @Expose @ConfigOption(name = "Pet Display", desc = "Show the currently active pet.") @ConfigEditorBoolean public boolean petDisplay = false; diff --git a/src/main/java/at/hannibal2/skyhanni/damageindicator/BossDamageIndicator.kt b/src/main/java/at/hannibal2/skyhanni/damageindicator/DamageIndicatorManager.kt index 38a415f03..fa7dbb530 100644 --- a/src/main/java/at/hannibal2/skyhanni/damageindicator/BossDamageIndicator.kt +++ b/src/main/java/at/hannibal2/skyhanni/damageindicator/DamageIndicatorManager.kt @@ -30,7 +30,7 @@ import java.util.* import java.util.regex.Pattern import kotlin.math.max -class BossDamageIndicator { +class DamageIndicatorManager { var data = mutableMapOf<UUID, EntityData>() private var bossFinder: BossFinder? = null @@ -51,7 +51,7 @@ class BossDamageIndicator { @SubscribeEvent fun onWorldRender(event: RenderWorldLastEvent) { - if (!SkyHanniMod.feature.misc.damageIndicator) return + if (!SkyHanniMod.feature.damageIndicator.enabled) return GlStateManager.disableDepth() GlStateManager.disableCull() @@ -69,7 +69,7 @@ class BossDamageIndicator { if (!data.ignoreBlocks) { if (!player.canEntityBeSeen(data.entity)) continue } - if (data.bossType.bossTypeToggle !in SkyHanniMod.feature.misc.damageIndicatorBossesToShow) continue + if (data.bossType.bossTypeToggle !in SkyHanniMod.feature.damageIndicator.bossesToShow) continue val entity = data.entity @@ -100,7 +100,7 @@ class BossDamageIndicator { RenderUtils.drawLabel(location, healthText, partialTicks, true, 6f) } - var bossName = when (SkyHanniMod.feature.misc.damageIndicatorBossName) { + var bossName = when (SkyHanniMod.feature.damageIndicator.bossName) { 0 -> "" 1 -> data.bossType.fullName 2 -> data.bossType.shortName @@ -116,7 +116,7 @@ class BossDamageIndicator { RenderUtils.drawLabel(location, bossName, partialTicks, true, 3.9f, -9.0f) - if (SkyHanniMod.feature.misc.damageIndicatorShowDamageOverTime) { + if (SkyHanniMod.feature.damageIndicator.showDamageOverTime) { var diff = 13f val currentDamage = data.damageCounter.currentDamage val currentHealing = data.damageCounter.currentHealing @@ -414,7 +414,7 @@ class BossDamageIndicator { if (data.containsKey(entity.uniqueID)) { val lastHealth = data[entity.uniqueID]!!.lastHealth val bossType = entityData.bossType - if (SkyHanniMod.feature.misc.damageIndicatorHealingMessage) { + if (SkyHanniMod.feature.damageIndicator.healingMessage) { checkHealed(health, lastHealth, bossType) } checkDamage(entityData, health, lastHealth, bossType) @@ -478,7 +478,7 @@ class BossDamageIndicator { val healedFormat = NumberUtil.format(healed) - val bossName = when (SkyHanniMod.feature.misc.damageIndicatorBossName) { + val bossName = when (SkyHanniMod.feature.damageIndicator.bossName) { 2 -> bossType.shortName else -> bossType.fullName } @@ -522,7 +522,7 @@ class BossDamageIndicator { @SubscribeEvent(priority = EventPriority.HIGHEST) fun onRenderLiving(e: RenderLivingEvent.Specials.Pre<EntityLivingBase>) { - if (!SkyHanniMod.feature.misc.damageIndicatorHideDamageSplash) return + if (!SkyHanniMod.feature.damageIndicator.hideDamageSplash) return val entity = e.entity if (entity.ticksExisted > 300 || entity !is EntityArmorStand) return |