Make overlays use OverlayPanel instead of Overlay

Make overlays that were previously using PanelComponent use
OverlayPanel.

Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
This commit is contained in:
Tomas Slusny
2020-04-04 01:25:44 +02:00
committed by Adam
parent 2647997bef
commit 35ebe5c65f
32 changed files with 119 additions and 258 deletions

View File

@@ -30,21 +30,18 @@ import java.time.Duration;
import java.time.Instant; import java.time.Instant;
import javax.inject.Inject; import javax.inject.Inject;
import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG; import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG;
import net.runelite.client.ui.overlay.Overlay;
import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE;
import net.runelite.client.ui.overlay.OverlayMenuEntry; import net.runelite.client.ui.overlay.OverlayMenuEntry;
import net.runelite.client.ui.overlay.OverlayPanel;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.OverlayPriority; import net.runelite.client.ui.overlay.OverlayPriority;
import net.runelite.client.ui.overlay.components.LineComponent; import net.runelite.client.ui.overlay.components.LineComponent;
import net.runelite.client.ui.overlay.components.PanelComponent;
class LapCounterOverlay extends Overlay class LapCounterOverlay extends OverlayPanel
{ {
private final AgilityPlugin plugin; private final AgilityPlugin plugin;
private final AgilityConfig config; private final AgilityConfig config;
private final PanelComponent panelComponent = new PanelComponent();
@Inject @Inject
private LapCounterOverlay(AgilityPlugin plugin, AgilityConfig config) private LapCounterOverlay(AgilityPlugin plugin, AgilityConfig config)
{ {
@@ -79,7 +76,6 @@ class LapCounterOverlay extends Overlay
return null; return null;
} }
panelComponent.getChildren().clear();
panelComponent.getChildren().add(LineComponent.builder() panelComponent.getChildren().add(LineComponent.builder()
.left("Total Laps:") .left("Total Laps:")
.right(Integer.toString(session.getTotalLaps())) .right(Integer.toString(session.getTotalLaps()))
@@ -93,6 +89,6 @@ class LapCounterOverlay extends Overlay
.build()); .build());
} }
return panelComponent.render(graphics); return super.render(graphics);
} }
} }

View File

@@ -29,18 +29,16 @@ import java.awt.Dimension;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import javax.inject.Inject; import javax.inject.Inject;
import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG; import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG;
import net.runelite.client.ui.overlay.Overlay;
import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE;
import net.runelite.client.ui.overlay.OverlayMenuEntry; import net.runelite.client.ui.overlay.OverlayMenuEntry;
import net.runelite.client.ui.overlay.OverlayPanel;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.components.PanelComponent;
import net.runelite.client.ui.overlay.components.TitleComponent; import net.runelite.client.ui.overlay.components.TitleComponent;
class AttackStylesOverlay extends Overlay class AttackStylesOverlay extends OverlayPanel
{ {
private final AttackStylesPlugin plugin; private final AttackStylesPlugin plugin;
private final AttackStylesConfig config; private final AttackStylesConfig config;
private final PanelComponent panelComponent = new PanelComponent();
@Inject @Inject
private AttackStylesOverlay(AttackStylesPlugin plugin, AttackStylesConfig config) private AttackStylesOverlay(AttackStylesPlugin plugin, AttackStylesConfig config)
@@ -55,7 +53,6 @@ class AttackStylesOverlay extends Overlay
@Override @Override
public Dimension render(Graphics2D graphics) public Dimension render(Graphics2D graphics)
{ {
panelComponent.getChildren().clear();
boolean warnedSkillSelected = plugin.isWarnedSkillSelected(); boolean warnedSkillSelected = plugin.isWarnedSkillSelected();
if (warnedSkillSelected || config.alwaysShowStyle()) if (warnedSkillSelected || config.alwaysShowStyle())
@@ -78,7 +75,7 @@ class AttackStylesOverlay extends Overlay
graphics.getFontMetrics().stringWidth(attackStyleString) + 10, graphics.getFontMetrics().stringWidth(attackStyleString) + 10,
0)); 0));
return panelComponent.render(graphics); return super.render(graphics);
} }
return null; return null;

View File

@@ -33,18 +33,16 @@ import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG;
import net.runelite.api.Varbits; import net.runelite.api.Varbits;
import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.Widget;
import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetInfo;
import net.runelite.client.ui.overlay.Overlay;
import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE;
import net.runelite.client.ui.overlay.OverlayMenuEntry; import net.runelite.client.ui.overlay.OverlayMenuEntry;
import net.runelite.client.ui.overlay.OverlayPanel;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.OverlayPriority; import net.runelite.client.ui.overlay.OverlayPriority;
import net.runelite.client.ui.overlay.components.LineComponent; import net.runelite.client.ui.overlay.components.LineComponent;
import net.runelite.client.ui.overlay.components.PanelComponent;
public class BarrowsBrotherSlainOverlay extends Overlay public class BarrowsBrotherSlainOverlay extends OverlayPanel
{ {
private final Client client; private final Client client;
private final PanelComponent panelComponent = new PanelComponent();
@Inject @Inject
private BarrowsBrotherSlainOverlay(BarrowsPlugin plugin, Client client) private BarrowsBrotherSlainOverlay(BarrowsPlugin plugin, Client client)
@@ -74,8 +72,6 @@ public class BarrowsBrotherSlainOverlay extends Overlay
potential.setHidden(true); potential.setHidden(true);
} }
panelComponent.getChildren().clear();
for (BarrowsBrothers brother : BarrowsBrothers.values()) for (BarrowsBrothers brother : BarrowsBrothers.values())
{ {
final boolean brotherSlain = client.getVar(brother.getKilledVarbit()) > 0; final boolean brotherSlain = client.getVar(brother.getKilledVarbit()) > 0;
@@ -94,6 +90,6 @@ public class BarrowsBrotherSlainOverlay extends Overlay
.rightColor(rewardPercent >= 73.0f && rewardPercent <= 88.0f ? Color.GREEN : rewardPercent < 65.6f ? Color.WHITE : Color.YELLOW) .rightColor(rewardPercent >= 73.0f && rewardPercent <= 88.0f ? Color.GREEN : rewardPercent < 65.6f ? Color.WHITE : Color.YELLOW)
.build()); .build());
return panelComponent.render(graphics); return super.render(graphics);
} }
} }

View File

@@ -32,23 +32,21 @@ import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG;
import static net.runelite.api.Varbits.BLAST_FURNACE_COFFER; import static net.runelite.api.Varbits.BLAST_FURNACE_COFFER;
import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.Widget;
import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetInfo;
import net.runelite.client.ui.overlay.Overlay;
import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE;
import static org.apache.commons.lang3.time.DurationFormatUtils.formatDuration;
import net.runelite.client.ui.overlay.OverlayMenuEntry; import net.runelite.client.ui.overlay.OverlayMenuEntry;
import net.runelite.client.ui.overlay.OverlayPanel;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.components.LineComponent; import net.runelite.client.ui.overlay.components.LineComponent;
import net.runelite.client.ui.overlay.components.PanelComponent;
import net.runelite.client.util.QuantityFormatter; import net.runelite.client.util.QuantityFormatter;
import static org.apache.commons.lang3.time.DurationFormatUtils.formatDuration;
class BlastFurnaceCofferOverlay extends Overlay class BlastFurnaceCofferOverlay extends OverlayPanel
{ {
private static final float COST_PER_HOUR = 72000.0f; private static final float COST_PER_HOUR = 72000.0f;
private final Client client; private final Client client;
private final BlastFurnacePlugin plugin; private final BlastFurnacePlugin plugin;
private final BlastFurnaceConfig config; private final BlastFurnaceConfig config;
private final PanelComponent panelComponent = new PanelComponent();
@Inject @Inject
private BlastFurnaceCofferOverlay(Client client, BlastFurnacePlugin plugin, BlastFurnaceConfig config) private BlastFurnaceCofferOverlay(Client client, BlastFurnacePlugin plugin, BlastFurnaceConfig config)
@@ -71,8 +69,6 @@ class BlastFurnaceCofferOverlay extends Overlay
Widget sack = client.getWidget(WidgetInfo.BLAST_FURNACE_COFFER); Widget sack = client.getWidget(WidgetInfo.BLAST_FURNACE_COFFER);
panelComponent.getChildren().clear();
if (sack != null) if (sack != null)
{ {
final int coffer = client.getVar(BLAST_FURNACE_COFFER); final int coffer = client.getVar(BLAST_FURNACE_COFFER);
@@ -95,6 +91,6 @@ class BlastFurnaceCofferOverlay extends Overlay
} }
} }
return panelComponent.render(graphics); return super.render(graphics);
} }
} }

View File

@@ -31,19 +31,17 @@ import javax.inject.Inject;
import net.runelite.api.Client; import net.runelite.api.Client;
import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG; import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG;
import net.runelite.client.game.ItemManager; import net.runelite.client.game.ItemManager;
import net.runelite.client.ui.overlay.Overlay;
import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE;
import net.runelite.client.ui.overlay.OverlayMenuEntry; import net.runelite.client.ui.overlay.OverlayMenuEntry;
import net.runelite.client.ui.overlay.OverlayPanel;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.components.ComponentOrientation; import net.runelite.client.ui.overlay.components.ComponentOrientation;
import net.runelite.client.ui.overlay.components.ImageComponent; import net.runelite.client.ui.overlay.components.ImageComponent;
import net.runelite.client.ui.overlay.components.PanelComponent;
class BlastFurnaceOverlay extends Overlay class BlastFurnaceOverlay extends OverlayPanel
{ {
private final Client client; private final Client client;
private final BlastFurnacePlugin plugin; private final BlastFurnacePlugin plugin;
private final PanelComponent imagePanelComponent = new PanelComponent();
@Inject @Inject
private ItemManager itemManager; private ItemManager itemManager;
@@ -55,7 +53,7 @@ class BlastFurnaceOverlay extends Overlay
this.plugin = plugin; this.plugin = plugin;
this.client = client; this.client = client;
setPosition(OverlayPosition.TOP_LEFT); setPosition(OverlayPosition.TOP_LEFT);
imagePanelComponent.setOrientation(ComponentOrientation.HORIZONTAL); panelComponent.setOrientation(ComponentOrientation.HORIZONTAL);
getMenuEntries().add(new OverlayMenuEntry(RUNELITE_OVERLAY_CONFIG, OPTION_CONFIGURE, "Blast furnace overlay")); getMenuEntries().add(new OverlayMenuEntry(RUNELITE_OVERLAY_CONFIG, OPTION_CONFIGURE, "Blast furnace overlay"));
} }
@@ -67,8 +65,6 @@ class BlastFurnaceOverlay extends Overlay
return null; return null;
} }
imagePanelComponent.getChildren().clear();
for (BarsOres varbit : BarsOres.values()) for (BarsOres varbit : BarsOres.values())
{ {
int amount = client.getVar(varbit.getVarbit()); int amount = client.getVar(varbit.getVarbit());
@@ -78,10 +74,10 @@ class BlastFurnaceOverlay extends Overlay
continue; continue;
} }
imagePanelComponent.getChildren().add(new ImageComponent(getImage(varbit.getItemID(), amount))); panelComponent.getChildren().add(new ImageComponent(getImage(varbit.getItemID(), amount)));
} }
return imagePanelComponent.render(graphics); return super.render(graphics);
} }
private BufferedImage getImage(int itemID, int amount) private BufferedImage getImage(int itemID, int amount)

View File

@@ -35,20 +35,18 @@ import net.runelite.api.Varbits;
import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.Widget;
import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetInfo;
import net.runelite.client.game.ItemManager; import net.runelite.client.game.ItemManager;
import net.runelite.client.ui.overlay.Overlay;
import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE;
import net.runelite.client.ui.overlay.OverlayMenuEntry; import net.runelite.client.ui.overlay.OverlayMenuEntry;
import net.runelite.client.ui.overlay.OverlayPanel;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.components.ComponentOrientation; import net.runelite.client.ui.overlay.components.ComponentOrientation;
import net.runelite.client.ui.overlay.components.ImageComponent; import net.runelite.client.ui.overlay.components.ImageComponent;
import net.runelite.client.ui.overlay.components.PanelComponent;
class BlastMineOreCountOverlay extends Overlay class BlastMineOreCountOverlay extends OverlayPanel
{ {
private final Client client; private final Client client;
private final BlastMinePluginConfig config; private final BlastMinePluginConfig config;
private final ItemManager itemManager; private final ItemManager itemManager;
private final PanelComponent panelComponent = new PanelComponent();
@Inject @Inject
private BlastMineOreCountOverlay(BlastMinePlugin plugin, Client client, BlastMinePluginConfig config, ItemManager itemManager) private BlastMineOreCountOverlay(BlastMinePlugin plugin, Client client, BlastMinePluginConfig config, ItemManager itemManager)
@@ -72,8 +70,6 @@ class BlastMineOreCountOverlay extends Overlay
return null; return null;
} }
panelComponent.getChildren().clear();
if (config.showOreOverlay()) if (config.showOreOverlay())
{ {
blastMineWidget.setHidden(true); blastMineWidget.setHidden(true);
@@ -88,7 +84,7 @@ class BlastMineOreCountOverlay extends Overlay
blastMineWidget.setHidden(false); blastMineWidget.setHidden(false);
} }
return panelComponent.render(graphics); return super.render(graphics);
} }
private BufferedImage getImage(int itemID, int amount) private BufferedImage getImage(int itemID, int amount)

View File

@@ -32,20 +32,18 @@ import javax.inject.Inject;
import net.runelite.api.Client; import net.runelite.api.Client;
import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG; import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG;
import net.runelite.api.Skill; import net.runelite.api.Skill;
import net.runelite.client.ui.overlay.Overlay;
import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE;
import net.runelite.client.ui.overlay.OverlayMenuEntry; import net.runelite.client.ui.overlay.OverlayMenuEntry;
import net.runelite.client.ui.overlay.OverlayPanel;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.OverlayPriority; import net.runelite.client.ui.overlay.OverlayPriority;
import net.runelite.client.ui.overlay.components.LineComponent; import net.runelite.client.ui.overlay.components.LineComponent;
import net.runelite.client.ui.overlay.components.PanelComponent;
import net.runelite.client.util.ColorUtil; import net.runelite.client.util.ColorUtil;
class BoostsOverlay extends Overlay class BoostsOverlay extends OverlayPanel
{ {
private final Client client; private final Client client;
private final BoostsConfig config; private final BoostsConfig config;
private final PanelComponent panelComponent = new PanelComponent();
private final BoostsPlugin plugin; private final BoostsPlugin plugin;
@Inject @Inject
@@ -68,8 +66,6 @@ class BoostsOverlay extends Overlay
return null; return null;
} }
panelComponent.getChildren().clear();
int nextChange = plugin.getChangeDownTicks(); int nextChange = plugin.getChangeDownTicks();
if (nextChange != -1) if (nextChange != -1)
@@ -94,7 +90,7 @@ class BoostsOverlay extends Overlay
if (boostedSkills.isEmpty()) if (boostedSkills.isEmpty())
{ {
return panelComponent.render(graphics); return super.render(graphics);
} }
if (plugin.canShowBoosts()) if (plugin.canShowBoosts())
@@ -129,7 +125,7 @@ class BoostsOverlay extends Overlay
} }
} }
return panelComponent.render(graphics); return super.render(graphics);
} }
private Color getTextColor(int boost) private Color getTextColor(int boost)

View File

@@ -41,15 +41,13 @@ import net.runelite.client.plugins.cluescrolls.clues.item.AnyRequirementCollecti
import net.runelite.client.plugins.cluescrolls.clues.item.ItemRequirement; import net.runelite.client.plugins.cluescrolls.clues.item.ItemRequirement;
import static net.runelite.client.plugins.cluescrolls.clues.item.ItemRequirements.item; import static net.runelite.client.plugins.cluescrolls.clues.item.ItemRequirements.item;
import net.runelite.client.plugins.cluescrolls.clues.item.SingleItemRequirement; import net.runelite.client.plugins.cluescrolls.clues.item.SingleItemRequirement;
import net.runelite.client.ui.overlay.Overlay;
import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE;
import net.runelite.client.ui.overlay.OverlayMenuEntry; import net.runelite.client.ui.overlay.OverlayMenuEntry;
import net.runelite.client.ui.overlay.OverlayPanel;
import net.runelite.client.ui.overlay.OverlayPriority; import net.runelite.client.ui.overlay.OverlayPriority;
import net.runelite.client.ui.overlay.components.ComponentConstants;
import net.runelite.client.ui.overlay.components.LineComponent; import net.runelite.client.ui.overlay.components.LineComponent;
import net.runelite.client.ui.overlay.components.PanelComponent;
public class ClueScrollOverlay extends Overlay public class ClueScrollOverlay extends OverlayPanel
{ {
private static final ItemRequirement HAS_SPADE = new SingleItemRequirement(SPADE); private static final ItemRequirement HAS_SPADE = new SingleItemRequirement(SPADE);
private static final ItemRequirement HAS_LIGHT = new AnyRequirementCollection("Light Source", private static final ItemRequirement HAS_LIGHT = new AnyRequirementCollection("Light Source",
@@ -79,7 +77,6 @@ public class ClueScrollOverlay extends Overlay
public static final Color TITLED_CONTENT_COLOR = new Color(190, 190, 190); public static final Color TITLED_CONTENT_COLOR = new Color(190, 190, 190);
private final ClueScrollPlugin plugin; private final ClueScrollPlugin plugin;
private final PanelComponent panelComponent = new PanelComponent();
private final Client client; private final Client client;
@Inject @Inject
@@ -103,9 +100,6 @@ public class ClueScrollOverlay extends Overlay
return null; return null;
} }
panelComponent.getChildren().clear();
panelComponent.setPreferredSize(new Dimension(ComponentConstants.STANDARD_WIDTH, 0));
clue.makeOverlayHint(panelComponent, plugin); clue.makeOverlayHint(panelComponent, plugin);
final Item[] inventoryItems = plugin.getInventoryItems(); final Item[] inventoryItems = plugin.getInventoryItems();
@@ -129,6 +123,6 @@ public class ClueScrollOverlay extends Overlay
panelComponent.getChildren().add(LineComponent.builder().left("Requires Light Source!").leftColor(Color.RED).build()); panelComponent.getChildren().add(LineComponent.builder().left("Requires Light Source!").leftColor(Color.RED).build());
} }
return panelComponent.render(graphics); return super.render(graphics);
} }
} }

View File

@@ -26,7 +26,6 @@
package net.runelite.client.plugins.cluescrolls.clues; package net.runelite.client.plugins.cluescrolls.clues;
import java.awt.Color; import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
@@ -59,7 +58,6 @@ import net.runelite.client.ui.overlay.components.TitleComponent;
@Slf4j @Slf4j
public class HotColdClue extends ClueScroll implements LocationClueScroll, LocationsClueScroll, TextClueScroll, NpcClueScroll public class HotColdClue extends ClueScroll implements LocationClueScroll, LocationsClueScroll, TextClueScroll, NpcClueScroll
{ {
private static final int HOT_COLD_PANEL_WIDTH = 200;
private static final HotColdClue BEGINNER_CLUE = new HotColdClue("Buried beneath the ground, who knows where it's found. Lucky for you, A man called Reldo may have a clue.", private static final HotColdClue BEGINNER_CLUE = new HotColdClue("Buried beneath the ground, who knows where it's found. Lucky for you, A man called Reldo may have a clue.",
"Reldo", "Reldo",
"Speak to Reldo to receive a strange device.", "Speak to Reldo to receive a strange device.",
@@ -141,7 +139,6 @@ public class HotColdClue extends ClueScroll implements LocationClueScroll, Locat
panelComponent.getChildren().add(TitleComponent.builder() panelComponent.getChildren().add(TitleComponent.builder()
.text("Hot/Cold Clue") .text("Hot/Cold Clue")
.build()); .build());
panelComponent.setPreferredSize(new Dimension(HOT_COLD_PANEL_WIDTH, 0));
// strange device has not been tested yet, show how to get it // strange device has not been tested yet, show how to get it
if (hotColdSolver.getLastWorldPoint() == null && location == null) if (hotColdSolver.getLastWorldPoint() == null && location == null)

View File

@@ -29,8 +29,8 @@ import java.awt.Color;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.time.Instant;
import java.time.Duration; import java.time.Duration;
import java.time.Instant;
import javax.inject.Inject; import javax.inject.Inject;
import static net.runelite.api.AnimationID.COOKING_FIRE; import static net.runelite.api.AnimationID.COOKING_FIRE;
import static net.runelite.api.AnimationID.COOKING_RANGE; import static net.runelite.api.AnimationID.COOKING_RANGE;
@@ -39,15 +39,14 @@ import static net.runelite.api.MenuAction.RUNELITE_OVERLAY;
import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG; import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG;
import net.runelite.api.Skill; import net.runelite.api.Skill;
import net.runelite.client.plugins.xptracker.XpTrackerService; import net.runelite.client.plugins.xptracker.XpTrackerService;
import net.runelite.client.ui.overlay.Overlay;
import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE;
import net.runelite.client.ui.overlay.OverlayMenuEntry; import net.runelite.client.ui.overlay.OverlayMenuEntry;
import net.runelite.client.ui.overlay.OverlayPanel;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.components.LineComponent; import net.runelite.client.ui.overlay.components.LineComponent;
import net.runelite.client.ui.overlay.components.PanelComponent;
import net.runelite.client.ui.overlay.components.TitleComponent; import net.runelite.client.ui.overlay.components.TitleComponent;
class CookingOverlay extends Overlay class CookingOverlay extends OverlayPanel
{ {
private static final int COOK_TIMEOUT = 3; private static final int COOK_TIMEOUT = 3;
private static final DecimalFormat FORMAT = new DecimalFormat("#.#"); private static final DecimalFormat FORMAT = new DecimalFormat("#.#");
@@ -57,7 +56,6 @@ class CookingOverlay extends Overlay
private final CookingPlugin plugin; private final CookingPlugin plugin;
private final CookingConfig config; private final CookingConfig config;
private final XpTrackerService xpTrackerService; private final XpTrackerService xpTrackerService;
private final PanelComponent panelComponent = new PanelComponent();
@Inject @Inject
private CookingOverlay(Client client, CookingPlugin plugin, CookingConfig config, XpTrackerService xpTrackerService) private CookingOverlay(Client client, CookingPlugin plugin, CookingConfig config, XpTrackerService xpTrackerService)
@@ -81,8 +79,6 @@ class CookingOverlay extends Overlay
return null; return null;
} }
panelComponent.getChildren().clear();
if (isCooking() || Duration.between(session.getLastCookingAction(), Instant.now()).getSeconds() < COOK_TIMEOUT) if (isCooking() || Duration.between(session.getLastCookingAction(), Instant.now()).getSeconds() < COOK_TIMEOUT)
{ {
panelComponent.getChildren().add(TitleComponent.builder() panelComponent.getChildren().add(TitleComponent.builder()
@@ -108,7 +104,7 @@ class CookingOverlay extends Overlay
.right(session.getBurnAmount() + (session.getBurnAmount() >= 1 ? " (" + FORMAT.format(session.getBurntPercentage()) + "%)" : "")) .right(session.getBurnAmount() + (session.getBurnAmount() >= 1 ? " (" + FORMAT.format(session.getBurntPercentage()) + "%)" : ""))
.build()); .build());
return panelComponent.render(graphics); return super.render(graphics);
} }
private boolean isCooking() private boolean isCooking()

View File

@@ -36,24 +36,21 @@ import net.runelite.api.Varbits;
import net.runelite.api.coords.WorldPoint; import net.runelite.api.coords.WorldPoint;
import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.Widget;
import net.runelite.api.widgets.WidgetID; import net.runelite.api.widgets.WidgetID;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayLayer; import net.runelite.client.ui.overlay.OverlayLayer;
import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE;
import net.runelite.client.ui.overlay.OverlayMenuEntry; import net.runelite.client.ui.overlay.OverlayMenuEntry;
import net.runelite.client.ui.overlay.OverlayPanel;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.OverlayPriority; import net.runelite.client.ui.overlay.OverlayPriority;
import net.runelite.client.ui.overlay.components.ComponentConstants; import net.runelite.client.ui.overlay.components.ComponentConstants;
import net.runelite.client.ui.overlay.components.LineComponent; import net.runelite.client.ui.overlay.components.LineComponent;
import net.runelite.client.ui.overlay.components.PanelComponent;
class CorpDamageOverlay extends Overlay class CorpDamageOverlay extends OverlayPanel
{ {
private final Client client; private final Client client;
private final CorpPlugin corpPlugin; private final CorpPlugin corpPlugin;
private final CorpConfig config; private final CorpConfig config;
private final PanelComponent panelComponent = new PanelComponent();
@Inject @Inject
private CorpDamageOverlay(Client client, CorpPlugin corpPlugin, CorpConfig config) private CorpDamageOverlay(Client client, CorpPlugin corpPlugin, CorpConfig config)
{ {
@@ -89,8 +86,6 @@ class CorpDamageOverlay extends Overlay
// estimate how much damage is required for kill based on number of players // estimate how much damage is required for kill based on number of players
int damageForKill = players != 0 ? totalDamage / players : 0; int damageForKill = players != 0 ? totalDamage / players : 0;
panelComponent.getChildren().clear();
NPC core = corpPlugin.getCore(); NPC core = corpPlugin.getCore();
if (core != null) if (core != null)
{ {
@@ -135,6 +130,6 @@ class CorpDamageOverlay extends Overlay
.build()); .build());
} }
return panelComponent.render(graphics); return super.render(graphics);
} }
} }

View File

@@ -28,24 +28,21 @@ import java.awt.Dimension;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import javax.inject.Inject; import javax.inject.Inject;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayPanel;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.components.LineComponent; import net.runelite.client.ui.overlay.components.LineComponent;
import net.runelite.client.ui.overlay.components.PanelComponent;
import net.runelite.client.ui.overlay.components.TitleComponent; import net.runelite.client.ui.overlay.components.TitleComponent;
public class CameraOverlay extends Overlay public class CameraOverlay extends OverlayPanel
{ {
private final Client client; private final Client client;
private final DevToolsPlugin plugin; private final DevToolsPlugin plugin;
private final PanelComponent panelComponent = new PanelComponent();
@Inject @Inject
CameraOverlay(Client client, DevToolsPlugin plugin) CameraOverlay(Client client, DevToolsPlugin plugin)
{ {
this.client = client; this.client = client;
this.plugin = plugin; this.plugin = plugin;
panelComponent.setPreferredSize(new Dimension(150, 0));
setPosition(OverlayPosition.TOP_LEFT); setPosition(OverlayPosition.TOP_LEFT);
} }
@@ -57,8 +54,6 @@ public class CameraOverlay extends Overlay
return null; return null;
} }
panelComponent.getChildren().clear();
panelComponent.getChildren().add(TitleComponent.builder() panelComponent.getChildren().add(TitleComponent.builder()
.text("Camera") .text("Camera")
.build()); .build());
@@ -93,6 +88,6 @@ public class CameraOverlay extends Overlay
.right("" + client.getScale()) .right("" + client.getScale())
.build()); .build());
return panelComponent.render(graphics); return super.render(graphics);
} }
} }

View File

@@ -32,23 +32,20 @@ import net.runelite.api.Client;
import static net.runelite.api.Constants.CHUNK_SIZE; import static net.runelite.api.Constants.CHUNK_SIZE;
import net.runelite.api.coords.LocalPoint; import net.runelite.api.coords.LocalPoint;
import net.runelite.api.coords.WorldPoint; import net.runelite.api.coords.WorldPoint;
import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayPanel;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.components.LineComponent; import net.runelite.client.ui.overlay.components.LineComponent;
import net.runelite.client.ui.overlay.components.PanelComponent;
public class LocationOverlay extends Overlay public class LocationOverlay extends OverlayPanel
{ {
private final Client client; private final Client client;
private final DevToolsPlugin plugin; private final DevToolsPlugin plugin;
private final PanelComponent panelComponent = new PanelComponent();
@Inject @Inject
LocationOverlay(Client client, DevToolsPlugin plugin) LocationOverlay(Client client, DevToolsPlugin plugin)
{ {
this.client = client; this.client = client;
this.plugin = plugin; this.plugin = plugin;
panelComponent.setPreferredSize(new Dimension(150, 0));
setPosition(OverlayPosition.TOP_LEFT); setPosition(OverlayPosition.TOP_LEFT);
} }
@@ -60,7 +57,6 @@ public class LocationOverlay extends Overlay
return null; return null;
} }
panelComponent.getChildren().clear();
WorldPoint localWorld = client.getLocalPlayer().getWorldLocation(); WorldPoint localWorld = client.getLocalPlayer().getWorldLocation();
LocalPoint localPoint = client.getLocalPlayer().getLocalLocation(); LocalPoint localPoint = client.getLocalPlayer().getLocalLocation();
@@ -117,6 +113,6 @@ public class LocationOverlay extends Overlay
.build()); .build());
} }
return panelComponent.render(graphics); return super.render(graphics);
} }
} }

View File

@@ -34,12 +34,11 @@ import net.runelite.api.coords.LocalPoint;
import net.runelite.api.events.AreaSoundEffectPlayed; import net.runelite.api.events.AreaSoundEffectPlayed;
import net.runelite.api.events.SoundEffectPlayed; import net.runelite.api.events.SoundEffectPlayed;
import net.runelite.client.eventbus.Subscribe; import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayPanel;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.components.LineComponent; import net.runelite.client.ui.overlay.components.LineComponent;
import net.runelite.client.ui.overlay.components.PanelComponent;
class SoundEffectOverlay extends Overlay class SoundEffectOverlay extends OverlayPanel
{ {
private final static int MAX_LINES = 16; private final static int MAX_LINES = 16;
private final static Color COLOR_SOUND_EFFECT = Color.WHITE; private final static Color COLOR_SOUND_EFFECT = Color.WHITE;
@@ -48,18 +47,17 @@ class SoundEffectOverlay extends Overlay
private final Client client; private final Client client;
private final DevToolsPlugin plugin; private final DevToolsPlugin plugin;
private final PanelComponent panelComponent = new PanelComponent();
@Inject @Inject
SoundEffectOverlay(Client client, DevToolsPlugin plugin) SoundEffectOverlay(Client client, DevToolsPlugin plugin)
{ {
this.client = client; this.client = client;
this.plugin = plugin; this.plugin = plugin;
panelComponent.setPreferredSize(new Dimension(200, 0));
panelComponent.getChildren().add(LineComponent.builder() panelComponent.getChildren().add(LineComponent.builder()
.left("Sound Effects") .left("Sound Effects")
.leftColor(Color.CYAN) .leftColor(Color.CYAN)
.build()); .build());
setClearChildren(false);
setPosition(OverlayPosition.TOP_LEFT); setPosition(OverlayPosition.TOP_LEFT);
} }
@@ -71,7 +69,7 @@ class SoundEffectOverlay extends Overlay
return null; return null;
} }
return panelComponent.render(graphics); return super.render(graphics);
} }
@Subscribe @Subscribe

View File

@@ -34,18 +34,17 @@ import javax.inject.Inject;
import net.runelite.api.Client; import net.runelite.api.Client;
import static net.runelite.api.MenuAction.RUNELITE_OVERLAY; import static net.runelite.api.MenuAction.RUNELITE_OVERLAY;
import net.runelite.api.Player; import net.runelite.api.Player;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayMenuEntry; import net.runelite.client.ui.overlay.OverlayMenuEntry;
import net.runelite.client.ui.overlay.OverlayPanel;
import net.runelite.client.ui.overlay.components.ComponentConstants; import net.runelite.client.ui.overlay.components.ComponentConstants;
import net.runelite.client.ui.overlay.components.LineComponent; import net.runelite.client.ui.overlay.components.LineComponent;
import net.runelite.client.ui.overlay.components.PanelComponent;
import net.runelite.client.ui.overlay.components.TitleComponent; import net.runelite.client.ui.overlay.components.TitleComponent;
import net.runelite.client.ui.overlay.tooltip.Tooltip; import net.runelite.client.ui.overlay.tooltip.Tooltip;
import net.runelite.client.ui.overlay.tooltip.TooltipManager; import net.runelite.client.ui.overlay.tooltip.TooltipManager;
import net.runelite.client.util.QuantityFormatter; import net.runelite.client.util.QuantityFormatter;
import net.runelite.client.ws.PartyService; import net.runelite.client.ws.PartyService;
class DpsOverlay extends Overlay class DpsOverlay extends OverlayPanel
{ {
private static final DecimalFormat DPS_FORMAT = new DecimalFormat("#0.0"); private static final DecimalFormat DPS_FORMAT = new DecimalFormat("#0.0");
private static final int PANEL_WIDTH_OFFSET = 10; // assumes 8 for panel component border + 2px between left and right private static final int PANEL_WIDTH_OFFSET = 10; // assumes 8 for panel component border + 2px between left and right
@@ -60,8 +59,6 @@ class DpsOverlay extends Overlay
private final Client client; private final Client client;
private final TooltipManager tooltipManager; private final TooltipManager tooltipManager;
private final PanelComponent panelComponent = new PanelComponent();
@Inject @Inject
DpsOverlay(DpsCounterPlugin dpsCounterPlugin, DpsConfig dpsConfig, PartyService partyService, Client client, DpsOverlay(DpsCounterPlugin dpsCounterPlugin, DpsConfig dpsConfig, PartyService partyService, Client client,
TooltipManager tooltipManager) TooltipManager tooltipManager)
@@ -108,8 +105,6 @@ class DpsOverlay extends Overlay
DpsMember total = dpsCounterPlugin.getTotal(); DpsMember total = dpsCounterPlugin.getTotal();
boolean paused = total.isPaused(); boolean paused = total.isPaused();
panelComponent.getChildren().clear();
final String title = (inParty ? "Party " : "") + (showDamage ? "Damage" : "DPS") + (paused ? " (paused)" : ""); final String title = (inParty ? "Party " : "") + (showDamage ? "Damage" : "DPS") + (paused ? " (paused)" : "");
panelComponent.getChildren().add( panelComponent.getChildren().add(
TitleComponent.builder() TitleComponent.builder()
@@ -151,7 +146,7 @@ class DpsOverlay extends Overlay
} }
} }
return panelComponent.render(graphics); return super.render(graphics);
} }
void setPaused(boolean paused) void setPaused(boolean paused)

View File

@@ -24,12 +24,12 @@
*/ */
package net.runelite.client.plugins.fishing; package net.runelite.client.plugins.fishing;
import com.google.common.collect.ImmutableSet;
import java.awt.Color; import java.awt.Color;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import java.util.Set; import java.util.Set;
import javax.inject.Inject; import javax.inject.Inject;
import com.google.common.collect.ImmutableSet;
import net.runelite.api.AnimationID; import net.runelite.api.AnimationID;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.GraphicID; import net.runelite.api.GraphicID;
@@ -37,15 +37,14 @@ import static net.runelite.api.MenuAction.RUNELITE_OVERLAY;
import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG; import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG;
import net.runelite.api.Skill; import net.runelite.api.Skill;
import net.runelite.client.plugins.xptracker.XpTrackerService; import net.runelite.client.plugins.xptracker.XpTrackerService;
import net.runelite.client.ui.overlay.Overlay;
import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE;
import net.runelite.client.ui.overlay.OverlayMenuEntry; import net.runelite.client.ui.overlay.OverlayMenuEntry;
import net.runelite.client.ui.overlay.OverlayPanel;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.components.LineComponent; import net.runelite.client.ui.overlay.components.LineComponent;
import net.runelite.client.ui.overlay.components.PanelComponent;
import net.runelite.client.ui.overlay.components.TitleComponent; import net.runelite.client.ui.overlay.components.TitleComponent;
class FishingOverlay extends Overlay class FishingOverlay extends OverlayPanel
{ {
private static final String FISHING_SPOT = "Fishing spot"; private static final String FISHING_SPOT = "Fishing spot";
static final String FISHING_RESET = "Reset"; static final String FISHING_RESET = "Reset";
@@ -77,8 +76,6 @@ class FishingOverlay extends Overlay
private final FishingConfig config; private final FishingConfig config;
private final XpTrackerService xpTrackerService; private final XpTrackerService xpTrackerService;
private final PanelComponent panelComponent = new PanelComponent();
@Inject @Inject
public FishingOverlay(Client client, FishingPlugin plugin, FishingConfig config, XpTrackerService xpTrackerService) public FishingOverlay(Client client, FishingPlugin plugin, FishingConfig config, XpTrackerService xpTrackerService)
{ {
@@ -100,7 +97,6 @@ class FishingOverlay extends Overlay
return null; return null;
} }
panelComponent.getChildren().clear();
if (client.getLocalPlayer().getInteracting() != null if (client.getLocalPlayer().getInteracting() != null
&& client.getLocalPlayer().getInteracting().getName().contains(FISHING_SPOT) && client.getLocalPlayer().getInteracting().getName().contains(FISHING_SPOT)
&& client.getLocalPlayer().getInteracting().getGraphic() != GraphicID.FLYING_FISH && client.getLocalPlayer().getInteracting().getGraphic() != GraphicID.FLYING_FISH
@@ -136,6 +132,6 @@ class FishingOverlay extends Overlay
} }
} }
return panelComponent.render(graphics); return super.render(graphics);
} }
} }

View File

@@ -36,13 +36,12 @@ import net.runelite.api.Item;
import net.runelite.api.ItemComposition; import net.runelite.api.ItemComposition;
import net.runelite.api.ItemContainer; import net.runelite.api.ItemContainer;
import net.runelite.client.game.ItemManager; import net.runelite.client.game.ItemManager;
import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayPanel;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.components.ComponentOrientation; import net.runelite.client.ui.overlay.components.ComponentOrientation;
import net.runelite.client.ui.overlay.components.ImageComponent; import net.runelite.client.ui.overlay.components.ImageComponent;
import net.runelite.client.ui.overlay.components.PanelComponent;
class InventoryViewerOverlay extends Overlay class InventoryViewerOverlay extends OverlayPanel
{ {
private static final int INVENTORY_SIZE = 28; private static final int INVENTORY_SIZE = 28;
private static final ImageComponent PLACEHOLDER_IMAGE = new ImageComponent( private static final ImageComponent PLACEHOLDER_IMAGE = new ImageComponent(
@@ -51,8 +50,6 @@ class InventoryViewerOverlay extends Overlay
private final Client client; private final Client client;
private final ItemManager itemManager; private final ItemManager itemManager;
private final PanelComponent panelComponent = new PanelComponent();
@Inject @Inject
private InventoryViewerOverlay(Client client, ItemManager itemManager) private InventoryViewerOverlay(Client client, ItemManager itemManager)
{ {
@@ -75,8 +72,6 @@ class InventoryViewerOverlay extends Overlay
return null; return null;
} }
panelComponent.getChildren().clear();
final Item[] items = itemContainer.getItems(); final Item[] items = itemContainer.getItems();
for (int i = 0; i < INVENTORY_SIZE; i++) for (int i = 0; i < INVENTORY_SIZE; i++)
@@ -99,7 +94,7 @@ class InventoryViewerOverlay extends Overlay
panelComponent.getChildren().add(PLACEHOLDER_IMAGE); panelComponent.getChildren().add(PLACEHOLDER_IMAGE);
} }
return panelComponent.render(graphics); return super.render(graphics);
} }
private BufferedImage getImage(Item item) private BufferedImage getImage(Item item)

View File

@@ -24,25 +24,23 @@
*/ */
package net.runelite.client.plugins.kourendlibrary; package net.runelite.client.plugins.kourendlibrary;
import java.awt.Dimension;
import java.awt.Graphics2D;
import javax.inject.Inject;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.Player; import net.runelite.api.Player;
import net.runelite.api.coords.WorldPoint; import net.runelite.api.coords.WorldPoint;
import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayPanel;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.OverlayPriority; import net.runelite.client.ui.overlay.OverlayPriority;
import net.runelite.client.ui.overlay.components.LineComponent; import net.runelite.client.ui.overlay.components.LineComponent;
import net.runelite.client.ui.overlay.components.PanelComponent;
import javax.inject.Inject;
import java.awt.Dimension;
import java.awt.Graphics2D;
class KourendLibraryTutorialOverlay extends Overlay class KourendLibraryTutorialOverlay extends OverlayPanel
{ {
private final Client client; private final Client client;
private final KourendLibraryConfig config; private final KourendLibraryConfig config;
private final Library library; private final Library library;
private final PanelComponent panelComponent;
private final LineComponent noDataMessageComponent; private final LineComponent noDataMessageComponent;
private final LineComponent incompleteMessageComponent; private final LineComponent incompleteMessageComponent;
private final LineComponent completeMessageComponent; private final LineComponent completeMessageComponent;
@@ -55,7 +53,6 @@ class KourendLibraryTutorialOverlay extends Overlay
this.config = config; this.config = config;
this.library = library; this.library = library;
panelComponent = new PanelComponent();
panelComponent.setPreferredSize(new Dimension(177, 0)); panelComponent.setPreferredSize(new Dimension(177, 0));
noDataMessageComponent = LineComponent.builder().left("Click on the white squares to start finding books.").build(); noDataMessageComponent = LineComponent.builder().left("Click on the white squares to start finding books.").build();
@@ -87,8 +84,6 @@ class KourendLibraryTutorialOverlay extends Overlay
return null; return null;
} }
panelComponent.getChildren().clear();
switch (library.getState()) switch (library.getState())
{ {
case NO_DATA: case NO_DATA:
@@ -104,6 +99,6 @@ class KourendLibraryTutorialOverlay extends Overlay
break; break;
} }
return panelComponent.render(graphics); return super.render(graphics);
} }
} }

View File

@@ -30,20 +30,18 @@ import java.time.Duration;
import java.time.Instant; import java.time.Instant;
import javax.inject.Inject; import javax.inject.Inject;
import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG; import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG;
import net.runelite.client.ui.overlay.Overlay;
import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE;
import net.runelite.client.ui.overlay.OverlayMenuEntry; import net.runelite.client.ui.overlay.OverlayMenuEntry;
import net.runelite.client.ui.overlay.OverlayPanel;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.components.LineComponent; import net.runelite.client.ui.overlay.components.LineComponent;
import net.runelite.client.ui.overlay.components.PanelComponent;
import net.runelite.client.ui.overlay.components.TitleComponent; import net.runelite.client.ui.overlay.components.TitleComponent;
public class MotherlodeGemOverlay extends Overlay public class MotherlodeGemOverlay extends OverlayPanel
{ {
private final MotherlodePlugin plugin; private final MotherlodePlugin plugin;
private final MotherlodeSession motherlodeSession; private final MotherlodeSession motherlodeSession;
private final MotherlodeConfig config; private final MotherlodeConfig config;
private final PanelComponent panelComponent = new PanelComponent();
@Inject @Inject
MotherlodeGemOverlay(MotherlodePlugin plugin, MotherlodeSession motherlodeSession, MotherlodeConfig config) MotherlodeGemOverlay(MotherlodePlugin plugin, MotherlodeSession motherlodeSession, MotherlodeConfig config)
@@ -79,7 +77,6 @@ public class MotherlodeGemOverlay extends Overlay
int emeraldsFound = session.getEmeraldsFound(); int emeraldsFound = session.getEmeraldsFound();
int sapphiresFound = session.getSapphiresFound(); int sapphiresFound = session.getSapphiresFound();
panelComponent.getChildren().clear();
panelComponent.getChildren().add(TitleComponent.builder().text("Gems found").build()); panelComponent.getChildren().add(TitleComponent.builder().text("Gems found").build());
if (diamondsFound > 0) if (diamondsFound > 0)
@@ -114,6 +111,6 @@ public class MotherlodeGemOverlay extends Overlay
.build()); .build());
} }
return panelComponent.render(graphics); return super.render(graphics);
} }
} }

View File

@@ -27,18 +27,16 @@ package net.runelite.client.plugins.motherlode;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import javax.inject.Inject; import javax.inject.Inject;
import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayPanel;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.components.LineComponent; import net.runelite.client.ui.overlay.components.LineComponent;
import net.runelite.client.ui.overlay.components.PanelComponent;
import net.runelite.client.ui.overlay.components.TitleComponent; import net.runelite.client.ui.overlay.components.TitleComponent;
public class MotherlodeOreOverlay extends Overlay public class MotherlodeOreOverlay extends OverlayPanel
{ {
private final MotherlodePlugin plugin; private final MotherlodePlugin plugin;
private final MotherlodeSession motherlodeSession; private final MotherlodeSession motherlodeSession;
private final MotherlodeConfig config; private final MotherlodeConfig config;
private final PanelComponent panelComponent = new PanelComponent();
@Inject @Inject
MotherlodeOreOverlay(MotherlodePlugin plugin, MotherlodeSession motherlodeSession, MotherlodeConfig config) MotherlodeOreOverlay(MotherlodePlugin plugin, MotherlodeSession motherlodeSession, MotherlodeConfig config)
@@ -73,7 +71,6 @@ public class MotherlodeOreOverlay extends Overlay
return null; return null;
} }
panelComponent.getChildren().clear();
panelComponent.getChildren().add(TitleComponent.builder().text("Ores found").build()); panelComponent.getChildren().add(TitleComponent.builder().text("Ores found").build());
if (nuggetsFound > 0) if (nuggetsFound > 0)
@@ -124,6 +121,6 @@ public class MotherlodeOreOverlay extends Overlay
.build()); .build());
} }
return panelComponent.render(graphics); return super.render(graphics);
} }
} }

View File

@@ -32,29 +32,16 @@ import java.time.Duration;
import java.time.Instant; import java.time.Instant;
import java.util.Set; import java.util.Set;
import javax.inject.Inject; import javax.inject.Inject;
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_ADAMANT; import static net.runelite.api.AnimationID.*;
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_BLACK;
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_BRONZE;
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_CRYSTAL;
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_DRAGON;
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_DRAGON_OR;
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_DRAGON_UPGRADED;
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_GILDED;
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_INFERNAL;
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_IRON;
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_MITHRIL;
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_RUNE;
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_STEEL;
import net.runelite.api.Client; import net.runelite.api.Client;
import static net.runelite.api.MenuAction.RUNELITE_OVERLAY; import static net.runelite.api.MenuAction.RUNELITE_OVERLAY;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayMenuEntry; import net.runelite.client.ui.overlay.OverlayMenuEntry;
import net.runelite.client.ui.overlay.OverlayPanel;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.components.LineComponent; import net.runelite.client.ui.overlay.components.LineComponent;
import net.runelite.client.ui.overlay.components.PanelComponent;
import net.runelite.client.ui.overlay.components.TitleComponent; import net.runelite.client.ui.overlay.components.TitleComponent;
class MotherlodeOverlay extends Overlay class MotherlodeOverlay extends OverlayPanel
{ {
private static final Set<Integer> MINING_ANIMATION_IDS = ImmutableSet.of( private static final Set<Integer> MINING_ANIMATION_IDS = ImmutableSet.of(
MINING_MOTHERLODE_BRONZE, MINING_MOTHERLODE_IRON, MINING_MOTHERLODE_STEEL, MINING_MOTHERLODE_BRONZE, MINING_MOTHERLODE_IRON, MINING_MOTHERLODE_STEEL,
@@ -69,7 +56,6 @@ class MotherlodeOverlay extends Overlay
private final MotherlodePlugin plugin; private final MotherlodePlugin plugin;
private final MotherlodeSession motherlodeSession; private final MotherlodeSession motherlodeSession;
private final MotherlodeConfig config; private final MotherlodeConfig config;
private final PanelComponent panelComponent = new PanelComponent();
@Inject @Inject
MotherlodeOverlay(Client client, MotherlodePlugin plugin, MotherlodeSession motherlodeSession, MotherlodeConfig config) MotherlodeOverlay(Client client, MotherlodePlugin plugin, MotherlodeSession motherlodeSession, MotherlodeConfig config)
@@ -106,8 +92,6 @@ class MotherlodeOverlay extends Overlay
return null; return null;
} }
panelComponent.getChildren().clear();
if (config.showMiningState()) if (config.showMiningState())
{ {
if (MINING_ANIMATION_IDS.contains(client.getLocalPlayer().getAnimation())) if (MINING_ANIMATION_IDS.contains(client.getLocalPlayer().getAnimation()))
@@ -136,6 +120,6 @@ class MotherlodeOverlay extends Overlay
.right(session.getRecentMined() > 2 ? Integer.toString(session.getPerHour()) : "") .right(session.getRecentMined() > 2 ? Integer.toString(session.getPerHour()) : "")
.build()); .build());
return panelComponent.render(graphics); return super.render(graphics);
} }
} }

View File

@@ -35,17 +35,16 @@ import net.runelite.api.Varbits;
import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.Widget;
import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetInfo;
import net.runelite.client.game.ItemManager; import net.runelite.client.game.ItemManager;
import net.runelite.client.ui.overlay.Overlay;
import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE;
import net.runelite.client.ui.overlay.OverlayMenuEntry; import net.runelite.client.ui.overlay.OverlayMenuEntry;
import net.runelite.client.ui.overlay.OverlayPanel;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.OverlayPriority; import net.runelite.client.ui.overlay.OverlayPriority;
import net.runelite.client.ui.overlay.components.LineComponent; import net.runelite.client.ui.overlay.components.LineComponent;
import net.runelite.client.ui.overlay.components.PanelComponent;
import net.runelite.client.ui.overlay.infobox.InfoBoxManager; import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
import net.runelite.client.util.QuantityFormatter; import net.runelite.client.util.QuantityFormatter;
class NightmareZoneOverlay extends Overlay class NightmareZoneOverlay extends OverlayPanel
{ {
private final Client client; private final Client client;
private final NightmareZoneConfig config; private final NightmareZoneConfig config;
@@ -54,7 +53,6 @@ class NightmareZoneOverlay extends Overlay
private final ItemManager itemManager; private final ItemManager itemManager;
private AbsorptionCounter absorptionCounter; private AbsorptionCounter absorptionCounter;
private final PanelComponent panelComponent = new PanelComponent();
@Inject @Inject
NightmareZoneOverlay( NightmareZoneOverlay(
@@ -105,7 +103,6 @@ class NightmareZoneOverlay extends Overlay
final int currentPoints = client.getVar(Varbits.NMZ_POINTS); final int currentPoints = client.getVar(Varbits.NMZ_POINTS);
final int totalPoints = currentPoints + client.getVar(VarPlayer.NMZ_REWARD_POINTS); final int totalPoints = currentPoints + client.getVar(VarPlayer.NMZ_REWARD_POINTS);
panelComponent.getChildren().clear();
panelComponent.getChildren().add(LineComponent.builder() panelComponent.getChildren().add(LineComponent.builder()
.left("Points: ") .left("Points: ")
.right(QuantityFormatter.formatNumber(currentPoints)) .right(QuantityFormatter.formatNumber(currentPoints))
@@ -119,7 +116,7 @@ class NightmareZoneOverlay extends Overlay
.right(QuantityFormatter.formatNumber(totalPoints)) .right(QuantityFormatter.formatNumber(totalPoints))
.build()); .build());
return panelComponent.render(graphics); return super.render(graphics);
} }
private void renderAbsorptionCounter() private void renderAbsorptionCounter()

View File

@@ -27,17 +27,15 @@ package net.runelite.client.plugins.npcunaggroarea;
import com.google.inject.Inject; import com.google.inject.Inject;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayPanel;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.OverlayPriority; import net.runelite.client.ui.overlay.OverlayPriority;
import net.runelite.client.ui.overlay.components.LineComponent; import net.runelite.client.ui.overlay.components.LineComponent;
import net.runelite.client.ui.overlay.components.PanelComponent;
class NpcAggroAreaNotWorkingOverlay extends Overlay class NpcAggroAreaNotWorkingOverlay extends OverlayPanel
{ {
private final NpcAggroAreaPlugin plugin; private final NpcAggroAreaPlugin plugin;
private final NpcAggroAreaConfig config; private final NpcAggroAreaConfig config;
private final PanelComponent panelComponent;
@Inject @Inject
private NpcAggroAreaNotWorkingOverlay(NpcAggroAreaPlugin plugin, NpcAggroAreaConfig config) private NpcAggroAreaNotWorkingOverlay(NpcAggroAreaPlugin plugin, NpcAggroAreaConfig config)
@@ -45,14 +43,13 @@ class NpcAggroAreaNotWorkingOverlay extends Overlay
this.plugin = plugin; this.plugin = plugin;
this.config = config; this.config = config;
panelComponent = new PanelComponent();
panelComponent.setPreferredSize(new Dimension(150, 0));
panelComponent.getChildren().add(LineComponent.builder() panelComponent.getChildren().add(LineComponent.builder()
.left("Unaggressive NPC timers will start working when you teleport far away or enter a dungeon.") .left("Unaggressive NPC timers will start working when you teleport far away or enter a dungeon.")
.build()); .build());
setPriority(OverlayPriority.LOW); setPriority(OverlayPriority.LOW);
setPosition(OverlayPosition.TOP_LEFT); setPosition(OverlayPosition.TOP_LEFT);
setClearChildren(false);
} }
@Override @Override
@@ -63,6 +60,6 @@ class NpcAggroAreaNotWorkingOverlay extends Overlay
return null; return null;
} }
return panelComponent.render(graphics); return super.render(graphics);
} }
} }

View File

@@ -39,19 +39,18 @@ import net.runelite.api.NPC;
import net.runelite.api.Player; import net.runelite.api.Player;
import net.runelite.client.game.HiscoreManager; import net.runelite.client.game.HiscoreManager;
import net.runelite.client.game.NPCManager; import net.runelite.client.game.NPCManager;
import net.runelite.client.ui.overlay.Overlay;
import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE;
import net.runelite.client.ui.overlay.OverlayMenuEntry; import net.runelite.client.ui.overlay.OverlayMenuEntry;
import net.runelite.client.ui.overlay.OverlayPanel;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.OverlayPriority; import net.runelite.client.ui.overlay.OverlayPriority;
import net.runelite.client.ui.overlay.components.ComponentConstants; import net.runelite.client.ui.overlay.components.ComponentConstants;
import net.runelite.client.ui.overlay.components.PanelComponent;
import net.runelite.client.ui.overlay.components.ProgressBarComponent; import net.runelite.client.ui.overlay.components.ProgressBarComponent;
import net.runelite.client.ui.overlay.components.TitleComponent; import net.runelite.client.ui.overlay.components.TitleComponent;
import net.runelite.client.util.Text; import net.runelite.client.util.Text;
import net.runelite.http.api.hiscore.HiscoreResult; import net.runelite.http.api.hiscore.HiscoreResult;
class OpponentInfoOverlay extends Overlay class OpponentInfoOverlay extends OverlayPanel
{ {
private static final Color HP_GREEN = new Color(0, 146, 54, 230); private static final Color HP_GREEN = new Color(0, 146, 54, 230);
private static final Color HP_RED = new Color(102, 15, 16, 230); private static final Color HP_RED = new Color(102, 15, 16, 230);
@@ -62,8 +61,6 @@ class OpponentInfoOverlay extends Overlay
private final HiscoreManager hiscoreManager; private final HiscoreManager hiscoreManager;
private final NPCManager npcManager; private final NPCManager npcManager;
private final PanelComponent panelComponent = new PanelComponent();
private Integer lastMaxHealth; private Integer lastMaxHealth;
private int lastRatio = 0; private int lastRatio = 0;
private int lastHealthScale = 0; private int lastHealthScale = 0;
@@ -135,8 +132,6 @@ class OpponentInfoOverlay extends Overlay
final FontMetrics fontMetrics = graphics.getFontMetrics(); final FontMetrics fontMetrics = graphics.getFontMetrics();
panelComponent.getChildren().clear();
// Opponent name // Opponent name
int panelWidth = Math.max(ComponentConstants.STANDARD_WIDTH, fontMetrics.stringWidth(opponentName) + ComponentConstants.STANDARD_BORDER + ComponentConstants.STANDARD_BORDER); int panelWidth = Math.max(ComponentConstants.STANDARD_WIDTH, fontMetrics.stringWidth(opponentName) + ComponentConstants.STANDARD_BORDER + ComponentConstants.STANDARD_BORDER);
panelComponent.setPreferredSize(new Dimension(panelWidth, 0)); panelComponent.setPreferredSize(new Dimension(panelWidth, 0));
@@ -205,6 +200,6 @@ class OpponentInfoOverlay extends Overlay
panelComponent.getChildren().add(progressBarComponent); panelComponent.getChildren().add(progressBarComponent);
} }
return panelComponent.render(graphics); return super.render(graphics);
} }
} }

View File

@@ -34,15 +34,15 @@ import java.util.UUID;
import javax.inject.Inject; import javax.inject.Inject;
import net.runelite.api.MenuAction; import net.runelite.api.MenuAction;
import net.runelite.client.plugins.party.data.PartyData; import net.runelite.client.plugins.party.data.PartyData;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayMenuEntry; import net.runelite.client.ui.overlay.OverlayMenuEntry;
import net.runelite.client.ui.overlay.OverlayPanel;
import net.runelite.client.ui.overlay.components.ComponentConstants; import net.runelite.client.ui.overlay.components.ComponentConstants;
import net.runelite.client.ui.overlay.components.PanelComponent; import net.runelite.client.ui.overlay.components.PanelComponent;
import net.runelite.client.ui.overlay.components.ProgressBarComponent; import net.runelite.client.ui.overlay.components.ProgressBarComponent;
import net.runelite.client.ui.overlay.components.TitleComponent; import net.runelite.client.ui.overlay.components.TitleComponent;
import net.runelite.client.ws.PartyService; import net.runelite.client.ws.PartyService;
public class PartyStatsOverlay extends Overlay public class PartyStatsOverlay extends OverlayPanel
{ {
private static final Color HP_FG = new Color(0, 146, 54, 230); private static final Color HP_FG = new Color(0, 146, 54, 230);
private static final Color HP_BG = new Color(102, 15, 16, 230); private static final Color HP_BG = new Color(102, 15, 16, 230);
@@ -52,7 +52,6 @@ public class PartyStatsOverlay extends Overlay
private final PartyPlugin plugin; private final PartyPlugin plugin;
private final PartyService party; private final PartyService party;
private final PartyConfig config; private final PartyConfig config;
private final PanelComponent body = new PanelComponent();
@Inject @Inject
private PartyStatsOverlay(final PartyPlugin plugin, final PartyService party, final PartyConfig config) private PartyStatsOverlay(final PartyPlugin plugin, final PartyService party, final PartyConfig config)
@@ -61,8 +60,8 @@ public class PartyStatsOverlay extends Overlay
this.plugin = plugin; this.plugin = plugin;
this.party = party; this.party = party;
this.config = config; this.config = config;
body.setBorder(new Rectangle()); panelComponent.setBorder(new Rectangle());
body.setGap(new Point(0, ComponentConstants.STANDARD_BORDER / 2)); panelComponent.setGap(new Point(0, ComponentConstants.STANDARD_BORDER / 2));
getMenuEntries().add(new OverlayMenuEntry(MenuAction.RUNELITE_OVERLAY, "Leave", "Party")); getMenuEntries().add(new OverlayMenuEntry(MenuAction.RUNELITE_OVERLAY, "Leave", "Party"));
} }
@@ -80,8 +79,7 @@ public class PartyStatsOverlay extends Overlay
return null; return null;
} }
body.getChildren().clear(); panelComponent.setBackgroundColor(null);
body.setBackgroundColor(null);
boolean only1 = plugin.getPartyDataMap().size() == 1; boolean only1 = plugin.getPartyDataMap().size() == 1;
@@ -93,7 +91,7 @@ public class PartyStatsOverlay extends Overlay
{ {
if (only1) if (only1)
{ {
body.getChildren().add(TitleComponent.builder() panelComponent.getChildren().add(TitleComponent.builder()
.text("No other party members") .text("No other party members")
.color(Color.RED) .color(Color.RED)
.build()); .build());
@@ -134,10 +132,10 @@ public class PartyStatsOverlay extends Overlay
panel.getChildren().add(prayBar); panel.getChildren().add(prayBar);
} }
body.getChildren().add(panel); panelComponent.getChildren().add(panel);
}); });
} }
return body.render(graphics); return super.render(graphics);
} }
} }

View File

@@ -37,20 +37,19 @@ import static net.runelite.api.MenuAction.RUNELITE_OVERLAY;
import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG; import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG;
import net.runelite.client.game.WorldService; import net.runelite.client.game.WorldService;
import net.runelite.client.plugins.raids.solver.Room; import net.runelite.client.plugins.raids.solver.Room;
import net.runelite.client.ui.overlay.Overlay;
import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE;
import net.runelite.client.ui.overlay.OverlayMenuEntry; import net.runelite.client.ui.overlay.OverlayMenuEntry;
import net.runelite.client.ui.overlay.OverlayPanel;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.OverlayPriority; import net.runelite.client.ui.overlay.OverlayPriority;
import net.runelite.client.ui.overlay.components.ComponentConstants; import net.runelite.client.ui.overlay.components.ComponentConstants;
import net.runelite.client.ui.overlay.components.LineComponent; import net.runelite.client.ui.overlay.components.LineComponent;
import net.runelite.client.ui.overlay.components.PanelComponent;
import net.runelite.client.ui.overlay.components.TitleComponent; import net.runelite.client.ui.overlay.components.TitleComponent;
import net.runelite.http.api.worlds.World; import net.runelite.http.api.worlds.World;
import net.runelite.http.api.worlds.WorldRegion; import net.runelite.http.api.worlds.WorldRegion;
import net.runelite.http.api.worlds.WorldResult; import net.runelite.http.api.worlds.WorldResult;
public class RaidsOverlay extends Overlay public class RaidsOverlay extends OverlayPanel
{ {
private static final int OLM_PLANE = 0; private static final int OLM_PLANE = 0;
static final String BROADCAST_ACTION = "Broadcast layout"; static final String BROADCAST_ACTION = "Broadcast layout";
@@ -59,7 +58,6 @@ public class RaidsOverlay extends Overlay
private Client client; private Client client;
private RaidsPlugin plugin; private RaidsPlugin plugin;
private RaidsConfig config; private RaidsConfig config;
private final PanelComponent panelComponent = new PanelComponent();
@Getter @Getter
@Setter @Setter
@@ -90,8 +88,6 @@ public class RaidsOverlay extends Overlay
return null; return null;
} }
panelComponent.getChildren().clear();
if (plugin.getRaid() == null || plugin.getRaid().getLayout() == null) if (plugin.getRaid() == null || plugin.getRaid().getLayout() == null)
{ {
panelComponent.getChildren().add(TitleComponent.builder() panelComponent.getChildren().add(TitleComponent.builder()
@@ -99,7 +95,7 @@ public class RaidsOverlay extends Overlay
.color(Color.RED) .color(Color.RED)
.build()); .build());
return panelComponent.render(graphics); return super.render(graphics);
} }
Color color = Color.WHITE; Color color = Color.WHITE;
@@ -206,6 +202,6 @@ public class RaidsOverlay extends Overlay
} }
} }
return panelComponent.render(graphics); return super.render(graphics);
} }
} }

View File

@@ -37,15 +37,14 @@ import static net.runelite.api.MenuAction.RUNELITE_OVERLAY;
import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG; import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG;
import net.runelite.api.Skill; import net.runelite.api.Skill;
import net.runelite.client.plugins.xptracker.XpTrackerService; import net.runelite.client.plugins.xptracker.XpTrackerService;
import net.runelite.client.ui.overlay.Overlay;
import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE;
import net.runelite.client.ui.overlay.OverlayMenuEntry; import net.runelite.client.ui.overlay.OverlayMenuEntry;
import net.runelite.client.ui.overlay.OverlayPanel;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.components.LineComponent; import net.runelite.client.ui.overlay.components.LineComponent;
import net.runelite.client.ui.overlay.components.PanelComponent;
import net.runelite.client.ui.overlay.components.TitleComponent; import net.runelite.client.ui.overlay.components.TitleComponent;
class SmeltingOverlay extends Overlay class SmeltingOverlay extends OverlayPanel
{ {
private static final int SMELT_TIMEOUT = 7; private static final int SMELT_TIMEOUT = 7;
static final String SMELTING_RESET = "Reset"; static final String SMELTING_RESET = "Reset";
@@ -54,8 +53,6 @@ class SmeltingOverlay extends Overlay
private final SmeltingPlugin plugin; private final SmeltingPlugin plugin;
private final XpTrackerService xpTrackerService; private final XpTrackerService xpTrackerService;
private final PanelComponent panelComponent = new PanelComponent();
@Inject @Inject
SmeltingOverlay(Client client, SmeltingPlugin plugin, XpTrackerService xpTrackerService) SmeltingOverlay(Client client, SmeltingPlugin plugin, XpTrackerService xpTrackerService)
{ {
@@ -77,8 +74,6 @@ class SmeltingOverlay extends Overlay
return null; return null;
} }
panelComponent.getChildren().clear();
if (isSmelting() || Duration.between(session.getLastItemSmelted(), Instant.now()).getSeconds() < SMELT_TIMEOUT) if (isSmelting() || Duration.between(session.getLastItemSmelted(), Instant.now()).getSeconds() < SMELT_TIMEOUT)
{ {
panelComponent.getChildren().add(TitleComponent.builder() panelComponent.getChildren().add(TitleComponent.builder()
@@ -120,7 +115,7 @@ class SmeltingOverlay extends Overlay
} }
} }
return panelComponent.render(graphics); return super.render(graphics);
} }

View File

@@ -31,18 +31,16 @@ import javax.inject.Inject;
import net.runelite.api.ItemID; import net.runelite.api.ItemID;
import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG; import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG;
import net.runelite.client.game.ItemManager; import net.runelite.client.game.ItemManager;
import net.runelite.client.ui.overlay.Overlay;
import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE;
import net.runelite.client.ui.overlay.OverlayMenuEntry; import net.runelite.client.ui.overlay.OverlayMenuEntry;
import net.runelite.client.ui.overlay.OverlayPanel;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.OverlayPriority; import net.runelite.client.ui.overlay.OverlayPriority;
import net.runelite.client.ui.overlay.components.ComponentOrientation; import net.runelite.client.ui.overlay.components.ComponentOrientation;
import net.runelite.client.ui.overlay.components.ImageComponent; import net.runelite.client.ui.overlay.components.ImageComponent;
import net.runelite.client.ui.overlay.components.PanelComponent;
public class TeamCapesOverlay extends Overlay public class TeamCapesOverlay extends OverlayPanel
{ {
private final PanelComponent panelComponent = new PanelComponent();
private final TeamCapesPlugin plugin; private final TeamCapesPlugin plugin;
private final TeamCapesConfig config; private final TeamCapesConfig config;
private final ItemManager manager; private final ItemManager manager;
@@ -70,8 +68,6 @@ public class TeamCapesOverlay extends Overlay
return null; return null;
} }
panelComponent.getChildren().clear();
for (Map.Entry<Integer, Integer> team : teams.entrySet()) for (Map.Entry<Integer, Integer> team : teams.entrySet())
{ {
// Only display team capes that have a count greater than the configured minimum // Only display team capes that have a count greater than the configured minimum
@@ -97,6 +93,6 @@ public class TeamCapesOverlay extends Overlay
panelComponent.getChildren().add(new ImageComponent(manager.getImage(itemID, team.getValue(), true))); panelComponent.getChildren().add(new ImageComponent(manager.getImage(itemID, team.getValue(), true)));
} }
return panelComponent.render(graphics); return super.render(graphics);
} }
} }

View File

@@ -30,18 +30,16 @@ import java.awt.Dimension;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import javax.inject.Inject; import javax.inject.Inject;
import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG; import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG;
import net.runelite.client.ui.overlay.Overlay;
import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE;
import net.runelite.client.ui.overlay.OverlayMenuEntry; import net.runelite.client.ui.overlay.OverlayMenuEntry;
import net.runelite.client.ui.overlay.OverlayPanel;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.components.LineComponent; import net.runelite.client.ui.overlay.components.LineComponent;
import net.runelite.client.ui.overlay.components.PanelComponent;
import net.runelite.client.ui.overlay.components.TitleComponent; import net.runelite.client.ui.overlay.components.TitleComponent;
class WintertodtOverlay extends Overlay class WintertodtOverlay extends OverlayPanel
{ {
private final WintertodtPlugin plugin; private final WintertodtPlugin plugin;
private final PanelComponent panelComponent = new PanelComponent();
@Inject @Inject
private WintertodtOverlay(WintertodtPlugin plugin) private WintertodtOverlay(WintertodtPlugin plugin)
@@ -60,9 +58,6 @@ class WintertodtOverlay extends Overlay
return null; return null;
} }
panelComponent.getChildren().clear();
panelComponent.setPreferredSize(new Dimension(150, 0));
panelComponent.getChildren().add(TitleComponent.builder() panelComponent.getChildren().add(TitleComponent.builder()
.text(plugin.getCurrentActivity().getActionString()) .text(plugin.getCurrentActivity().getActionString())
.color(plugin.getCurrentActivity() == WintertodtActivity.IDLE ? Color.RED : Color.GREEN) .color(plugin.getCurrentActivity() == WintertodtActivity.IDLE ? Color.RED : Color.GREEN)
@@ -84,6 +79,6 @@ class WintertodtOverlay extends Overlay
.rightColor(plugin.getNumKindling() + plugin.getNumLogs() > 0 ? Color.GREEN : Color.RED) .rightColor(plugin.getNumKindling() + plugin.getNumLogs() > 0 ? Color.GREEN : Color.RED)
.build()); .build());
return panelComponent.render(graphics); return super.render(graphics);
} }
} }

View File

@@ -33,15 +33,14 @@ import static net.runelite.api.MenuAction.RUNELITE_OVERLAY;
import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG; import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG;
import net.runelite.api.Skill; import net.runelite.api.Skill;
import net.runelite.client.plugins.xptracker.XpTrackerService; import net.runelite.client.plugins.xptracker.XpTrackerService;
import net.runelite.client.ui.overlay.Overlay;
import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE;
import net.runelite.client.ui.overlay.OverlayMenuEntry; import net.runelite.client.ui.overlay.OverlayMenuEntry;
import net.runelite.client.ui.overlay.OverlayPanel;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.components.LineComponent; import net.runelite.client.ui.overlay.components.LineComponent;
import net.runelite.client.ui.overlay.components.PanelComponent;
import net.runelite.client.ui.overlay.components.TitleComponent; import net.runelite.client.ui.overlay.components.TitleComponent;
class WoodcuttingOverlay extends Overlay class WoodcuttingOverlay extends OverlayPanel
{ {
static final String WOODCUTTING_RESET = "Reset"; static final String WOODCUTTING_RESET = "Reset";
@@ -49,7 +48,6 @@ class WoodcuttingOverlay extends Overlay
private final WoodcuttingPlugin plugin; private final WoodcuttingPlugin plugin;
private final WoodcuttingConfig config; private final WoodcuttingConfig config;
private final XpTrackerService xpTrackerService; private final XpTrackerService xpTrackerService;
private final PanelComponent panelComponent = new PanelComponent();
@Inject @Inject
private WoodcuttingOverlay(Client client, WoodcuttingPlugin plugin, WoodcuttingConfig config, XpTrackerService xpTrackerService) private WoodcuttingOverlay(Client client, WoodcuttingPlugin plugin, WoodcuttingConfig config, XpTrackerService xpTrackerService)
@@ -78,8 +76,6 @@ class WoodcuttingOverlay extends Overlay
return null; return null;
} }
panelComponent.getChildren().clear();
Axe axe = plugin.getAxe(); Axe axe = plugin.getAxe();
if (axe != null && axe.matchesChoppingAnimation(client.getLocalPlayer())) if (axe != null && axe.matchesChoppingAnimation(client.getLocalPlayer()))
{ {
@@ -113,7 +109,7 @@ class WoodcuttingOverlay extends Overlay
} }
} }
return panelComponent.render(graphics); return super.render(graphics);
} }
} }

View File

@@ -33,11 +33,13 @@ import java.awt.image.BufferedImage;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.Getter; import lombok.Getter;
import net.runelite.api.Experience; import net.runelite.api.Experience;
import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG;
import net.runelite.api.Skill; import net.runelite.api.Skill;
import net.runelite.client.ui.FontManager; import net.runelite.client.ui.FontManager;
import net.runelite.client.ui.SkillColor; import net.runelite.client.ui.SkillColor;
import net.runelite.client.ui.overlay.Overlay; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE;
import net.runelite.client.ui.overlay.OverlayMenuEntry; import net.runelite.client.ui.overlay.OverlayMenuEntry;
import net.runelite.client.ui.overlay.OverlayPanel;
import net.runelite.client.ui.overlay.components.ComponentOrientation; import net.runelite.client.ui.overlay.components.ComponentOrientation;
import net.runelite.client.ui.overlay.components.ImageComponent; import net.runelite.client.ui.overlay.components.ImageComponent;
import net.runelite.client.ui.overlay.components.LineComponent; import net.runelite.client.ui.overlay.components.LineComponent;
@@ -45,18 +47,14 @@ import net.runelite.client.ui.overlay.components.PanelComponent;
import net.runelite.client.ui.overlay.components.ProgressBarComponent; import net.runelite.client.ui.overlay.components.ProgressBarComponent;
import net.runelite.client.ui.overlay.components.SplitComponent; import net.runelite.client.ui.overlay.components.SplitComponent;
import net.runelite.client.util.QuantityFormatter; import net.runelite.client.util.QuantityFormatter;
import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG;
import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE;
class XpInfoBoxOverlay extends Overlay class XpInfoBoxOverlay extends OverlayPanel
{ {
private static final int PANEL_PREFERRED_WIDTH = 150;
private static final int BORDER_SIZE = 2; private static final int BORDER_SIZE = 2;
private static final int XP_AND_PROGRESS_BAR_GAP = 2; private static final int XP_AND_PROGRESS_BAR_GAP = 2;
private static final int XP_AND_ICON_GAP = 4; private static final int XP_AND_ICON_GAP = 4;
private static final Rectangle XP_AND_ICON_COMPONENT_BORDER = new Rectangle(2, 1, 4, 0); private static final Rectangle XP_AND_ICON_COMPONENT_BORDER = new Rectangle(2, 1, 4, 0);
private final PanelComponent panel = new PanelComponent();
private final PanelComponent iconXpSplitPanel = new PanelComponent(); private final PanelComponent iconXpSplitPanel = new PanelComponent();
private final XpTrackerPlugin plugin; private final XpTrackerPlugin plugin;
private final XpTrackerConfig config; private final XpTrackerConfig config;
@@ -76,19 +74,16 @@ class XpInfoBoxOverlay extends Overlay
this.config = config; this.config = config;
this.skill = skill; this.skill = skill;
this.icon = icon; this.icon = icon;
panel.setBorder(new Rectangle(BORDER_SIZE, BORDER_SIZE, BORDER_SIZE, BORDER_SIZE)); panelComponent.setBorder(new Rectangle(BORDER_SIZE, BORDER_SIZE, BORDER_SIZE, BORDER_SIZE));
panel.setGap(new Point(0, XP_AND_PROGRESS_BAR_GAP)); panelComponent.setGap(new Point(0, XP_AND_PROGRESS_BAR_GAP));
panel.setPreferredSize(new Dimension(PANEL_PREFERRED_WIDTH, 0));
iconXpSplitPanel.setBorder(XP_AND_ICON_COMPONENT_BORDER); iconXpSplitPanel.setBorder(XP_AND_ICON_COMPONENT_BORDER);
iconXpSplitPanel.setBackgroundColor(null); iconXpSplitPanel.setBackgroundColor(null);
iconXpSplitPanel.setPreferredSize(new Dimension(PANEL_PREFERRED_WIDTH, 0));
getMenuEntries().add(new OverlayMenuEntry(RUNELITE_OVERLAY_CONFIG, OPTION_CONFIGURE, "XP Tracker overlay")); getMenuEntries().add(new OverlayMenuEntry(RUNELITE_OVERLAY_CONFIG, OPTION_CONFIGURE, "XP Tracker overlay"));
} }
@Override @Override
public Dimension render(Graphics2D graphics) public Dimension render(Graphics2D graphics)
{ {
panel.getChildren().clear();
iconXpSplitPanel.getChildren().clear(); iconXpSplitPanel.getChildren().clear();
//Setting the font to rs small font so that the overlay isn't huge //Setting the font to rs small font so that the overlay isn't huge
@@ -174,10 +169,10 @@ class XpInfoBoxOverlay extends Overlay
progressBarComponent.setValue(snapshot.getSkillProgressToGoal()); progressBarComponent.setValue(snapshot.getSkillProgressToGoal());
panel.getChildren().add(iconXpSplitPanel); panelComponent.getChildren().add(iconXpSplitPanel);
panel.getChildren().add(progressBarComponent); panelComponent.getChildren().add(progressBarComponent);
return panel.render(graphics); return super.render(graphics);
} }
@Override @Override

View File

@@ -36,22 +36,20 @@ import javax.inject.Inject;
import javax.inject.Singleton; import javax.inject.Singleton;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.client.config.RuneLiteConfig; import net.runelite.client.config.RuneLiteConfig;
import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayPanel;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.components.ComponentOrientation; import net.runelite.client.ui.overlay.components.ComponentOrientation;
import net.runelite.client.ui.overlay.components.InfoBoxComponent; import net.runelite.client.ui.overlay.components.InfoBoxComponent;
import net.runelite.client.ui.overlay.components.LayoutableRenderableEntity; import net.runelite.client.ui.overlay.components.LayoutableRenderableEntity;
import net.runelite.client.ui.overlay.components.PanelComponent;
import net.runelite.client.ui.overlay.tooltip.Tooltip; import net.runelite.client.ui.overlay.tooltip.Tooltip;
import net.runelite.client.ui.overlay.tooltip.TooltipManager; import net.runelite.client.ui.overlay.tooltip.TooltipManager;
@Singleton @Singleton
public class InfoBoxOverlay extends Overlay public class InfoBoxOverlay extends OverlayPanel
{ {
private static final int GAP = 1; private static final int GAP = 1;
private static final int DEFAULT_WRAP_COUNT = 4; private static final int DEFAULT_WRAP_COUNT = 4;
private final PanelComponent panelComponent = new PanelComponent();
private final InfoBoxManager infoboxManager; private final InfoBoxManager infoboxManager;
private final TooltipManager tooltipManager; private final TooltipManager tooltipManager;
private final Client client; private final Client client;
@@ -69,6 +67,7 @@ public class InfoBoxOverlay extends Overlay
this.client = client; this.client = client;
this.config = config; this.config = config;
setPosition(OverlayPosition.TOP_LEFT); setPosition(OverlayPosition.TOP_LEFT);
setClearChildren(false);
panelComponent.setWrap(true); panelComponent.setWrap(true);
panelComponent.setBackgroundColor(null); panelComponent.setBackgroundColor(null);
@@ -86,8 +85,6 @@ public class InfoBoxOverlay extends Overlay
return null; return null;
} }
panelComponent.getChildren().clear();
// Set preferred size to the size of DEFAULT_WRAP_COUNT infoboxes, including the padding - which is applied // Set preferred size to the size of DEFAULT_WRAP_COUNT infoboxes, including the padding - which is applied
// to the last infobox prior to wrapping too. // to the last infobox prior to wrapping too.
panelComponent.setPreferredSize(new Dimension(DEFAULT_WRAP_COUNT * (config.infoBoxSize() + GAP), DEFAULT_WRAP_COUNT * (config.infoBoxSize() + GAP))); panelComponent.setPreferredSize(new Dimension(DEFAULT_WRAP_COUNT * (config.infoBoxSize() + GAP), DEFAULT_WRAP_COUNT * (config.infoBoxSize() + GAP)));
@@ -117,7 +114,7 @@ public class InfoBoxOverlay extends Overlay
panelComponent.getChildren().add(infoBoxComponent); panelComponent.getChildren().add(infoBoxComponent);
} }
final Dimension dimension = panelComponent.render(graphics); final Dimension dimension = super.render(graphics);
// Handle tooltips // Handle tooltips
final Point mouse = new Point(client.getMouseCanvasPosition().getX(), client.getMouseCanvasPosition().getY()); final Point mouse = new Point(client.getMouseCanvasPosition().getX(), client.getMouseCanvasPosition().getY());
@@ -142,6 +139,7 @@ public class InfoBoxOverlay extends Overlay
} }
} }
panelComponent.getChildren().clear();
return dimension; return dimension;
} }
} }