diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/InterfaceStylesPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/InterfaceStylesPlugin.java index e60938da35..9b54d4e69c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/InterfaceStylesPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/InterfaceStylesPlugin.java @@ -32,8 +32,6 @@ import java.awt.image.BufferedImage; import java.awt.image.PixelGrabber; import java.io.IOException; import java.io.InputStream; -import java.util.HashMap; -import java.util.Map; import javax.imageio.ImageIO; import javax.inject.Inject; import lombok.extern.slf4j.Slf4j; @@ -80,13 +78,7 @@ public class InterfaceStylesPlugin extends Plugin @Override protected void startUp() throws Exception { - clientThread.invoke(() -> - { - overrideSprites(); - overrideWidgetSprites(); - restoreWidgetDimensions(); - adjustWidgetDimensions(); - }); + clientThread.invoke(this::updateAllOverrides); } @Override @@ -104,14 +96,7 @@ public class InterfaceStylesPlugin extends Plugin { if (config.getGroup().equals("interfaceStyles")) { - clientThread.invoke(() -> - { - removeGameframe(); - overrideSprites(); - overrideWidgetSprites(); - restoreWidgetDimensions(); - adjustWidgetDimensions(); - }); + clientThread.invoke(this::updateAllOverrides); } } @@ -121,10 +106,17 @@ public class InterfaceStylesPlugin extends Plugin adjustWidgetDimensions(); } + private void updateAllOverrides() + { + removeGameframe(); + overrideSprites(); + overrideWidgetSprites(); + restoreWidgetDimensions(); + adjustWidgetDimensions(); + } + private void overrideSprites() { - Map overrides = new HashMap<>(); - for (SpriteOverride spriteOverride : SpriteOverride.values()) { for (Skin skin : spriteOverride.getSkin()) @@ -139,21 +131,25 @@ public class InterfaceStylesPlugin extends Plugin } else { - overrides.put(spriteOverride.getSpriteID(), spritePixels); + client.getSpriteOverrides().put(spriteOverride.getSpriteID(), spritePixels); } } } } + } + private void restoreSprites() + { client.getWidgetSpriteCache().reset(); - client.getSpriteOverrides().clear(); - client.getSpriteOverrides().putAll(overrides); + + for (SpriteOverride spriteOverride : SpriteOverride.values()) + { + client.getSpriteOverrides().remove(spriteOverride.getSpriteID()); + } } private void overrideWidgetSprites() { - Map widgetOverrides = new HashMap<>(); - for (WidgetOverride widgetOverride : WidgetOverride.values()) { if (widgetOverride.getSkin() == config.skin()) @@ -164,14 +160,22 @@ public class InterfaceStylesPlugin extends Plugin { for (WidgetInfo widgetInfo : widgetOverride.getWidgetInfo()) { - widgetOverrides.put(widgetInfo.getPackedId(), spritePixels); + client.getWidgetSpriteOverrides().put(widgetInfo.getPackedId(), spritePixels); } } } } + } - client.getWidgetSpriteOverrides().clear(); - client.getWidgetSpriteOverrides().putAll(widgetOverrides); + private void restoreWidgetSprites() + { + for (WidgetOverride widgetOverride : WidgetOverride.values()) + { + for (WidgetInfo widgetInfo : widgetOverride.getWidgetInfo()) + { + client.getWidgetSpriteOverrides().remove(widgetInfo.getPackedId()); + } + } } private SpritePixels getFileSpritePixels(String file, String subfolder) @@ -295,8 +299,8 @@ public class InterfaceStylesPlugin extends Plugin private void removeGameframe() { - client.getSpriteOverrides().clear(); - client.getWidgetSpriteOverrides().clear(); + restoreSprites(); + restoreWidgetSprites(); BufferedImage compassImage = spriteManager.getSprite(SpriteID.COMPASS_TEXTURE, 0);