From 5411da531baddc0502352c3c81cd2729e9d8d313 Mon Sep 17 00:00:00 2001 From: Adam Date: Tue, 13 Mar 2018 11:23:21 -0400 Subject: [PATCH] runelite-api: add scale to createItemSprite --- .../src/main/java/net/runelite/api/Client.java | 2 +- .../main/java/net/runelite/api/Constants.java | 1 + .../net/runelite/client/game/ItemManager.java | 3 ++- .../java/net/runelite/mixins/RSClientMixin.java | 17 +++++++++++++++++ .../main/java/net/runelite/rs/api/RSClient.java | 7 ++++++- 5 files changed, 27 insertions(+), 3 deletions(-) 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 0d2cbf4de6..af87977084 100644 --- a/runelite-api/src/main/java/net/runelite/api/Client.java +++ b/runelite-api/src/main/java/net/runelite/api/Client.java @@ -92,7 +92,7 @@ public interface Client extends GameEngine ItemComposition getItemDefinition(int id); - SpritePixels createItemSprite(int itemId, int quantity, int border, int shadowColor, int stackable, boolean noted); + SpritePixels createItemSprite(int itemId, int quantity, int border, int shadowColor, int stackable, boolean noted, int scale); int getBaseX(); diff --git a/runelite-api/src/main/java/net/runelite/api/Constants.java b/runelite-api/src/main/java/net/runelite/api/Constants.java index 9dd6844e5c..f069647d64 100644 --- a/runelite-api/src/main/java/net/runelite/api/Constants.java +++ b/runelite-api/src/main/java/net/runelite/api/Constants.java @@ -33,4 +33,5 @@ public class Constants public static final int GAME_FIXED_HEIGHT = 503; public static final Dimension GAME_FIXED_SIZE = new Dimension(GAME_FIXED_WIDTH, GAME_FIXED_HEIGHT); public static final double GAME_FIXED_ASPECT_RATIO = (double) GAME_FIXED_WIDTH / (double) GAME_FIXED_HEIGHT; + public static final int CLIENT_DEFAULT_ZOOM = 512; } diff --git a/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java b/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java index 6fba1ddaa7..199e73f473 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java +++ b/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java @@ -37,6 +37,7 @@ import javax.inject.Inject; import javax.inject.Singleton; import lombok.Value; import net.runelite.api.Client; +import static net.runelite.api.Constants.CLIENT_DEFAULT_ZOOM; import net.runelite.api.ItemComposition; import net.runelite.api.SpritePixels; import net.runelite.http.api.item.ItemClient; @@ -193,7 +194,7 @@ public class ItemManager */ private BufferedImage loadImage(int itemId, int quantity, boolean stackable) { - SpritePixels sprite = client.createItemSprite(itemId, quantity, 1, SpritePixels.DEFAULT_SHADOW_COLOR, stackable ? 1 : 0, false); + SpritePixels sprite = client.createItemSprite(itemId, quantity, 1, SpritePixels.DEFAULT_SHADOW_COLOR, stackable ? 1 : 0, false, CLIENT_DEFAULT_ZOOM); return sprite.toBufferedImage(); } diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java index 70a80911a3..fc813a5274 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java @@ -51,6 +51,7 @@ import net.runelite.api.Prayer; import net.runelite.api.Projectile; import net.runelite.api.Setting; import net.runelite.api.Skill; +import net.runelite.api.SpritePixels; import net.runelite.api.Varbits; import net.runelite.api.coords.LocalPoint; import net.runelite.api.events.ExperienceChanged; @@ -460,6 +461,22 @@ public abstract class RSClientMixin implements RSClient return clanMemberManager != null && clanMemberManager.isMember(createName(name, getLoginType())); } + @Inject + @Override + public SpritePixels createItemSprite(int itemId, int quantity, int border, int shadowColor, int stackable, boolean noted, int scale) + { + int zoom = get3dZoom(); + set3dZoom(scale); + try + { + return createItemSprite(itemId, quantity, border, shadowColor, stackable, noted); + } + finally + { + set3dZoom(zoom); + } + } + @FieldHook("skillExperiences") @Inject public static void experiencedChanged(int idx) 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 aeb97c908a..db869e309f 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 @@ -250,7 +250,6 @@ public interface RSClient extends RSGameEngine, Client RSItemComposition getItemDefinition(int itemId); @Import("createSprite") - @Override RSSpritePixels createItemSprite(int itemId, int quantity, int thickness, int borderColor, int stackable, boolean noted); @Import("componentTable") @@ -500,6 +499,12 @@ public interface RSClient extends RSGameEngine, Client @Import("pitchCos") void setPitchCos(int v); + @Import("Rasterizer3D_zoom") + int get3dZoom(); + + @Import("Rasterizer3D_zoom") + void set3dZoom(int zoom); + @Import("renderOverview") RSRenderOverview getRenderOverview();