runelite-client: make item image cache non static

This commit is contained in:
Adam
2017-11-05 15:30:16 -05:00
parent 05f21df9b1
commit dbbdd31e2e
4 changed files with 14 additions and 17 deletions

View File

@@ -27,12 +27,10 @@ package net.runelite.client.game;
import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader; import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache; import com.google.common.cache.LoadingCache;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.IOException; import java.io.IOException;
import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.SpritePixels; import net.runelite.api.SpritePixels;
import net.runelite.client.RuneLite; import net.runelite.client.RuneLite;
@@ -54,8 +52,7 @@ public class ItemManager
private final ItemClient itemClient = new ItemClient(); private final ItemClient itemClient = new ItemClient();
private final LoadingCache<Integer, ItemPrice> itemPrices; private final LoadingCache<Integer, ItemPrice> itemPrices;
private final LoadingCache<Integer, BufferedImage> itemImages;
private static LoadingCache<Integer, BufferedImage> itemImages;
public ItemManager(RuneLite runelite) public ItemManager(RuneLite runelite)
{ {
@@ -168,7 +165,7 @@ public class ItemManager
* @param itemId * @param itemId
* @return * @return
*/ */
public static BufferedImage getImage(int itemId) public BufferedImage getImage(int itemId)
{ {
try try
{ {

View File

@@ -36,7 +36,6 @@ import net.runelite.api.GameState;
import net.runelite.api.NPC; import net.runelite.api.NPC;
import net.runelite.api.queries.NPCQuery; import net.runelite.api.queries.NPCQuery;
import net.runelite.client.RuneLite; import net.runelite.client.RuneLite;
import net.runelite.client.game.ItemManager;
import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.OverlayUtil; import net.runelite.client.ui.overlay.OverlayUtil;
@@ -100,7 +99,7 @@ class FishingSpotOverlay extends Overlay
private BufferedImage getFishImage(FishingSpot spot) private BufferedImage getFishImage(FishingSpot spot)
{ {
BufferedImage fishImage = ItemManager.getImage(spot.getFishSpriteId()); BufferedImage fishImage = runelite.getItemManager().getImage(spot.getFishSpriteId());
return fishImage; return fishImage;
} }

View File

@@ -41,7 +41,6 @@ import net.runelite.client.RuneLite;
import net.runelite.client.events.ChatMessage; import net.runelite.client.events.ChatMessage;
import net.runelite.client.events.ExperienceChanged; import net.runelite.client.events.ExperienceChanged;
import net.runelite.client.events.GameStateChanged; import net.runelite.client.events.GameStateChanged;
import net.runelite.client.game.ItemManager;
import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginDescriptor;
import net.runelite.client.task.Schedule; import net.runelite.client.task.Schedule;
@@ -69,10 +68,11 @@ public class Slayer extends Plugin
//Reward UI //Reward UI
private static final Pattern REWARD_POINTS = Pattern.compile("Reward points: (\\d*)"); private static final Pattern REWARD_POINTS = Pattern.compile("Reward points: (\\d*)");
private final RuneLite runelite = RuneLite.getRunelite();
private final Client client = RuneLite.getClient();
private final InfoBoxManager infoBoxManager = RuneLite.getRunelite().getInfoBoxManager(); private final InfoBoxManager infoBoxManager = RuneLite.getRunelite().getInfoBoxManager();
private final SlayerConfig config = RuneLite.getRunelite().getConfigManager().getConfig(SlayerConfig.class); private final SlayerConfig config = RuneLite.getRunelite().getConfigManager().getConfig(SlayerConfig.class);
private final SlayerOverlay overlay = new SlayerOverlay(this); private final SlayerOverlay overlay = new SlayerOverlay(this);
private final Client client = RuneLite.getClient();
private String taskName; private String taskName;
private int amount; private int amount;
@@ -268,11 +268,17 @@ public class Slayer extends Plugin
} }
Task task = Task.getTask(taskName); Task task = Task.getTask(taskName);
int itemSpriteId = ItemID.ENCHANTED_GEM;
if (task == null) if (task == null)
{ {
logger.warn("No slayer task for {} in the Task database", taskName); logger.warn("No slayer task for {} in the Task database", taskName);
} }
BufferedImage taskImg = task != null ? task.getImage() : ItemManager.getImage(ItemID.ENCHANTED_GEM); else
{
itemSpriteId = task.getItemSpriteId();
}
BufferedImage taskImg = runelite.getItemManager().getImage(itemSpriteId);
counter = new TaskCounter(taskImg, amount); counter = new TaskCounter(taskImg, amount);
counter.setTooltip(capsString(taskName)); counter.setTooltip(capsString(taskName));

View File

@@ -138,7 +138,6 @@ enum Task
private static final Map<String, Task> tasks = new HashMap<>(); private static final Map<String, Task> tasks = new HashMap<>();
private final String name; private final String name;
private final int itemSpriteId; private final int itemSpriteId;
static static
@@ -165,12 +164,8 @@ enum Task
return this.name; return this.name;
} }
public BufferedImage getImage() public int getItemSpriteId()
{ {
if (itemSpriteId == -1) return itemSpriteId;
{
return ItemManager.getImage(ItemID.ENCHANTED_GEM);
}
return ItemManager.getImage(itemSpriteId);
} }
} }