From 411b0333fee152009befe99c9d9c1ffd6cd74136 Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 23 Jun 2022 18:32:24 +0400 Subject: [PATCH 01/16] Shorten config names and descriptions --- .../easygiantsfoundry/EasyGiantsFoundryConfig.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java index 6b31224..a94e94a 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java @@ -10,8 +10,8 @@ public interface EasyGiantsFoundryConfig extends Config { @ConfigItem( keyName = "giantsFoundryStageNotification", - name = "Enable stage notifications", - description = "Configures whether to notify you when you are about to finish a stage.", + name = "Notify stage changes", + description = "Notifies just before completing a stage", position = 0 ) default boolean showGiantsFoundryStageNotifications() @@ -21,8 +21,8 @@ public interface EasyGiantsFoundryConfig extends Config { @ConfigItem( keyName = "giantsFoundryHeatNotification", - name = "Enable heat notifications", - description = "Configures whether to notify you when you are about to run out of heat.", + name = "Notify heat changes", + description = "Notifies just before overheating/cooling when using tools", position = 1 ) default boolean showGiantsFoundryHeatNotifications() From 1a2b666666693a7e8cfd92d1debb194cec84961a Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 23 Jun 2022 18:35:20 +0400 Subject: [PATCH 02/16] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 3cb6ccc..7eb8e05 100644 --- a/README.md +++ b/README.md @@ -23,3 +23,6 @@ Helpful overlays for the Giant's Foundry minigame * Highlight relevant tools with status colors * Kovac, Crucible, and Mould Jig highlights * Highlight waterfall/lava pool when temperature is wrong +- [Vanillj](https://github.com/Vanillj "Vanillj's github") + * Added config + * Added notifications for heat/stage changes \ No newline at end of file From a7d99e9dc39b36423e77f8455f39ac2851481b4b Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 23 Jun 2022 18:35:55 +0400 Subject: [PATCH 03/16] Update runeLiteVersion to 1.8.24.3 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 01d2eba..4ca4331 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ repositories { mavenCentral() } -def runeLiteVersion = '1.8.23' +def runeLiteVersion = '1.8.24.3' dependencies { compileOnly group: 'net.runelite', name:'client', version: runeLiteVersion From 8454c3602bd707ee3bc89b18fc0981a0ee260950 Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 23 Jun 2022 18:36:07 +0400 Subject: [PATCH 04/16] Update minor version --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 4ca4331..b69c935 100644 --- a/build.gradle +++ b/build.gradle @@ -24,7 +24,7 @@ dependencies { } group = 'com.toofifty' -version = '1.0.3' +version = '1.0.4' sourceCompatibility = '1.8' tasks.withType(JavaCompile) { From b3c29663651e1df7980d997de6bc2e22253b4bfa Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 23 Jun 2022 18:40:21 +0400 Subject: [PATCH 05/16] Clean up minor code change --- .../toofifty/easygiantsfoundry/EasyGiantsFoundryPlugin.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryPlugin.java b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryPlugin.java index 16462cb..4e61401 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryPlugin.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryPlugin.java @@ -124,14 +124,14 @@ public class EasyGiantsFoundryPlugin extends Plugin @Subscribe public void onStatChanged(StatChanged statChanged) { - final int currBoost = statChanged.getBoostedLevel(); + final int curBoost = statChanged.getBoostedLevel(); // if the difference between current and last boost is != 0 then a stat boost (or drop) change occurred if (!statChanged.getSkill().equals(Skill.SMITHING) || - currBoost - lastBoost != 0 || + curBoost != lastBoost || !state.isEnabled() || state.getCurrentStage() == null) { - lastBoost = currBoost; + lastBoost = curBoost; return; } From 1a30693d0ffc8dfb6a4247a3f838ee95dc7ea5db Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 23 Jun 2022 19:02:21 +0400 Subject: [PATCH 06/16] Add config to FoundryOverlay3D --- .../com/toofifty/easygiantsfoundry/FoundryOverlay3D.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay3D.java b/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay3D.java index 16a22c8..4f6e291 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay3D.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay3D.java @@ -34,14 +34,17 @@ public class FoundryOverlay3D extends Overlay { private final Client client; private final EasyGiantsFoundryState state; private final EasyGiantsFoundryHelper helper; + private final EasyGiantsFoundryConfig config; @Inject - private FoundryOverlay3D(Client client, EasyGiantsFoundryState state, EasyGiantsFoundryHelper helper) + private FoundryOverlay3D(Client client, EasyGiantsFoundryState state, EasyGiantsFoundryHelper helper, + EasyGiantsFoundryConfig config) { setPosition(OverlayPosition.DYNAMIC); this.client = client; this.state = state; this.helper = helper; + this.config = config; } private Color getObjectColor(Stage stage, Heat heat) From c89f1fe181fcfdfaaa345e20ad898aa302758d3a Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 23 Jun 2022 19:24:51 +0400 Subject: [PATCH 07/16] Add configs for all 3d highlight overlays --- .../EasyGiantsFoundryConfig.java | 82 +++++++++++++++++-- .../easygiantsfoundry/FoundryOverlay3D.java | 22 +++-- 2 files changed, 91 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java index a94e94a..2d984b5 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java @@ -3,19 +3,27 @@ package com.toofifty.easygiantsfoundry; import net.runelite.client.config.Config; import net.runelite.client.config.ConfigGroup; import net.runelite.client.config.ConfigItem; +import net.runelite.client.config.ConfigSection; @ConfigGroup(EasyGiantsFoundryConfig.GROUP) public interface EasyGiantsFoundryConfig extends Config { String GROUP = "easygiantsfoundry"; + @ConfigSection( + name = "Notifications", + description = "Notifications", + position = 0 + ) + String notificationList = "notificationList"; + @ConfigItem( keyName = "giantsFoundryStageNotification", name = "Notify stage changes", description = "Notifies just before completing a stage", - position = 0 + position = 0, + section = notificationList ) - default boolean showGiantsFoundryStageNotifications() - { + default boolean showGiantsFoundryStageNotifications() { return false; } @@ -23,11 +31,73 @@ public interface EasyGiantsFoundryConfig extends Config { keyName = "giantsFoundryHeatNotification", name = "Notify heat changes", description = "Notifies just before overheating/cooling when using tools", - position = 1 + position = 1, + section = notificationList ) - default boolean showGiantsFoundryHeatNotifications() - { + default boolean showGiantsFoundryHeatNotifications() { return false; } + + @ConfigSection( + name = "Highlights", + description = "3D npc/object highlights", + position = 1 + ) + String highlightList = "highlightList"; + + @ConfigItem( + keyName = "toolsHighlight", + name = "Highlight Tools", + description = "Highlights current tool with symbolic colors", + position = 0, + section = highlightList + ) + default boolean highlightTools() { + return true; + } + + @ConfigItem( + keyName = "waterLavaHighlight", + name = "Highlight Waterfall/Lava Pool", + description = "Highlight Lava Pool / Waterfall when heat change required", + position = 1, + section = highlightList + ) + default boolean highlightWaterAndLava() { + return true; + } + + @ConfigItem( + keyName = "mouldHighlight", + name = "Highlight Mould", + description = "Highlight Mould when it should be clicked", + position = 2, + section = highlightList + ) + default boolean highlightMould() { + return true; + } + + @ConfigItem( + keyName = "crucibleHighlight", + name = "Highlight Crucible", + description = "Highlight Crucible when it should be filled/poured", + position = 3, + section = highlightList + ) + default boolean highlightCrucible() { + return true; + } + + @ConfigItem( + keyName = "kovacHighlight", + name = "Highlight Kovac for hand in", + description = "Highlight Kovac when sword can be handed in", + position = 4, + section = highlightList + ) + default boolean highlightKovac() { + return true; + } } diff --git a/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay3D.java b/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay3D.java index 4f6e291..ff3bc6d 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay3D.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay3D.java @@ -95,27 +95,35 @@ public class FoundryOverlay3D extends Overlay { return null; } - drawKovacIfHandIn(graphics); + if (config.highlightKovac()) + { + drawKovacIfHandIn(graphics); + } if (state.getCurrentStage() == null) { - drawMouldIfNotSet(graphics); - drawCrucibleIfMouldSet(graphics); + if (config.highlightMould()) + { + drawMouldIfNotSet(graphics); + } + if (config.highlightCrucible()) + { + drawCrucibleIfMouldSet(graphics); + } return null; } - Heat heat = state.getCurrentHeat(); Stage stage = state.getCurrentStage(); - GameObject stageObject = getStageObject(stage); if (stageObject == null) { return null; } + Heat heat = state.getCurrentHeat(); Color color = getObjectColor(stage, heat); Shape objectClickbox = stageObject.getClickbox(); - if (objectClickbox != null) + if (objectClickbox != null && config.highlightTools()) { Point mousePosition = client.getMouseCanvasPosition(); if (objectClickbox.contains(mousePosition.getX(), mousePosition.getY())) @@ -131,7 +139,7 @@ public class FoundryOverlay3D extends Overlay { graphics.fill(objectClickbox); } - if (color.equals(ColorScheme.PROGRESS_ERROR_COLOR)) + if (color.equals(ColorScheme.PROGRESS_ERROR_COLOR) && config.highlightWaterAndLava()) { drawHeatChangers(graphics); } From 8bb93d80cf1f54514246f2e951908b2cdebe4ab8 Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 23 Jun 2022 19:25:32 +0400 Subject: [PATCH 08/16] Change default value of notifications to on --- .../toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java index 2d984b5..a1f3584 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java @@ -24,7 +24,7 @@ public interface EasyGiantsFoundryConfig extends Config { section = notificationList ) default boolean showGiantsFoundryStageNotifications() { - return false; + return true; } @ConfigItem( @@ -35,7 +35,7 @@ public interface EasyGiantsFoundryConfig extends Config { section = notificationList ) default boolean showGiantsFoundryHeatNotifications() { - return false; + return true; } From 9dd3f3c6b65669ab3086449958d0d6bc9ca186db Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 23 Jun 2022 19:41:05 +0400 Subject: [PATCH 09/16] 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); } From eac082b05e20fffedf8e98c358bd6d87305eb199 Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 23 Jun 2022 19:49:16 +0400 Subject: [PATCH 10/16] Refactor Bonus Widget --- .../toofifty/easygiantsfoundry/BonusWidget.java | 17 +++++++++++++++++ .../easygiantsfoundry/FoundryOverlay3D.java | 11 ++--------- 2 files changed, 19 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/toofifty/easygiantsfoundry/BonusWidget.java diff --git a/src/main/java/com/toofifty/easygiantsfoundry/BonusWidget.java b/src/main/java/com/toofifty/easygiantsfoundry/BonusWidget.java new file mode 100644 index 0000000..5bf7f19 --- /dev/null +++ b/src/main/java/com/toofifty/easygiantsfoundry/BonusWidget.java @@ -0,0 +1,17 @@ +package com.toofifty.easygiantsfoundry; + +import net.runelite.api.Client; +import net.runelite.api.widgets.Widget; + +public class BonusWidget { + private static final int BONUS_WIDGET = 49414148; + private static final int BONUS_COLOR = 0xfcd703; + + static boolean isActive(Client client) { + Widget bonusWidget = client.getWidget(BONUS_WIDGET); + return bonusWidget != null + && bonusWidget.getChildren() != null + && bonusWidget.getChildren().length != 0 + && bonusWidget.getChild(0).getTextColor() == BONUS_COLOR; + } +} diff --git a/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay3D.java b/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay3D.java index ff3bc6d..6fe5d06 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay3D.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay3D.java @@ -16,9 +16,6 @@ import java.awt.*; public class FoundryOverlay3D extends Overlay { - private static final int BONUS_COLOR = 0xfcd703; - private static final int BONUS_WIDGET = 49414148; - private static final int HAND_IN_WIDGET = 49414221; private static final int FINISH_ANIM = 9457; @@ -54,15 +51,11 @@ public class FoundryOverlay3D extends Overlay { return ColorScheme.PROGRESS_ERROR_COLOR; } - Widget bonusWidget = client.getWidget(BONUS_WIDGET); - if (bonusWidget != null - && bonusWidget.getChildren() != null - && bonusWidget.getChildren().length != 0 - && bonusWidget.getChild(0).getTextColor() == BONUS_COLOR) { + if (BonusWidget.isActive(client)) + { return Color.CYAN; } - int actionsLeft = helper.getActionsLeftInStage(); int heatLeft = helper.getActionsForHeatLevel(); if (actionsLeft <= 1 || heatLeft <= 1) From 8a9c80ed81dd87856a800e23457549dcd3f2c77c Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 23 Jun 2022 22:28:26 +0400 Subject: [PATCH 11/16] Clean up and fix info panel configs --- .../EasyGiantsFoundryConfig.java | 23 +++++-------------- .../easygiantsfoundry/FoundryOverlay2D.java | 2 +- 2 files changed, 7 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java index 89a3872..2a2c993 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java @@ -110,21 +110,10 @@ public interface EasyGiantsFoundryConfig extends Config { 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", + keyName = "infoTitle", name = "Title", description = "Toggle for \"Easy Giant's Foundry\" text", - position = 1, + position = 0, section = infoPanelList ) default boolean drawTitle() { @@ -135,7 +124,7 @@ public interface EasyGiantsFoundryConfig extends Config { keyName = "heatInfo", name = "Heat", description = "Toggle for Heat text", - position = 2, + position = 1, section = infoPanelList ) default boolean drawHeatInfo() { @@ -146,7 +135,7 @@ public interface EasyGiantsFoundryConfig extends Config { keyName = "stageInfo", name = "Stage", description = "Toggle for Stage text", - position = 3, + position = 2, section = infoPanelList ) default boolean drawStageInfo() { @@ -157,7 +146,7 @@ public interface EasyGiantsFoundryConfig extends Config { keyName = "actionsLeft", name = "Actions Left", description = "Toggle for Actions left text", - position = 4, + position = 3, section = infoPanelList ) default boolean drawActionsLeft() { @@ -168,7 +157,7 @@ public interface EasyGiantsFoundryConfig extends Config { keyName = "heatLeft", name = "Heat Left", description = "Toggle for Heat left text", - position = 5, + position = 4, section = infoPanelList ) default boolean drawHeatLeft() { diff --git a/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay2D.java b/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay2D.java index df5e6d3..051580b 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay2D.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay2D.java @@ -49,7 +49,7 @@ public class FoundryOverlay2D extends OverlayPanel @Override public Dimension render(Graphics2D graphics) { - if (!state.isEnabled() || state.getCurrentStage() == null || !config.drawInfoPanel()) + if (!state.isEnabled() || state.getCurrentStage() == null) { return null; } From 61b4b572a4cef6ed2546c1d1f6a3a16eea5cc163 Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 23 Jun 2022 22:46:41 +0400 Subject: [PATCH 12/16] Remove anim check for kovac highlight - redundant after osrs update --- .../java/com/toofifty/easygiantsfoundry/FoundryOverlay3D.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay3D.java b/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay3D.java index 6fe5d06..b434633 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay3D.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay3D.java @@ -17,7 +17,6 @@ import java.awt.*; public class FoundryOverlay3D extends Overlay { private static final int HAND_IN_WIDGET = 49414221; - private static final int FINISH_ANIM = 9457; GameObject tripHammer; GameObject grindstone; @@ -213,8 +212,7 @@ public class FoundryOverlay3D extends Overlay { private void drawKovacIfHandIn(Graphics2D graphics) { Widget handInWidget = client.getWidget(HAND_IN_WIDGET); - if (handInWidget != null && !handInWidget.isHidden() - && client.getLocalPlayer().getAnimation() != FINISH_ANIM) + if (handInWidget != null && !handInWidget.isHidden()) { Shape shape = kovac.getConvexHull(); if (shape != null) From 64817918927809fc2bb6983cc5e11d167992e1bd Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 23 Jun 2022 22:47:20 +0400 Subject: [PATCH 13/16] Add bonus notifications with configs --- .../EasyGiantsFoundryConfig.java | 34 ++++++++++ .../EasyGiantsFoundryPlugin.java | 66 ++++++++++++++++++- 2 files changed, 99 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java index 2a2c993..433cfdd 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java @@ -8,6 +8,7 @@ import net.runelite.client.config.ConfigSection; @ConfigGroup(EasyGiantsFoundryConfig.GROUP) public interface EasyGiantsFoundryConfig extends Config { String GROUP = "easygiantsfoundry"; + String SOUND_ID = "soundID"; @ConfigSection( name = "Notifications", @@ -38,6 +39,39 @@ public interface EasyGiantsFoundryConfig extends Config { return true; } + @ConfigItem( + keyName = "bonusNotification", + name = "Notify bonus", + description = "Notifies when bonus appears", + position = 2, + section = notificationList + ) + default boolean bonusNotification() { + return false; + } + + @ConfigItem( + keyName = "bonusSound", + name = "Bonus sound", + description = "Plays a sound when bonus appears", + position = 3, + section = notificationList + ) + default boolean bonusSoundNotify() { + return true; + } + + @ConfigItem( + keyName = SOUND_ID, + name = "Bonus sound ID", + description = "Sound Effect ID to play when bonus appears", + position = 4, + section = notificationList + ) + default int soundId() { + return 4212; + } + @ConfigSection( name = "Highlights", diff --git a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryPlugin.java b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryPlugin.java index 4e61401..e1dd487 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryPlugin.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryPlugin.java @@ -2,12 +2,22 @@ package com.toofifty.easygiantsfoundry; import com.google.inject.Provides; import lombok.extern.slf4j.Slf4j; +import net.runelite.api.Client; import net.runelite.api.GameObject; import net.runelite.api.GameState; import net.runelite.api.InventoryID; import net.runelite.api.Skill; -import net.runelite.api.events.*; +import net.runelite.api.events.GameObjectDespawned; +import net.runelite.api.events.GameObjectSpawned; +import net.runelite.api.events.GameStateChanged; +import net.runelite.api.events.GameTick; +import net.runelite.api.events.ItemContainerChanged; +import net.runelite.api.events.NpcDespawned; +import net.runelite.api.events.NpcSpawned; +import net.runelite.api.events.ScriptPostFired; +import net.runelite.api.events.StatChanged; import net.runelite.client.Notifier; +import net.runelite.client.callback.ClientThread; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.events.ConfigChanged; import net.runelite.client.plugins.Plugin; @@ -43,6 +53,8 @@ public class EasyGiantsFoundryPlugin extends Plugin private int lastBoost; + private boolean bonusNotified = false; + @Inject private EasyGiantsFoundryState state; @@ -67,6 +79,12 @@ public class EasyGiantsFoundryPlugin extends Plugin @Inject private Notifier notifier; + @Inject + private Client client; + + @Inject + private ClientThread clientThread; + @Override protected void startUp() { @@ -220,6 +238,52 @@ public class EasyGiantsFoundryPlugin extends Plugin } } + @Subscribe + protected void onConfigChanged(ConfigChanged configChanged) + { + if (!EasyGiantsFoundryConfig.GROUP.equals(configChanged.getGroup())) + { + return; + } + + if (EasyGiantsFoundryConfig.SOUND_ID.equals(configChanged.getKey())) + { + clientThread.invoke(() -> client.playSoundEffect(config.soundId())); + } + } + + @Subscribe + public void onGameTick(GameTick event) + { + checkBonus(); + } + + private void checkBonus() + { + if (!state.isEnabled() || state.getCurrentStage() == null + || state.getCurrentStage().getHeat() != state.getCurrentHeat() + || !BonusWidget.isActive(client)) + { + bonusNotified = false; + return; + } + + if (bonusNotified) + { + return; + } + + if (config.bonusNotification()) + { + notifier.notify("Bonus - Click tool"); + } + if (config.bonusSoundNotify()) + { + client.playSoundEffect(config.soundId()); + } + + bonusNotified = true; + } @Provides EasyGiantsFoundryConfig provideConfig(ConfigManager configManager) From 32da036fabb6e9bddbf25ed099408ec6ffb9a5bd Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 23 Jun 2022 23:19:06 +0400 Subject: [PATCH 14/16] Minor import cleanup / final vars --- .../easygiantsfoundry/FoundryOverlay2D.java | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay2D.java b/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay2D.java index 051580b..e41643c 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay2D.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay2D.java @@ -2,26 +2,24 @@ package com.toofifty.easygiantsfoundry; import com.toofifty.easygiantsfoundry.enums.Heat; import com.toofifty.easygiantsfoundry.enums.Stage; - -import java.awt.*; -import javax.inject.Inject; -import javax.inject.Singleton; - -import net.runelite.api.Client; -import net.runelite.api.GameObject; -import net.runelite.api.Point; import net.runelite.client.ui.ColorScheme; -import net.runelite.client.ui.components.ProgressBar; import net.runelite.client.ui.overlay.OverlayPanel; +import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.components.LineComponent; import net.runelite.client.ui.overlay.components.TitleComponent; +import javax.inject.Inject; +import javax.inject.Singleton; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Graphics2D; + @Singleton public class FoundryOverlay2D extends OverlayPanel { - private EasyGiantsFoundryState state; - private EasyGiantsFoundryHelper helper; - private EasyGiantsFoundryConfig config; + private final EasyGiantsFoundryState state; + private final EasyGiantsFoundryHelper helper; + private final EasyGiantsFoundryConfig config; @Inject private FoundryOverlay2D(EasyGiantsFoundryState state, EasyGiantsFoundryHelper helper, EasyGiantsFoundryConfig config) @@ -29,6 +27,7 @@ public class FoundryOverlay2D extends OverlayPanel this.state = state; this.helper = helper; this.config = config; + this.setPosition(OverlayPosition.BOTTOM_LEFT); } private Color getHeatColor(int actions, int heat) From debb840aefe734e488c7ef87a47ddad9812d8ef2 Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 23 Jun 2022 23:22:22 +0400 Subject: [PATCH 15/16] Minor import cleanup --- .../toofifty/easygiantsfoundry/EasyGiantsFoundryHelper.java | 3 --- src/main/java/com/toofifty/easygiantsfoundry/enums/Stage.java | 2 -- 2 files changed, 5 deletions(-) diff --git a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryHelper.java b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryHelper.java index 2b3648f..8041aaf 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryHelper.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryHelper.java @@ -2,9 +2,6 @@ package com.toofifty.easygiantsfoundry; import com.toofifty.easygiantsfoundry.enums.Heat; import com.toofifty.easygiantsfoundry.enums.Stage; -import java.util.HashMap; -import java.util.List; -import java.util.Map; import javax.inject.Inject; import javax.inject.Singleton; diff --git a/src/main/java/com/toofifty/easygiantsfoundry/enums/Stage.java b/src/main/java/com/toofifty/easygiantsfoundry/enums/Stage.java index 60f48a1..633fad3 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/enums/Stage.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/enums/Stage.java @@ -1,9 +1,7 @@ package com.toofifty.easygiantsfoundry.enums; -import java.awt.Color; import lombok.AllArgsConstructor; import lombok.Getter; -import net.runelite.client.ui.ColorScheme; @Getter @AllArgsConstructor From 04cc35cb806ed2d07b18b710969eb82bdaa37057 Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 23 Jun 2022 23:59:42 +0400 Subject: [PATCH 16/16] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 7eb8e05..f731fef 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,9 @@ Helpful overlays for the Giant's Foundry minigame * Highlight relevant tools with status colors * Kovac, Crucible, and Mould Jig highlights * Highlight waterfall/lava pool when temperature is wrong + * Added Bonus sound/notifications + * Added overlay configs + * Added info panel configs - [Vanillj](https://github.com/Vanillj "Vanillj's github") * Added config * Added notifications for heat/stage changes \ No newline at end of file