item manager: allow getting images with quantity

This commit is contained in:
Adam
2018-02-14 08:32:41 -05:00
parent 54ae0dc0ad
commit e1141b5952

View File

@@ -84,14 +84,14 @@ public class ItemManager
}); });
itemImages = CacheBuilder.newBuilder() itemImages = CacheBuilder.newBuilder()
.maximumSize(200) .maximumSize(128L)
.expireAfterAccess(1, TimeUnit.HOURS) .expireAfterAccess(1, TimeUnit.HOURS)
.build(new CacheLoader<Integer, BufferedImage>() .build(new CacheLoader<Integer, BufferedImage>()
{ {
@Override @Override
public BufferedImage load(Integer itemId) throws Exception public BufferedImage load(Integer itemId) throws Exception
{ {
return loadImage(itemId); return loadImage(itemId & 0xffff, itemId >>> 16);
} }
}); });
@@ -203,23 +203,35 @@ public class ItemManager
* @param itemId * @param itemId
* @return * @return
*/ */
private BufferedImage loadImage(int itemId) private BufferedImage loadImage(int itemId, int quantity)
{ {
SpritePixels sprite = client.createItemSprite(itemId, 1, 1, SpritePixels.DEFAULT_SHADOW_COLOR, 0, false); SpritePixels sprite = client.createItemSprite(itemId, quantity, 1, SpritePixels.DEFAULT_SHADOW_COLOR, 0, false);
return sprite.toBufferedImage(); return sprite.toBufferedImage();
} }
/** /**
* Get item sprite image as BufferedImage * Get item sprite image
* *
* @param itemId * @param itemId
* @return * @return
*/ */
public BufferedImage getImage(int itemId) public BufferedImage getImage(int itemId)
{
return getImage(itemId, 1);
}
/**
* Get item sprite image as BufferedImage
*
* @param itemId
* @param quantity
* @return
*/
public BufferedImage getImage(int itemId, int quantity)
{ {
try try
{ {
return itemImages.get(itemId); return itemImages.get(itemId | (quantity << 16));
} }
catch (ExecutionException ex) catch (ExecutionException ex)
{ {