From 9dd3f3c6b65669ab3086449958d0d6bc9ca186db Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 23 Jun 2022 19:41:05 +0400 Subject: [PATCH] Add config options for all parts of the info panel --- .../EasyGiantsFoundryConfig.java | 74 +++++++++++++++++++ .../easygiantsfoundry/FoundryOverlay2D.java | 53 +++++++++---- 2 files changed, 111 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java index a1f3584..89a3872 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java @@ -100,4 +100,78 @@ public interface EasyGiantsFoundryConfig extends Config { default boolean highlightKovac() { return true; } + + + @ConfigSection( + name = "Info Panel", + description = "Settings for the Info Panel overlay", + position = 1 + ) + String infoPanelList = "infoPanelList"; + + @ConfigItem( + keyName = "infoPanel", + name = "Draw Info Panel", + description = "Toggle for drawing the information panel", + position = 0, + section = infoPanelList + ) + default boolean drawInfoPanel() { + return true; + } + + @ConfigItem( + keyName = "infoPanel", + name = "Title", + description = "Toggle for \"Easy Giant's Foundry\" text", + position = 1, + section = infoPanelList + ) + default boolean drawTitle() { + return true; + } + + @ConfigItem( + keyName = "heatInfo", + name = "Heat", + description = "Toggle for Heat text", + position = 2, + section = infoPanelList + ) + default boolean drawHeatInfo() { + return true; + } + + @ConfigItem( + keyName = "stageInfo", + name = "Stage", + description = "Toggle for Stage text", + position = 3, + section = infoPanelList + ) + default boolean drawStageInfo() { + return true; + } + + @ConfigItem( + keyName = "actionsLeft", + name = "Actions Left", + description = "Toggle for Actions left text", + position = 4, + section = infoPanelList + ) + default boolean drawActionsLeft() { + return true; + } + + @ConfigItem( + keyName = "heatLeft", + name = "Heat Left", + description = "Toggle for Heat left text", + position = 5, + section = infoPanelList + ) + default boolean drawHeatLeft() { + return true; + } } diff --git a/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay2D.java b/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay2D.java index da7b620..df5e6d3 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay2D.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay2D.java @@ -19,11 +19,17 @@ import net.runelite.client.ui.overlay.components.TitleComponent; @Singleton public class FoundryOverlay2D extends OverlayPanel { - @Inject private EasyGiantsFoundryState state; + private EasyGiantsFoundryHelper helper; + private EasyGiantsFoundryConfig config; @Inject - private EasyGiantsFoundryHelper helper; + private FoundryOverlay2D(EasyGiantsFoundryState state, EasyGiantsFoundryHelper helper, EasyGiantsFoundryConfig config) + { + this.state = state; + this.helper = helper; + this.config = config; + } private Color getHeatColor(int actions, int heat) { @@ -43,7 +49,7 @@ public class FoundryOverlay2D extends OverlayPanel @Override public Dimension render(Graphics2D graphics) { - if (!state.isEnabled() || state.getCurrentStage() == null) + if (!state.isEnabled() || state.getCurrentStage() == null || !config.drawInfoPanel()) { return null; } @@ -51,23 +57,38 @@ public class FoundryOverlay2D extends OverlayPanel Heat heat = state.getCurrentHeat(); Stage stage = state.getCurrentStage(); - panelComponent.getChildren().add(TitleComponent.builder().text("Easy Giant's Foundry").build()); - panelComponent.getChildren().add( - LineComponent.builder().left("Heat").right(heat.getName() + " (" + state.getHeatAmount() / 10 + "%)").rightColor(heat.getColor()).build() - ); - panelComponent.getChildren().add( - LineComponent.builder().left("Stage").right(stage.getName() + " (" + state.getProgressAmount() / 10 + "%)").rightColor(stage.getHeat().getColor()).build() - ); + if (config.drawTitle()) + { + panelComponent.getChildren().add(TitleComponent.builder().text("Easy Giant's Foundry").build()); + } + if (config.drawHeatInfo()) + { + panelComponent.getChildren().add( + LineComponent.builder().left("Heat").right(heat.getName() + " (" + state.getHeatAmount() / 10 + "%)").rightColor(heat.getColor()).build() + ); + } + if (config.drawStageInfo()) + { + panelComponent.getChildren().add( + LineComponent.builder().left("Stage").right(stage.getName() + " (" + state.getProgressAmount() / 10 + "%)").rightColor(stage.getHeat().getColor()).build() + ); + } int actionsLeft = helper.getActionsLeftInStage(); int heatLeft = helper.getActionsForHeatLevel(); - panelComponent.getChildren().add( - LineComponent.builder().left("Actions left").right(actionsLeft + "").build() - ); - panelComponent.getChildren().add( - LineComponent.builder().left("Heat left").right(heatLeft + "").rightColor(getHeatColor(actionsLeft, heatLeft)).build() - ); + if (config.drawActionsLeft()) + { + panelComponent.getChildren().add( + LineComponent.builder().left("Actions left").right(actionsLeft + "").build() + ); + } + if (config.drawHeatLeft()) + { + panelComponent.getChildren().add( + LineComponent.builder().left("Heat left").right(heatLeft + "").rightColor(getHeatColor(actionsLeft, heatLeft)).build() + ); + } return super.render(graphics); }