runelite-client: make item image cache non static
This commit is contained in:
@@ -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
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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));
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user