diff --git a/runelite-api/src/main/java/net/runelite/api/Client.java b/runelite-api/src/main/java/net/runelite/api/Client.java index 4d94cf0d08..42e468825a 100644 --- a/runelite-api/src/main/java/net/runelite/api/Client.java +++ b/runelite-api/src/main/java/net/runelite/api/Client.java @@ -410,6 +410,12 @@ public interface Client extends GameEngine @VisibleForDevtools void setChangedSkillsCount(int i); + void setSpriteOverrides(Map overrides); + + void setWidgetSpriteOverrides(Map overrides); + + void setCompass(SpritePixels spritePixels); + int getTickCount(); void setTickCount(int tickCount); diff --git a/runelite-api/src/main/java/net/runelite/api/SpriteID.java b/runelite-api/src/main/java/net/runelite/api/SpriteID.java index d2c8e3a163..99007f06b7 100644 --- a/runelite-api/src/main/java/net/runelite/api/SpriteID.java +++ b/runelite-api/src/main/java/net/runelite/api/SpriteID.java @@ -1395,7 +1395,7 @@ public final class SpriteID public static final int MINIMAP_ORB_WORLD_MAP_FRAME = 1438; public static final int MINIMAP_ORB_WORLD_MAP_PLANET = 1439; public static final int MINIMAP_ORB_WORLD_MAP_PLANET_HOVERED = 1440; - public static final int UNKNOWN_1441 = 1441; + public static final int FIXED_MODE_TOP_RIGHT_CORNER = 1441; /* Unmapped: 1442~1447 */ public static final int MAP_ICON_GENERAL_STORE = 1448; public static final int MAP_ICON_SWORD_SHOP = 1449; diff --git a/runelite-api/src/main/java/net/runelite/api/events/WidgetPositioned.java b/runelite-api/src/main/java/net/runelite/api/events/WidgetPositioned.java new file mode 100644 index 0000000000..0941dbc1d5 --- /dev/null +++ b/runelite-api/src/main/java/net/runelite/api/events/WidgetPositioned.java @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2018, Adam + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.api.events; + +import lombok.Value; + +@Value +public class WidgetPositioned +{ +} diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/Widget.java b/runelite-api/src/main/java/net/runelite/api/widgets/Widget.java index c97671b5a1..44562e9975 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/Widget.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/Widget.java @@ -137,6 +137,14 @@ public interface Widget void setOriginalY(int originalY); + int getOriginalHeight(); + + void setOriginalHeight(int originalHeight); + + int getOriginalWidth(); + + void setOriginalWidth(int originalWidth); + int getPaddingX(); void setPaddingX(int paddingX); diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java index 78e7a1abc3..0ac3bac30c 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java @@ -215,14 +215,43 @@ public class WidgetID static class FixedViewport { + static final int CLAN_CHAT_TAB = 31; + static final int FRIENDS_TAB = 32; + static final int IGNORES_TAB = 33; + static final int LOGOUT_TAB = 34; + static final int OPTIONS_TAB = 35; + static final int EMOTES_TAB = 36; + static final int MUSIC_TAB = 37; + static final int CLAN_CHAT_ICON = 38; + static final int FRIENDS_ICON = 39; + static final int IGNORES_ICON = 40; + static final int LOGOUT_ICON = 41; + static final int OPTIONS_ICON = 42; + static final int EMOTES_ICON = 43; + static final int MUSIC_ICON = 44; + static final int COMBAT_TAB = 48; + static final int STATS_TAB = 49; + static final int QUESTS_TAB = 50; static final int INVENTORY_TAB = 51; + static final int EQUIPMENT_TAB = 52; static final int PRAYER_TAB = 53; + static final int MAGIC_TAB = 54; + static final int COMBAT_ICON = 55; + static final int STATS_ICON = 56; + static final int QUESTS_ICON = 57; + static final int INVENTORY_ICON = 58; + static final int EQUIPMENT_ICON = 59; + static final int PRAYER_ICON = 60; + static final int MAGIC_ICON = 61; } static class ResizableViewport { + static final int QUESTS_TAB = 53; static final int INVENTORY_TAB = 54; static final int PRAYER_TAB = 56; + static final int COMBAT_ICON = 58; + static final int MAGIC_ICON = 64; } static class ResizableViewportBottomLine diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java index 9e77fc8301..01238754a1 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java @@ -130,12 +130,43 @@ public enum WidgetInfo LOGIN_CLICK_TO_PLAY_SCREEN(WidgetID.LOGIN_CLICK_TO_PLAY_GROUP_ID, 0), FIXED_VIEWPORT(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.Viewport.FIXED_VIEWPORT), + FIXED_VIEWPORT_COMBAT_TAB(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.COMBAT_TAB), + FIXED_VIEWPORT_STATS_TAB(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.STATS_TAB), + FIXED_VIEWPORT_QUESTS_TAB(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.QUESTS_TAB), FIXED_VIEWPORT_INVENTORY_TAB(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.INVENTORY_TAB), + FIXED_VIEWPORT_EQUIPMENT_TAB(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.EQUIPMENT_TAB), FIXED_VIEWPORT_PRAYER_TAB(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.PRAYER_TAB), + FIXED_VIEWPORT_MAGIC_TAB(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.MAGIC_TAB), + FIXED_VIEWPORT_CLAN_CHAT_TAB(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.CLAN_CHAT_TAB), + FIXED_VIEWPORT_FRIENDS_TAB(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.FRIENDS_TAB), + FIXED_VIEWPORT_IGNORES_TAB(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.IGNORES_TAB), + FIXED_VIEWPORT_LOGOUT_TAB(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.LOGOUT_TAB), + FIXED_VIEWPORT_OPTIONS_TAB(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.OPTIONS_TAB), + FIXED_VIEWPORT_EMOTES_TAB(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.EMOTES_TAB), + FIXED_VIEWPORT_MUSIC_TAB(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.MUSIC_TAB), + FIXED_VIEWPORT_COMBAT_ICON(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.COMBAT_ICON), + FIXED_VIEWPORT_STATS_ICON(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.STATS_ICON), + FIXED_VIEWPORT_QUESTS_ICON(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.QUESTS_ICON), + FIXED_VIEWPORT_INVENTORY_ICON(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.INVENTORY_ICON), + FIXED_VIEWPORT_EQUIPMENT_ICON(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.EQUIPMENT_ICON), + FIXED_VIEWPORT_PRAYER_ICON(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.PRAYER_ICON), + FIXED_VIEWPORT_MAGIC_ICON(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.MAGIC_ICON), + FIXED_VIEWPORT_CLAN_CHAT_ICON(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.CLAN_CHAT_ICON), + FIXED_VIEWPORT_FRIENDS_ICON(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.FRIENDS_ICON), + FIXED_VIEWPORT_IGNORES_ICON(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.IGNORES_ICON), + FIXED_VIEWPORT_LOGOUT_ICON(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.LOGOUT_ICON), + FIXED_VIEWPORT_OPTIONS_ICON(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.OPTIONS_ICON), + FIXED_VIEWPORT_EMOTES_ICON(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.EMOTES_ICON), + FIXED_VIEWPORT_MUSIC_ICON(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.MUSIC_ICON), + MINIMAP_WIDGET(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.Viewport.MINIMAP_WIDGET), RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.Viewport.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX), + RESIZABLE_VIEWPORT_QUESTS_TAB(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.ResizableViewport.QUESTS_TAB), RESIZABLE_VIEWPORT_INVENTORY_TAB(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.ResizableViewport.INVENTORY_TAB), RESIZABLE_VIEWPORT_PRAYER_TAB(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.ResizableViewport.PRAYER_TAB), + RESIZABLE_VIEWPORT_COMBAT_ICON(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.ResizableViewport.COMBAT_ICON), + RESIZABLE_VIEWPORT_MAGIC_ICON(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.ResizableViewport.MAGIC_ICON), + RESIZABLE_VIEWPORT_BOTTOM_LINE(WidgetID.RESIZABLE_VIEWPORT_BOTTOM_LINE_GROUP_ID, WidgetID.Viewport.RESIZABLE_VIEWPORT_BOTTOM_LINE), RESIZABLE_VIEWPORT_BOTTOM_LINE_INVENTORY_TAB(WidgetID.RESIZABLE_VIEWPORT_BOTTOM_LINE_GROUP_ID, WidgetID.ResizableViewportBottomLine.INVENTORY_TAB), RESIZABLE_VIEWPORT_BOTTOM_LINE_PRAYER_TAB(WidgetID.RESIZABLE_VIEWPORT_BOTTOM_LINE_GROUP_ID, WidgetID.ResizableViewportBottomLine.PRAYER_TAB), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/InterfaceStylesConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/InterfaceStylesConfig.java new file mode 100644 index 0000000000..8258c2ffa3 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/InterfaceStylesConfig.java @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2018, Lotto + * Copyright (c) 2018, Raqes + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.interfacestyles; + +import net.runelite.client.config.Config; +import net.runelite.client.config.ConfigGroup; +import net.runelite.client.config.ConfigItem; + +@ConfigGroup( + keyName = "interfaceStyles", + name = "Interface Styles", + description = "Configuration for the Interface Styles plugin" +) +public interface InterfaceStylesConfig extends Config +{ + @ConfigItem( + keyName = "gameframe", + name = "Gameframe", + description = "The gameframe to use for the interface" + ) + default Skin skin() + { + return Skin.AROUND_2010; + } +} \ No newline at end of file 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 new file mode 100644 index 0000000000..b65f7ed3f5 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/InterfaceStylesPlugin.java @@ -0,0 +1,268 @@ +/* + * Copyright (c) 2018, Lotto + * Copyright (c) 2018, Raqes + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.interfacestyles; + +import com.google.common.eventbus.Subscribe; +import com.google.inject.Provides; +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; +import net.runelite.api.Client; +import net.runelite.api.SpriteID; +import net.runelite.api.SpritePixels; +import net.runelite.api.events.ConfigChanged; +import net.runelite.api.events.WidgetPositioned; +import net.runelite.api.widgets.Widget; +import net.runelite.api.widgets.WidgetInfo; +import net.runelite.client.config.ConfigManager; +import net.runelite.client.game.SpriteManager; +import net.runelite.client.plugins.Plugin; +import net.runelite.client.plugins.PluginDescriptor; + +@Slf4j +@PluginDescriptor( + name = "Interface Styles", + enabledByDefault = false +) +public class InterfaceStylesPlugin extends Plugin +{ + @Inject + private Client client; + + @Inject + private InterfaceStylesConfig config; + + @Inject + private SpriteManager spriteManager; + + @Provides + InterfaceStylesConfig provideConfig(ConfigManager configManager) + { + return configManager.getConfig(InterfaceStylesConfig.class); + } + + @Override + protected void startUp() throws Exception + { + overrideSprites(); + overrideWidgetSprites(); + restoreWidgetDimensions(); + adjustWidgetDimensions(); + } + + @Override + protected void shutDown() throws Exception + { + restoreWidgetDimensions(); + removeGameframe(); + } + + @Subscribe + public void onConfigChanged(ConfigChanged config) + { + if (config.getGroup().equals("interfaceStyles")) + { + removeGameframe(); + overrideSprites(); + overrideWidgetSprites(); + restoreWidgetDimensions(); + adjustWidgetDimensions(); + } + } + + @Subscribe + public void onWidgetPositioned(WidgetPositioned widgetPositioned) + { + adjustWidgetDimensions(); + } + + private void overrideSprites() + { + Map overrides = new HashMap<>(); + + for (SpriteOverride spriteOverride : SpriteOverride.values()) + { + for (Skin skin : spriteOverride.getSkin()) + { + if (skin == config.skin()) + { + SpritePixels spritePixels = getFileSpritePixels(String.valueOf(spriteOverride.getSpriteID()), null); + + if (spriteOverride.getSpriteID() == SpriteID.COMPASS_TEXTURE) + { + client.setCompass(spritePixels); + } + else + { + overrides.put(spriteOverride.getSpriteID(), spritePixels); + } + } + } + } + + client.setSpriteOverrides(overrides); + } + + private void overrideWidgetSprites() + { + Map widgetOverrides = new HashMap<>(); + + for (WidgetOverride widgetOverride : WidgetOverride.values()) + { + if (widgetOverride.getSkin() == config.skin()) + { + SpritePixels spritePixels = getFileSpritePixels(widgetOverride.getName(), "widget"); + + if (spritePixels != null) + { + for (WidgetInfo widgetInfo : widgetOverride.getWidgetInfo()) + { + widgetOverrides.put(widgetInfo.getPackedId(), spritePixels); + } + } + } + } + + client.setWidgetSpriteOverrides(widgetOverrides); + } + + private SpritePixels getFileSpritePixels(String file, String subfolder) + { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(config.skin().toString() + "/"); + + if (subfolder != null) + { + stringBuilder.append(subfolder + "/"); + } + + stringBuilder.append(file + ".png"); + String filePath = stringBuilder.toString(); + + try (InputStream inputStream = InterfaceStylesPlugin.class.getResourceAsStream(filePath)) + { + log.debug("Loading: " + filePath); + BufferedImage spriteImage = ImageIO.read(inputStream); + return getImageSpritePixels(spriteImage); + } + catch (IOException ex) + { + log.debug("Unable to load image: ", ex); + } + + return null; + } + + private SpritePixels getImageSpritePixels(BufferedImage image) + { + int[] pixels = new int[image.getWidth() * image.getHeight()]; + + try + { + new PixelGrabber(image, 0, 0, image.getWidth(), image.getHeight(), pixels, 0, image.getWidth()) + .grabPixels(); + } + catch (InterruptedException ex) + { + log.debug("PixelGrabber was interrupted: ", ex); + } + + return client.createSpritePixels(pixels, image.getWidth(), image.getHeight()); + } + + private void adjustWidgetDimensions() + { + for (WidgetOffset widgetOffset : WidgetOffset.values()) + { + if (widgetOffset.getSkin() != config.skin()) + { + continue; + } + + Widget widget = client.getWidget(widgetOffset.getWidgetInfo()); + + if (widget != null) + { + if (widgetOffset.getOffsetX() != null) + { + widget.setRelativeX(widgetOffset.getOffsetX()); + } + + if (widgetOffset.getOffsetY() != null) + { + widget.setRelativeY(widgetOffset.getOffsetY()); + } + + if (widgetOffset.getWidth() != null) + { + widget.setWidth(widgetOffset.getWidth()); + } + + if (widgetOffset.getHeight() != null) + { + widget.setHeight(widgetOffset.getHeight()); + } + } + } + } + + private void restoreWidgetDimensions() + { + for (WidgetOffset widgetOffset : WidgetOffset.values()) + { + Widget widget = client.getWidget(widgetOffset.getWidgetInfo()); + + if (widget != null) + { + widget.setRelativeX(widget.getOriginalX()); + widget.setRelativeY(widget.getOriginalY()); + widget.setHeight(widget.getOriginalHeight()); + widget.setWidth(widget.getOriginalWidth()); + } + } + } + + private void removeGameframe() + { + client.setSpriteOverrides(null); + client.setWidgetSpriteOverrides(null); + + BufferedImage compassImage = spriteManager.getSprite(SpriteID.COMPASS_TEXTURE, 0); + + if (compassImage != null) + { + SpritePixels compass = getImageSpritePixels(compassImage); + client.setCompass(compass); + } + } +} \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/Skin.java b/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/Skin.java new file mode 100644 index 0000000000..5d31ff6998 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/Skin.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2018, Lotto + * Copyright (c) 2018, Raqes + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.interfacestyles; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum Skin +{ + AROUND_2005("2005"), + AROUND_2010("2010"); + + private String name; + + @Override + public String toString() + { + return getName(); + } +} \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/SpriteOverride.java b/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/SpriteOverride.java new file mode 100644 index 0000000000..59498950e2 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/SpriteOverride.java @@ -0,0 +1,136 @@ +/* + * Copyright (c) 2018, Lotto + * Copyright (c) 2018, Raqes + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.interfacestyles; + +import lombok.Getter; +import net.runelite.api.SpriteID; +import static net.runelite.client.plugins.interfacestyles.Skin.AROUND_2005; +import static net.runelite.client.plugins.interfacestyles.Skin.AROUND_2010; + +@Getter +enum SpriteOverride +{ + TAB_COMBAT(SpriteID.TAB_COMBAT, AROUND_2005, AROUND_2010), + TAB_STATS(SpriteID.TAB_STATS, AROUND_2005, AROUND_2010), + TAB_QUESTS(SpriteID.TAB_QUESTS, AROUND_2005), + TAB_QUESTS_PURPLE_KOUREND_1299(SpriteID.TAB_QUESTS_PURPLE_KOUREND_1299, AROUND_2005), + TAB_QUESTS_RED_MINIGAMES(SpriteID.TAB_QUESTS_RED_MINIGAMES, AROUND_2005), + TAB_QUESTS_GREEN_ACHIEVEMENT_DIARIES(SpriteID.TAB_QUESTS_GREEN_ACHIEVEMENT_DIARIES, AROUND_2005), + TAB_INVENTORY(SpriteID.TAB_INVENTORY, AROUND_2005, AROUND_2010), + TAB_EQUIPMENT(SpriteID.TAB_EQUIPMENT, AROUND_2005, AROUND_2010), + TAB_PRAYER(SpriteID.TAB_PRAYER, AROUND_2005, AROUND_2010), + TAB_MAGIC(SpriteID.TAB_MAGIC, AROUND_2005, AROUND_2010), + TAB_CLAN_CHAT(SpriteID.TAB_CLAN_CHAT, AROUND_2005, AROUND_2010), + TAB_FRIENDS(SpriteID.TAB_FRIENDS, AROUND_2005, AROUND_2010), + TAB_IGNORES(SpriteID.TAB_IGNORES, AROUND_2005, AROUND_2010), + TAB_LOGOUT(SpriteID.TAB_LOGOUT, AROUND_2005, AROUND_2010), + TAB_OPTIONS(SpriteID.TAB_OPTIONS, AROUND_2005, AROUND_2010), + TAB_EMOTES(SpriteID.TAB_EMOTES, AROUND_2005, AROUND_2010), + TAB_MUSIC(SpriteID.TAB_MUSIC, AROUND_2005, AROUND_2010), + + SKILL_ATTACK(SpriteID.SKILL_ATTACK, AROUND_2010), + SKILL_STRENGTH(SpriteID.SKILL_STRENGTH, AROUND_2010), + SKILL_DEFENCE(SpriteID.SKILL_DEFENCE, AROUND_2010), + SKILL_RANGED(SpriteID.SKILL_RANGED, AROUND_2010), + SKILL_PRAYER(SpriteID.SKILL_PRAYER, AROUND_2005, AROUND_2010), + SKILL_MAGIC(SpriteID.SKILL_MAGIC, AROUND_2010), + SKILL_HITPOINTS(SpriteID.SKILL_HITPOINTS, AROUND_2010), + SKILL_AGILITY(SpriteID.SKILL_AGILITY, AROUND_2010), + SKILL_HERBLORE(SpriteID.SKILL_HERBLORE, AROUND_2010), + SKILL_THIEVING(SpriteID.SKILL_THIEVING, AROUND_2010), + SKILL_CRAFTING(SpriteID.SKILL_CRAFTING, AROUND_2010), + SKILL_FLETCHING(SpriteID.SKILL_FLETCHING, AROUND_2010), + SKILL_MINING(SpriteID.SKILL_MINING, AROUND_2010), + SKILL_SMITHING(SpriteID.SKILL_SMITHING, AROUND_2010), + SKILL_FISHING(SpriteID.SKILL_FISHING, AROUND_2010), + SKILL_COOKING(SpriteID.SKILL_COOKING, AROUND_2010), + SKILL_FIREMAKING(SpriteID.SKILL_FIREMAKING, AROUND_2010), + SKILL_WOODCUTTING(SpriteID.SKILL_WOODCUTTING, AROUND_2010), + SKILL_RUNECRAFT(SpriteID.SKILL_RUNECRAFT, AROUND_2010), + SKILL_SLAYER(SpriteID.SKILL_SLAYER, AROUND_2010), + SKILL_HUNTER(SpriteID.SKILL_HUNTER, AROUND_2010), + SKILL_CONSTRUCTION(SpriteID.SKILL_CONSTRUCTION, AROUND_2010), + + COMPASS(SpriteID.COMPASS_TEXTURE, AROUND_2005), + WINDOW_CLOSE_BUTTON_BROWN_X_HOVERED(SpriteID.WINDOW_CLOSE_BUTTON_BROWN_X_HOVERED, AROUND_2010), + MINIMAP_ORB_FRAME(SpriteID.MINIMAP_ORB_FRAME, AROUND_2010), + MINIMAP_ORB_FRAME_HOVERED(SpriteID.MINIMAP_ORB_FRAME_HOVERED, AROUND_2010), + MINIMAP_ORB_XP(SpriteID.MINIMAP_ORB_XP, AROUND_2010), + MINIMAP_ORB_XP_ACTIVATED(SpriteID.MINIMAP_ORB_XP_ACTIVATED, AROUND_2010), + MINIMAP_ORB_XP_HOVERED(SpriteID.MINIMAP_ORB_XP_HOVERED, AROUND_2010), + MINIMAP_ORB_XP_ACTIVATED_HOVERED(SpriteID.MINIMAP_ORB_XP_ACTIVATED_HOVERED, AROUND_2010), + MINIMAP_ORB_WORLD_MAP_FRAME(SpriteID.MINIMAP_ORB_WORLD_MAP_FRAME, AROUND_2010), + MINIMAP_ORB_WORLD_MAP_PLANET(SpriteID.MINIMAP_ORB_WORLD_MAP_PLANET, AROUND_2010), + + //CHATBOX(SpriteID.CHATBOX, AROUND_2005), + CHATBOX_BUTTONS_BACKGROUND_STONES(SpriteID.CHATBOX_BUTTONS_BACKGROUND_STONES, AROUND_2005), + CHATBOX_BUTTON(SpriteID.CHATBOX_BUTTON, AROUND_2005), + CHATBOX_BUTTON_HOVERED(SpriteID.CHATBOX_BUTTON_HOVERED, AROUND_2005), + CHATBOX_BUTTON_NEW_MESSAGES( SpriteID.CHATBOX_BUTTON_NEW_MESSAGES, AROUND_2005), + CHATBOX_BUTTON_SELECTED(SpriteID.CHATBOX_BUTTON_SELECTED, AROUND_2005), + CHATBOX_BUTTON_SELECTED_HOVERED(SpriteID.CHATBOX_BUTTON_SELECTED_HOVERED, AROUND_2005), + CHATBOX_REPORT_BUTTON(SpriteID.CHATBOX_REPORT_BUTTON, AROUND_2005), + CHATBOX_REPORT_BUTTON_HOVERED(SpriteID.CHATBOX_REPORT_BUTTON_HOVERED, AROUND_2005), + + TAB_STONE_TOP_LEFT_SELECTED(SpriteID.TAB_STONE_TOP_LEFT_SELECTED, AROUND_2010), + TAB_STONE_TOP_RIGHT_SELECTED(SpriteID.TAB_STONE_TOP_RIGHT_SELECTED, AROUND_2010), + TAB_STONE_BOTTOM_LEFT_SELECTED(SpriteID.TAB_STONE_BOTTOM_LEFT_SELECTED, AROUND_2010), + TAB_STONE_BOTTOM_RIGHT_SELECTED(SpriteID.TAB_STONE_BOTTOM_RIGHT_SELECTED, AROUND_2010), + TAB_STONE_MIDDLE_SELECTED(SpriteID.TAB_STONE_MIDDLE_SELECTED, AROUND_2010), + + FIXED_MODE_SIDE_PANEL_BACKGROUND(SpriteID.FIXED_MODE_SIDE_PANEL_BACKGROUND, AROUND_2005), + FIXED_MODE_TABS_ROW_BOTTOM(SpriteID.FIXED_MODE_TABS_ROW_BOTTOM, AROUND_2005, AROUND_2010), + + OLD_SCHOOl_MODE_SIDE_PANEL_EDGE_LEFT_UPPER(SpriteID.OLD_SCHOOl_MODE_SIDE_PANEL_EDGE_LEFT_UPPER, AROUND_2005, AROUND_2010), + OLD_SCHOOl_MODE_SIDE_PANEL_EDGE_LEFT_LOWER(SpriteID.OLD_SCHOOl_MODE_SIDE_PANEL_EDGE_LEFT_LOWER, AROUND_2005, AROUND_2010), + OLD_SCHOOl_MODE_SIDE_PANEL_EDGE_RIGHT(SpriteID.OLD_SCHOOl_MODE_SIDE_PANEL_EDGE_RIGHT, AROUND_2005, AROUND_2010), + + FIXED_MODE_TABS_TOP_ROW(SpriteID.FIXED_MODE_TABS_TOP_ROW, AROUND_2005, AROUND_2010), + FIXED_MODE_MINIMAP_LEFT_EDGE(SpriteID.FIXED_MODE_MINIMAP_LEFT_EDGE, AROUND_2005, AROUND_2010), + FIXED_MODE_MINIMAP_RIGHT_EDGE(SpriteID.FIXED_MODE_MINIMAP_RIGHT_EDGE, AROUND_2005, AROUND_2010), + FIXED_MODE_WINDOW_FRAME_EDGE_TOP(SpriteID.FIXED_MODE_WINDOW_FRAME_EDGE_TOP, AROUND_2005, AROUND_2010), + FIXED_MODE_MINIMAP_AND_COMPASS_FRAME(SpriteID.FIXED_MODE_MINIMAP_AND_COMPASS_FRAME, AROUND_2005, AROUND_2010), + FIXED_MODE_MINIMAP_FRAME_BOTTOM(SpriteID.FIXED_MODE_MINIMAP_FRAME_BOTTOM, AROUND_2005), + FIXED_MODE_TOP_RIGHT_CORNER(SpriteID.FIXED_MODE_TOP_RIGHT_CORNER, AROUND_2005), + + RESIZEABLE_MODE_TABS_TOP_ROW(SpriteID.RESIZEABLE_MODE_TABS_TOP_ROW, AROUND_2010), + RESIZEABLE_MODE_TABS_BOTTOM_ROW(SpriteID.RESIZEABLE_MODE_TABS_BOTTOM_ROW, AROUND_2010), + RESIZEABLE_MODE_SIDE_PANEL_EDGE_LEFT(SpriteID.RESIZEABLE_MODE_SIDE_PANEL_EDGE_LEFT, AROUND_2010), + RESIZEABLE_MODE_SIDE_PANEL_EDGE_RIGHT(SpriteID.RESIZEABLE_MODE_SIDE_PANEL_EDGE_RIGHT, AROUND_2010), + RESIZEABLE_MODE_MINIMAP_AND_COMPASS_FRAME(SpriteID.RESIZEABLE_MODE_MINIMAP_AND_COMPASS_FRAME, AROUND_2010), + RESIZEABLE_MODE_TAB_STONE_MIDDLE(SpriteID.RESIZEABLE_MODE_TAB_STONE_MIDDLE, AROUND_2010), + RESIZEABLE_MODE_TAB_STONE_MIDDLE_SELECTED(SpriteID.RESIZEABLE_MODE_TAB_STONE_MIDDLE_SELECTED, AROUND_2010); + + private int spriteID; + private Skin[] skin; + + SpriteOverride(int spriteID, Skin... skin) + { + this.spriteID = spriteID; + this.skin = skin; + } +} \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/WidgetOffset.java b/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/WidgetOffset.java new file mode 100644 index 0000000000..abe558e7d5 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/WidgetOffset.java @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2018, Lotto + * Copyright (c) 2018, Raqes + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.interfacestyles; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import net.runelite.api.widgets.WidgetInfo; + +@Getter +@AllArgsConstructor +enum WidgetOffset +{ + RESIZABLE_2010_COMBAT_ICON(Skin.AROUND_2010, WidgetInfo.RESIZABLE_VIEWPORT_COMBAT_ICON, 6, null, null, null), + RESIZABLE_2010_QUESTS_HIGHLIGHT(Skin.AROUND_2010, WidgetInfo.RESIZABLE_VIEWPORT_QUESTS_TAB, null, null, 33, null), + RESIZABLE_2010_MAGIC_ICON(Skin.AROUND_2010, WidgetInfo.RESIZABLE_VIEWPORT_MAGIC_ICON, 205, null, null, null), + + FIXED_2010_COMBAT_ICON(Skin.AROUND_2010, WidgetInfo.FIXED_VIEWPORT_COMBAT_ICON, 12, null, null, null), + FIXED_2010_QUESTS_HIGHLIGHT(Skin.AROUND_2010, WidgetInfo.FIXED_VIEWPORT_QUESTS_TAB, null, null, 33, null), + FIXED_2010_MAGIC_ICON(Skin.AROUND_2010, WidgetInfo.FIXED_VIEWPORT_MAGIC_ICON, 212, null, null, null), + FIXED_2010_FRIENDS_HIGHLIGHT(Skin.AROUND_2010, WidgetInfo.FIXED_VIEWPORT_FRIENDS_TAB, null, null, 33, null), + + FIXED_2005_COMBAT_HIGHLIGHT(Skin.AROUND_2005, WidgetInfo.FIXED_VIEWPORT_COMBAT_TAB, 19, 2, null, null), + FIXED_2005_COMBAT_ICON(Skin.AROUND_2005, WidgetInfo.FIXED_VIEWPORT_COMBAT_ICON, 26, null, null, null), + FIXED_2005_STATS_HIGHLIGHT(Skin.AROUND_2005, WidgetInfo.FIXED_VIEWPORT_STATS_TAB, 55, null, 30, null), + FIXED_2005_STATS_ICON(Skin.AROUND_2005, WidgetInfo.FIXED_VIEWPORT_STATS_ICON, 53, null, null, null), + FIXED_2005_QUESTS_HIGHLIGHT(Skin.AROUND_2005, WidgetInfo.FIXED_VIEWPORT_QUESTS_TAB, 82, 1, 30, null), + FIXED_2005_QUESTS_ICON(Skin.AROUND_2005, WidgetInfo.FIXED_VIEWPORT_QUESTS_ICON, 81, null, null, null), + FIXED_2005_INVENTORY_HIGHLIGHT(Skin.AROUND_2005, WidgetInfo.FIXED_VIEWPORT_INVENTORY_TAB, null, null, 45, null), + FIXED_2005_INVENTORY_ICON(Skin.AROUND_2005, WidgetInfo.FIXED_VIEWPORT_INVENTORY_ICON, 115, null, null, null), + FIXED_2005_EQUIPMENT_HIGHLIGHT(Skin.AROUND_2005, WidgetInfo.FIXED_VIEWPORT_EQUIPMENT_TAB, 153, 1, 30, null), + FIXED_2005_EQUIPMENT_ICON(Skin.AROUND_2005, WidgetInfo.FIXED_VIEWPORT_EQUIPMENT_ICON, 152, 4, null, null), + FIXED_2005_PRAYER_HIGHLIGHT(Skin.AROUND_2005, WidgetInfo.FIXED_VIEWPORT_PRAYER_TAB, 180, null, 32, null), + FIXED_2005_PRAYER_ICON(Skin.AROUND_2005, WidgetInfo.FIXED_VIEWPORT_PRAYER_ICON, 180, null, null, null), + FIXED_2005_MAGIC_HIGHLIGHT(Skin.AROUND_2005, WidgetInfo.FIXED_VIEWPORT_MAGIC_TAB, 209, 1, 30, null), + FIXED_2005_MAGIC_ICON(Skin.AROUND_2005, WidgetInfo.FIXED_VIEWPORT_MAGIC_ICON, 204, 3, null, null), + FIXED_2005_CLAN_CHAT_HIGHLIGHT(Skin.AROUND_2005, WidgetInfo.FIXED_VIEWPORT_CLAN_CHAT_TAB, 15, null, null, null), + FIXED_2005_CLAN_CHAT_ICON(Skin.AROUND_2005, WidgetInfo.FIXED_VIEWPORT_CLAN_CHAT_ICON, 22, 0, null, null), + FIXED_2005_FRIENDS_HIGHLIGHT(Skin.AROUND_2005, WidgetInfo.FIXED_VIEWPORT_FRIENDS_TAB, 51, null, 30, null), + FIXED_2005_FRIENDS_ICON(Skin.AROUND_2005, WidgetInfo.FIXED_VIEWPORT_FRIENDS_ICON, 50, null, null, null), + FIXED_2005_IGNORES_HIGHLIGHT(Skin.AROUND_2005, WidgetInfo.FIXED_VIEWPORT_IGNORES_TAB, 79, null, 30, null), + FIXED_2005_IGNORES_ICON(Skin.AROUND_2005, WidgetInfo.FIXED_VIEWPORT_IGNORES_ICON, 78, null, null, null), + FIXED_2005_LOGOUT_HIGHLIGHT(Skin.AROUND_2005, WidgetInfo.FIXED_VIEWPORT_LOGOUT_TAB, 107, null, 45, null), + FIXED_2005_LOGOUT_ICON(Skin.AROUND_2005, WidgetInfo.FIXED_VIEWPORT_LOGOUT_ICON, 114, null, null, null), + FIXED_2005_OPTIONS_HIGHLIGHT(Skin.AROUND_2005, WidgetInfo.FIXED_VIEWPORT_OPTIONS_TAB, 150, null, 30, null), + FIXED_2005_OPTIONS_ICON(Skin.AROUND_2005, WidgetInfo.FIXED_VIEWPORT_OPTIONS_ICON, 149, null, null, null), + FIXED_2005_EMOTES_HIGHLIGHT(Skin.AROUND_2005, WidgetInfo.FIXED_VIEWPORT_EMOTES_TAB, 178, null, 30, null), + FIXED_2005_EMOTES_ICON(Skin.AROUND_2005, WidgetInfo.FIXED_VIEWPORT_EMOTES_ICON, 179, null, null, null), + FIXED_2005_MUSIC_HIGHLIGHT(Skin.AROUND_2005, WidgetInfo.FIXED_VIEWPORT_MUSIC_TAB, 206, null, 30, null), + FIXED_2005_MUSIC_ICON(Skin.AROUND_2005, WidgetInfo.FIXED_VIEWPORT_MUSIC_ICON, 202, 5, null, null); + + private Skin skin; + private WidgetInfo widgetInfo; + private Integer offsetX; + private Integer offsetY; + private Integer width; + private Integer height; +} \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/WidgetOverride.java b/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/WidgetOverride.java new file mode 100644 index 0000000000..46997704a5 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/WidgetOverride.java @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2018, Lotto + * Copyright (c) 2018, Raqes + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.interfacestyles; + +import lombok.Getter; +import net.runelite.api.widgets.WidgetInfo; + +@Getter +enum WidgetOverride +{ + FIXED_CORNER_TOP_LEFT_2005(Skin.AROUND_2005, "1026", WidgetInfo.FIXED_VIEWPORT_COMBAT_TAB), + FIXED_CORNER_TOP_RIGHT_2005(Skin.AROUND_2005, "1027", WidgetInfo.FIXED_VIEWPORT_MAGIC_TAB), + FIXED_CORNER_BOTTOM_LEFT_2005(Skin.AROUND_2005, "1028", WidgetInfo.FIXED_VIEWPORT_CLAN_CHAT_TAB), + FIXED_CORNER_BOTTOM_RIGHT_2005(Skin.AROUND_2005, "1029", WidgetInfo.FIXED_VIEWPORT_MUSIC_TAB), + FIXED_TOP_LEFT_2005(Skin.AROUND_2005, "1030_top_left", WidgetInfo.FIXED_VIEWPORT_STATS_TAB, WidgetInfo.FIXED_VIEWPORT_QUESTS_TAB), + FIXED_TOP_RIGHT_2005(Skin.AROUND_2005, "1030_top_right", WidgetInfo.FIXED_VIEWPORT_EQUIPMENT_TAB, WidgetInfo.FIXED_VIEWPORT_PRAYER_TAB), + FIXED_TOP_MIDDLE_2005(Skin.AROUND_2005, "1030_top_middle", WidgetInfo.FIXED_VIEWPORT_INVENTORY_TAB), + FIXED_BOTTOM_LEFT_2005(Skin.AROUND_2005, "1030_bottom_left", WidgetInfo.FIXED_VIEWPORT_FRIENDS_TAB, WidgetInfo.FIXED_VIEWPORT_IGNORES_TAB), + FIXED_BOTTOM_RIGHT_2005(Skin.AROUND_2005, "1030_bottom_middle", WidgetInfo.FIXED_VIEWPORT_LOGOUT_TAB), + FIXED_BOTTOM_MIDDLE_2005(Skin.AROUND_2005, "1030_bottom_right", WidgetInfo.FIXED_VIEWPORT_OPTIONS_TAB, WidgetInfo.FIXED_VIEWPORT_EMOTES_TAB); + + private Skin skin; + private String name; + private WidgetInfo[] widgetInfo; + + WidgetOverride(Skin skin, String name, WidgetInfo... widgetInfo) + { + this.skin = skin; + this.name = name; + this.widgetInfo = widgetInfo; + } +} \ No newline at end of file diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1017.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1017.png new file mode 100644 index 0000000000..aafc6f1b4e Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1017.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1018.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1018.png new file mode 100644 index 0000000000..301de94239 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1018.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1019.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1019.png new file mode 100644 index 0000000000..cc7a333d47 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1019.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1020.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1020.png new file mode 100644 index 0000000000..e558eb0214 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1020.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1021.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1021.png new file mode 100644 index 0000000000..30af9643e9 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1021.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1022.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1022.png new file mode 100644 index 0000000000..98c774c194 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1022.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1023.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1023.png new file mode 100644 index 0000000000..21bc6a5b4e Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1023.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1024.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1024.png new file mode 100644 index 0000000000..cd2b787671 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1024.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1025.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1025.png new file mode 100644 index 0000000000..02765af47c Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1025.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1031.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1031.png new file mode 100644 index 0000000000..abe2c4279c Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1031.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1032.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1032.png new file mode 100644 index 0000000000..e33e8ab7c4 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1032.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1033.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1033.png new file mode 100644 index 0000000000..b719816563 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1033.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1034.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1034.png new file mode 100644 index 0000000000..4e0e61062e Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1034.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1035.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1035.png new file mode 100644 index 0000000000..bc93c8c85a Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1035.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1036.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1036.png new file mode 100644 index 0000000000..2b7b4ec4f8 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1036.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1037.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1037.png new file mode 100644 index 0000000000..3ccdf028ae Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1037.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1038.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1038.png new file mode 100644 index 0000000000..01f2d80350 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1038.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1039.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1039.png new file mode 100644 index 0000000000..39ce3a1fe3 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1039.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1052.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1052.png new file mode 100644 index 0000000000..b24caaadaf Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1052.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1053.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1053.png new file mode 100644 index 0000000000..ba2cb8a37e Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1053.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1182.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1182.png new file mode 100644 index 0000000000..f4c4c01cff Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1182.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1299.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1299.png new file mode 100644 index 0000000000..7d9f6237d2 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1299.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1441.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1441.png new file mode 100644 index 0000000000..c74573169b Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1441.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1611.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1611.png new file mode 100644 index 0000000000..da0415c8d6 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/1611.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/168.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/168.png new file mode 100644 index 0000000000..f6745a2277 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/168.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/169.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/169.png new file mode 100644 index 0000000000..0d01466b28 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/169.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/201.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/201.png new file mode 100644 index 0000000000..4c90805daa Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/201.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/776.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/776.png new file mode 100644 index 0000000000..a28e2c803c Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/776.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/780.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/780.png new file mode 100644 index 0000000000..ee1ce938ca Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/780.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/884.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/884.png new file mode 100644 index 0000000000..dc5d6d9146 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/884.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/895.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/895.png new file mode 100644 index 0000000000..0882f990d7 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/895.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/898.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/898.png new file mode 100644 index 0000000000..8a07c2f7d5 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/898.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/901.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/901.png new file mode 100644 index 0000000000..6d2fd405fc Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/901.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/902.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/902.png new file mode 100644 index 0000000000..589ea6cc8e Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/902.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/904.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/904.png new file mode 100644 index 0000000000..2434140400 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/904.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/905.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/905.png new file mode 100644 index 0000000000..595b7362ea Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/905.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/906.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/906.png new file mode 100644 index 0000000000..0bf2dca88a Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/906.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/907.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/907.png new file mode 100644 index 0000000000..6bd13fed1e Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/907.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/908.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/908.png new file mode 100644 index 0000000000..2bda37a3a7 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/908.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/909.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/909.png new file mode 100644 index 0000000000..f10557b63c Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/909.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/widget/1026.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/widget/1026.png new file mode 100644 index 0000000000..3342c09cbc Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/widget/1026.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/widget/1027.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/widget/1027.png new file mode 100644 index 0000000000..6dd921d95b Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/widget/1027.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/widget/1028.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/widget/1028.png new file mode 100644 index 0000000000..7de5b0b890 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/widget/1028.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/widget/1029.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/widget/1029.png new file mode 100644 index 0000000000..61e9e9849f Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/widget/1029.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/widget/1030_bottom_left.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/widget/1030_bottom_left.png new file mode 100644 index 0000000000..0ce2cf3f60 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/widget/1030_bottom_left.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/widget/1030_bottom_middle.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/widget/1030_bottom_middle.png new file mode 100644 index 0000000000..5ea90546d9 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/widget/1030_bottom_middle.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/widget/1030_bottom_right.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/widget/1030_bottom_right.png new file mode 100644 index 0000000000..ccd3b1b521 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/widget/1030_bottom_right.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/widget/1030_top_left.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/widget/1030_top_left.png new file mode 100644 index 0000000000..abc1f1ab26 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/widget/1030_top_left.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/widget/1030_top_middle.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/widget/1030_top_middle.png new file mode 100644 index 0000000000..3c3f241130 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/widget/1030_top_middle.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/widget/1030_top_right.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/widget/1030_top_right.png new file mode 100644 index 0000000000..a5fa691ebe Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2005/widget/1030_top_right.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1026.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1026.png new file mode 100644 index 0000000000..054f5173c5 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1026.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1027.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1027.png new file mode 100644 index 0000000000..adf66d9aa0 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1027.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1028.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1028.png new file mode 100644 index 0000000000..27967daadb Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1028.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1029.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1029.png new file mode 100644 index 0000000000..4fbb6b9353 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1029.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1030.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1030.png new file mode 100644 index 0000000000..7684ca24d2 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1030.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1032.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1032.png new file mode 100644 index 0000000000..fc4d8f7b06 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1032.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1033.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1033.png new file mode 100644 index 0000000000..c5e1311b63 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1033.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1034.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1034.png new file mode 100644 index 0000000000..d90bdc7fef Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1034.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1035.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1035.png new file mode 100644 index 0000000000..faa4bc484d Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1035.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1036.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1036.png new file mode 100644 index 0000000000..aca85eb9ee Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1036.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1037.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1037.png new file mode 100644 index 0000000000..3fb823a444 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1037.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1038.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1038.png new file mode 100644 index 0000000000..9853f89492 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1038.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1039.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1039.png new file mode 100644 index 0000000000..7080a4f2f3 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1039.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1071.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1071.png new file mode 100644 index 0000000000..e2326aa027 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1071.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1072.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1072.png new file mode 100644 index 0000000000..ba03ce265a Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1072.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1173.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1173.png new file mode 100644 index 0000000000..6e36b2afd0 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1173.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1174.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1174.png new file mode 100644 index 0000000000..451c1d3ab2 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1174.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1175.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1175.png new file mode 100644 index 0000000000..da79173d1e Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1175.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1176.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1176.png new file mode 100644 index 0000000000..d6d318e7c6 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1176.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1177.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1177.png new file mode 100644 index 0000000000..8e72d75835 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1177.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1180.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1180.png new file mode 100644 index 0000000000..21a33542ac Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1180.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1181.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1181.png new file mode 100644 index 0000000000..1647afd97d Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1181.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1182.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1182.png new file mode 100644 index 0000000000..2068ca0a9c Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1182.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1196.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1196.png new file mode 100644 index 0000000000..96d42baba9 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1196.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1197.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1197.png new file mode 100644 index 0000000000..d7ff3a81e9 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1197.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1198.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1198.png new file mode 100644 index 0000000000..8fc435a548 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1198.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1199.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1199.png new file mode 100644 index 0000000000..ad5fdb5fee Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1199.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1438.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1438.png new file mode 100644 index 0000000000..b6df0be849 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1438.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1439.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1439.png new file mode 100644 index 0000000000..6cfb20ed2e Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1439.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1440.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1440.png new file mode 100644 index 0000000000..8f78e6b0f9 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/1440.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/168.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/168.png new file mode 100644 index 0000000000..6dc053d7ff Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/168.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/197.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/197.png new file mode 100644 index 0000000000..8da32b115a Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/197.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/198.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/198.png new file mode 100644 index 0000000000..3d115fa024 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/198.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/199.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/199.png new file mode 100644 index 0000000000..b92b7d041d Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/199.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/200.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/200.png new file mode 100644 index 0000000000..d7f4939370 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/200.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/201.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/201.png new file mode 100644 index 0000000000..094f1e3b76 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/201.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/202.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/202.png new file mode 100644 index 0000000000..3c898bf74c Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/202.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/203.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/203.png new file mode 100644 index 0000000000..b5eb32e20c Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/203.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/204.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/204.png new file mode 100644 index 0000000000..10692bf14f Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/204.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/205.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/205.png new file mode 100644 index 0000000000..5d339cba46 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/205.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/206.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/206.png new file mode 100644 index 0000000000..0b13166723 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/206.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/207.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/207.png new file mode 100644 index 0000000000..e011b8ca44 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/207.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/208.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/208.png new file mode 100644 index 0000000000..87af96624e Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/208.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/209.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/209.png new file mode 100644 index 0000000000..56351a67aa Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/209.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/210.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/210.png new file mode 100644 index 0000000000..24db107453 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/210.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/211.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/211.png new file mode 100644 index 0000000000..f9a79a4bc1 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/211.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/212.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/212.png new file mode 100644 index 0000000000..ea5b0aef64 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/212.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/213.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/213.png new file mode 100644 index 0000000000..4d7da86ca5 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/213.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/214.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/214.png new file mode 100644 index 0000000000..6f01c17b88 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/214.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/215.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/215.png new file mode 100644 index 0000000000..edebed3146 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/215.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/216.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/216.png new file mode 100644 index 0000000000..338842d7bf Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/216.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/217.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/217.png new file mode 100644 index 0000000000..c4341f4caf Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/217.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/220.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/220.png new file mode 100644 index 0000000000..17f8064ca1 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/220.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/221.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/221.png new file mode 100644 index 0000000000..6c37d4e884 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/221.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/542.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/542.png new file mode 100644 index 0000000000..47be4fb812 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/542.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/780.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/780.png new file mode 100644 index 0000000000..07254f2a99 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/780.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/884.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/884.png new file mode 100644 index 0000000000..f1d9e2214a Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/884.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/895.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/895.png new file mode 100644 index 0000000000..b95a317431 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/895.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/898.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/898.png new file mode 100644 index 0000000000..0ef9a26e01 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/898.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/901.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/901.png new file mode 100644 index 0000000000..aabb56b53f Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/901.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/902.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/902.png new file mode 100644 index 0000000000..911636615a Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/902.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/904.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/904.png new file mode 100644 index 0000000000..cfc5c2aefb Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/904.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/905.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/905.png new file mode 100644 index 0000000000..8da5f91413 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/905.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/906.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/906.png new file mode 100644 index 0000000000..2519d01ef2 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/906.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/907.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/907.png new file mode 100644 index 0000000000..11d1c7db7d Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/907.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/908.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/908.png new file mode 100644 index 0000000000..d1e096b6cd Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/908.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/909.png b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/909.png new file mode 100644 index 0000000000..769783d20a Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/interfacestyles/2010/909.png differ diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSWidgetMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSWidgetMixin.java index fd24972e29..c9cb92df68 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSWidgetMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSWidgetMixin.java @@ -32,6 +32,7 @@ import net.runelite.api.Node; import net.runelite.api.Point; import net.runelite.api.WidgetNode; import net.runelite.api.events.WidgetHiddenChanged; +import net.runelite.api.events.WidgetPositioned; import net.runelite.api.mixins.FieldHook; import net.runelite.api.mixins.Inject; import net.runelite.api.mixins.Mixin; @@ -40,7 +41,9 @@ import net.runelite.api.widgets.Widget; import static net.runelite.api.widgets.WidgetInfo.TO_CHILD; import static net.runelite.api.widgets.WidgetInfo.TO_GROUP; import net.runelite.api.widgets.WidgetItem; +import static net.runelite.client.callback.Hooks.deferredEventBus; import static net.runelite.client.callback.Hooks.eventBus; +import static net.runelite.client.callback.Hooks.log; import net.runelite.rs.api.RSClient; import net.runelite.rs.api.RSHashTable; import net.runelite.rs.api.RSNode; @@ -54,6 +57,9 @@ public abstract class RSWidgetMixin implements RSWidget @Shadow("clientInstance") private static RSClient client; + @Inject + private static int rl$widgetLastPosChanged; + @Inject @Override public Widget getParent() @@ -418,4 +424,28 @@ public abstract class RSWidgetMixin implements RSWidget broadcastHidden(isSelfHidden()); } + + @FieldHook("relativeY") + @Inject + public void onPositionChanged(int idx) + { + int id = getId(); + if (id == -1) + { + return; + } + + int tick = client.getGameCycle(); + if (tick == rl$widgetLastPosChanged) + { + return; + } + + rl$widgetLastPosChanged = tick; + + log.trace("Posting widget position changed"); + + WidgetPositioned widgetPositioned = new WidgetPositioned(); + deferredEventBus.post(widgetPositioned); + } } diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/SpriteMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/SpriteMixin.java new file mode 100644 index 0000000000..272ec7e2c6 --- /dev/null +++ b/runelite-mixins/src/main/java/net/runelite/mixins/SpriteMixin.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2018, Lotto + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.mixins; + +import java.util.Map; +import net.runelite.api.SpritePixels; +import net.runelite.api.mixins.Copy; +import net.runelite.api.mixins.Inject; +import net.runelite.api.mixins.Mixin; +import net.runelite.api.mixins.Replace; +import net.runelite.rs.api.RSClient; +import net.runelite.rs.api.RSIndexDataBase; +import net.runelite.rs.api.RSSpritePixels; + +@Mixin(RSClient.class) +public abstract class SpriteMixin implements RSClient +{ + @Inject + private static Map spriteOverrides; + + @Inject + private static Map widgetSpriteOverrides; + + @Inject + @Override + public void setSpriteOverrides(Map overrides) + { + getWidgetSpriteCache().reset(); + spriteOverrides = overrides; + } + + @Inject + @Override + public void setWidgetSpriteOverrides(Map overrides) + { + widgetSpriteOverrides = overrides; + } + + @Copy("getSpriteAsSpritePixels") + public static RSSpritePixels rs$loadSprite(RSIndexDataBase var0, int var1, int var2) + { + throw new RuntimeException(); + } + + @Replace("getSpriteAsSpritePixels") + public static RSSpritePixels rl$loadSprite(RSIndexDataBase var0, int var1, int var2) + { + if (spriteOverrides != null) + { + SpritePixels sprite = spriteOverrides.get(var1); + + if (sprite != null) + { + return (RSSpritePixels) sprite; + } + } + + return rs$loadSprite(var0, var1, var2); + } +} \ No newline at end of file diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/WidgetSpriteMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/WidgetSpriteMixin.java new file mode 100644 index 0000000000..95821b0f26 --- /dev/null +++ b/runelite-mixins/src/main/java/net/runelite/mixins/WidgetSpriteMixin.java @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2018, Lotto + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.mixins; + +import java.util.Map; +import net.runelite.api.SpritePixels; +import net.runelite.api.mixins.Copy; +import net.runelite.api.mixins.Mixin; +import net.runelite.api.mixins.Replace; +import net.runelite.api.mixins.Shadow; +import net.runelite.rs.api.RSSpritePixels; +import net.runelite.rs.api.RSWidget; + +@Mixin(RSWidget.class) +public abstract class WidgetSpriteMixin implements RSWidget +{ + @Shadow("widgetSpriteOverrides") + private static Map widgetSpriteOverrides; + + @Copy("getWidgetSprite") + public RSSpritePixels rs$getWidgetSprite(boolean var1) + { + throw new RuntimeException(); + } + + @Replace("getWidgetSprite") + public RSSpritePixels rl$getWidgetSprite(boolean var1) + { + if (getSpriteId() != -1 && widgetSpriteOverrides != null) + { + SpritePixels sprite = widgetSpriteOverrides.get(getId()); + + if (sprite != null) + { + return (RSSpritePixels) sprite; + } + } + + return rs$getWidgetSprite(var1); + } +} \ No newline at end of file diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSClient.java b/runescape-api/src/main/java/net/runelite/rs/api/RSClient.java index be6811ded1..07b0ed716d 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSClient.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSClient.java @@ -621,4 +621,10 @@ public interface RSClient extends RSGameEngine, Client @Import("flags") int getFlags(); + + @Import("compass") + void setCompass(SpritePixels spritePixels); + + @Import("widgetSpriteCache") + RSNodeCache getWidgetSpriteCache(); } diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSNodeCache.java b/runescape-api/src/main/java/net/runelite/rs/api/RSNodeCache.java index 88eb2b4cec..7a721cde0c 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSNodeCache.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSNodeCache.java @@ -30,4 +30,7 @@ public interface RSNodeCache { @Import("get") RSCacheableNode get(long id); -} + + @Import("reset") + void reset(); +} \ No newline at end of file diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSWidget.java b/runescape-api/src/main/java/net/runelite/rs/api/RSWidget.java index a8ba84b360..d0db093204 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSWidget.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSWidget.java @@ -211,6 +211,22 @@ public interface RSWidget extends Widget @Override void setOriginalY(int originalY); + @Import("originalHeight") + @Override + int getOriginalHeight(); + + @Import("originalHeight") + @Override + void setOriginalHeight(int originalHeight); + + @Import("originalWidth") + @Override + int getOriginalWidth(); + + @Import("originalWidth") + @Override + void setOriginalWidth(int originalWidth); + @Import("paddingX") @Override int getPaddingX();