diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/PuzzleSolverOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/PuzzleSolverOverlay.java index cc82f165cf..9fbdb61629 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/PuzzleSolverOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/PuzzleSolverOverlay.java @@ -33,11 +33,9 @@ import java.awt.Graphics2D; import java.awt.Point; import java.awt.Rectangle; import java.awt.image.BufferedImage; -import java.io.IOException; import java.util.Arrays; import java.util.concurrent.Future; import java.util.concurrent.ScheduledExecutorService; -import javax.imageio.ImageIO; import javax.inject.Inject; import lombok.extern.slf4j.Slf4j; import net.runelite.api.Client; @@ -45,8 +43,10 @@ import net.runelite.api.GameState; import net.runelite.api.InventoryID; import net.runelite.api.Item; import net.runelite.api.ItemContainer; +import static net.runelite.api.SpriteID.MINIMAP_DESTINATION_FLAG; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; +import net.runelite.client.game.SpriteManager; import net.runelite.client.plugins.puzzlesolver.solver.PuzzleSolver; import net.runelite.client.plugins.puzzlesolver.solver.PuzzleState; import net.runelite.client.plugins.puzzlesolver.solver.heuristics.ManhattanDistance; @@ -77,18 +77,18 @@ public class PuzzleSolverOverlay extends Overlay private final Client client; private final PuzzleSolverConfig config; private final ScheduledExecutorService executorService; + private final SpriteManager spriteManager; private PuzzleSolver solver; private Future solverFuture; private int[] cachedItems; - private BufferedImage downArrow; private BufferedImage upArrow; private BufferedImage leftArrow; private BufferedImage rightArrow; @Inject - public PuzzleSolverOverlay(Client client, PuzzleSolverConfig config, ScheduledExecutorService executorService) + public PuzzleSolverOverlay(Client client, PuzzleSolverConfig config, ScheduledExecutorService executorService, SpriteManager spriteManager) { setPosition(OverlayPosition.DYNAMIC); setPriority(OverlayPriority.HIGH); @@ -96,6 +96,7 @@ public class PuzzleSolverOverlay extends Overlay this.client = client; this.config = config; this.executorService = executorService; + this.spriteManager = spriteManager; } @Override @@ -426,21 +427,7 @@ public class PuzzleSolverOverlay extends Overlay private BufferedImage getDownArrow() { - if (downArrow == null) - { - try - { - synchronized (ImageIO.class) - { - downArrow = ImageIO.read(PuzzleSolverOverlay.class.getResourceAsStream("arrow.png")); - } - } - catch (IOException e) - { - log.warn("Error loading image", e); - } - } - return downArrow; + return spriteManager.getSprite(MINIMAP_DESTINATION_FLAG, 1); } private BufferedImage getUpArrow() diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/puzzlesolver/arrow.png b/runelite-client/src/main/resources/net/runelite/client/plugins/puzzlesolver/arrow.png deleted file mode 100644 index 904f3c296e..0000000000 Binary files a/runelite-client/src/main/resources/net/runelite/client/plugins/puzzlesolver/arrow.png and /dev/null differ