sprite manager: use constructor injection

Also make cache private
This commit is contained in:
Adam
2021-05-30 23:46:55 -04:00
parent 68e8712ffc
commit d4dc309cf5

View File

@@ -26,12 +26,12 @@ package net.runelite.client.game;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import com.google.inject.Inject;
import java.awt.image.BufferedImage;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.function.Consumer;
import javax.annotation.Nullable;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.swing.ImageIcon;
import javax.swing.JButton;
@@ -48,20 +48,23 @@ import net.runelite.client.util.ImageUtil;
@Singleton
public class SpriteManager
{
@Inject
private Client client;
private final Client client;
private final ClientThread clientThread;
private final InfoBoxManager infoBoxManager;
@Inject
private ClientThread clientThread;
@Inject
private InfoBoxManager infoBoxManager;
public Cache<Long, BufferedImage> cache = CacheBuilder.newBuilder()
private final Cache<Long, BufferedImage> cache = CacheBuilder.newBuilder()
.maximumSize(128L)
.expireAfterAccess(1, TimeUnit.HOURS)
.build();
@Inject
private SpriteManager(Client client, ClientThread clientThread, InfoBoxManager infoBoxManager)
{
this.client = client;
this.clientThread = clientThread;
this.infoBoxManager = infoBoxManager;
}
@Nullable
public BufferedImage getSprite(int archive, int file)
{