From 503847f644ba53ab35914f0ff996363043680ff3 Mon Sep 17 00:00:00 2001 From: Jordan Atwood Date: Fri, 4 Oct 2019 22:59:41 -0700 Subject: [PATCH] boosts: Hide restore timer when no boosts are visible Fixes runelite/runelite#6983 --- .../client/plugins/boosts/BoostIndicator.java | 7 +------ .../client/plugins/boosts/BoostsOverlay.java | 16 +++++++++------- .../client/plugins/boosts/BoostsPlugin.java | 17 +++++++++++++---- 3 files changed, 23 insertions(+), 17 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostIndicator.java b/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostIndicator.java index 00a0a97561..802c05eac7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostIndicator.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostIndicator.java @@ -87,11 +87,6 @@ public class BoostIndicator extends InfoBox @Override public boolean render() { - if (config.displayInfoboxes() && plugin.canShowBoosts() && plugin.getShownSkills().contains(getSkill())) - { - return client.getBoostedSkillLevel(skill) != client.getRealSkillLevel(skill); - } - - return false; + return config.displayInfoboxes() && plugin.canShowBoosts() && plugin.getSkillsToDisplay().contains(getSkill()); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsOverlay.java index 49d9389462..8ebc077224 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsOverlay.java @@ -27,6 +27,7 @@ package net.runelite.client.plugins.boosts; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics2D; +import java.util.Set; import javax.inject.Inject; import net.runelite.api.Client; import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG; @@ -89,18 +90,19 @@ class BoostsOverlay extends Overlay .build()); } + final Set boostedSkills = plugin.getSkillsToDisplay(); + + if (boostedSkills.isEmpty()) + { + return panelComponent.render(graphics); + } + if (plugin.canShowBoosts()) { - for (Skill skill : plugin.getShownSkills()) + for (Skill skill : boostedSkills) { final int boosted = client.getBoostedSkillLevel(skill); final int base = client.getRealSkillLevel(skill); - - if (boosted == base) - { - continue; - } - final int boost = boosted - base; final Color strColor = getTextColor(boost); String str; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsPlugin.java index aa7e46d00e..8d3cb34aef 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsPlugin.java @@ -27,7 +27,7 @@ package net.runelite.client.plugins.boosts; import com.google.common.collect.ImmutableSet; import com.google.inject.Provides; import java.util.Arrays; -import java.util.HashSet; +import java.util.EnumSet; import java.util.Set; import javax.inject.Inject; import javax.inject.Singleton; @@ -92,7 +92,9 @@ public class BoostsPlugin extends Plugin private SkillIconManager skillIconManager; @Getter - private final Set shownSkills = new HashSet<>(); + private final Set skillsToDisplay = EnumSet.noneOf(Skill.class); + + private final Set shownSkills = EnumSet.noneOf(Skill.class); private boolean isChangedDown = false; private boolean isChangedUp = false; @@ -114,7 +116,6 @@ public class BoostsPlugin extends Plugin overlayManager.add(boostsOverlay); updateShownSkills(); - updateBoostedStats(); Arrays.fill(lastSkillLevels, -1); // Add infoboxes for everything at startup and then determine inside if it will be rendered @@ -140,6 +141,7 @@ public class BoostsPlugin extends Plugin lastChangeUp = -1; isChangedUp = false; isChangedDown = false; + skillsToDisplay.clear(); } @Subscribe @@ -282,6 +284,7 @@ public class BoostsPlugin extends Plugin shownSkills.addAll(BOOSTABLE_NON_COMBAT_SKILLS); break; } + updateBoostedStats(); } private void updateBoostedStats() @@ -289,11 +292,12 @@ public class BoostsPlugin extends Plugin // Reset is boosted isChangedDown = false; isChangedUp = false; + skillsToDisplay.clear(); // Check if we are still boosted for (final Skill skill : Skill.values()) { - if (!BOOSTABLE_COMBAT_SKILLS.contains(skill) && !BOOSTABLE_NON_COMBAT_SKILLS.contains(skill)) + if (!shownSkills.contains(skill)) { continue; } @@ -309,6 +313,11 @@ public class BoostsPlugin extends Plugin { isChangedDown = true; } + + if (boosted != base) + { + skillsToDisplay.add(skill); + } } }