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

View File

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

View File

@@ -41,7 +41,6 @@ import net.runelite.client.RuneLite;
import net.runelite.client.events.ChatMessage;
import net.runelite.client.events.ExperienceChanged;
import net.runelite.client.events.GameStateChanged;
import net.runelite.client.game.ItemManager;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import net.runelite.client.task.Schedule;
@@ -69,10 +68,11 @@ public class Slayer extends Plugin
//Reward UI
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 SlayerConfig config = RuneLite.getRunelite().getConfigManager().getConfig(SlayerConfig.class);
private final SlayerOverlay overlay = new SlayerOverlay(this);
private final Client client = RuneLite.getClient();
private String taskName;
private int amount;
@@ -268,11 +268,17 @@ public class Slayer extends Plugin
}
Task task = Task.getTask(taskName);
int itemSpriteId = ItemID.ENCHANTED_GEM;
if (task == null)
{
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.setTooltip(capsString(taskName));

View File

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