clanmanager: expose way to get bufferedimages for clan icons
This commit is contained in:
@@ -65,8 +65,8 @@ public class ClanManager
|
|||||||
|
|
||||||
private int modIconsLength;
|
private int modIconsLength;
|
||||||
|
|
||||||
@Inject
|
private final Provider<Client> clientProvider;
|
||||||
private Provider<Client> clientProvider;
|
private final BufferedImage[] clanChatImages = new BufferedImage[CLANCHAT_IMAGES.length];
|
||||||
|
|
||||||
private final LoadingCache<String, ClanMemberRank> clanRanksCache = CacheBuilder.newBuilder()
|
private final LoadingCache<String, ClanMemberRank> clanRanksCache = CacheBuilder.newBuilder()
|
||||||
.maximumSize(100)
|
.maximumSize(100)
|
||||||
@@ -93,11 +93,43 @@ public class ClanManager
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public ClanManager(Provider<Client> clientProvider)
|
||||||
|
{
|
||||||
|
this.clientProvider = clientProvider;
|
||||||
|
|
||||||
|
int i = 0;
|
||||||
|
for (String resource : CLANCHAT_IMAGES)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
final BufferedImage bufferedImage = rgbaToIndexedBufferedImage(ImageIO
|
||||||
|
.read(ClanManager.class.getResource(resource)));
|
||||||
|
clanChatImages[i] = bufferedImage;
|
||||||
|
}
|
||||||
|
catch (IOException e)
|
||||||
|
{
|
||||||
|
log.warn("unable to load clan image", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
++i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public ClanMemberRank getRank(String playerName)
|
public ClanMemberRank getRank(String playerName)
|
||||||
{
|
{
|
||||||
return clanRanksCache.getUnchecked(playerName);
|
return clanRanksCache.getUnchecked(playerName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public BufferedImage getClanImage(final ClanMemberRank clanMemberRank)
|
||||||
|
{
|
||||||
|
if (clanMemberRank == ClanMemberRank.UNRANKED)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return clanChatImages[clanMemberRank.getValue()];
|
||||||
|
}
|
||||||
|
|
||||||
public int getIconNumber(final ClanMemberRank clanMemberRank)
|
public int getIconNumber(final ClanMemberRank clanMemberRank)
|
||||||
{
|
{
|
||||||
return modIconsLength - CLANCHAT_IMAGES.length + clanMemberRank.getValue();
|
return modIconsLength - CLANCHAT_IMAGES.length + clanMemberRank.getValue();
|
||||||
@@ -129,9 +161,9 @@ public class ClanManager
|
|||||||
final IndexedSprite[] newModIcons = Arrays.copyOf(modIcons, modIcons.length + CLANCHAT_IMAGES.length);
|
final IndexedSprite[] newModIcons = Arrays.copyOf(modIcons, modIcons.length + CLANCHAT_IMAGES.length);
|
||||||
int curPosition = newModIcons.length - CLANCHAT_IMAGES.length;
|
int curPosition = newModIcons.length - CLANCHAT_IMAGES.length;
|
||||||
|
|
||||||
for (String resource : CLANCHAT_IMAGES)
|
for (BufferedImage image : clanChatImages)
|
||||||
{
|
{
|
||||||
IndexedSprite sprite = createIndexedSprite(client, resource);
|
IndexedSprite sprite = createIndexedSprite(client, image);
|
||||||
newModIcons[curPosition++] = sprite;
|
newModIcons[curPosition++] = sprite;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -150,12 +182,8 @@ public class ClanManager
|
|||||||
return cleaned.replace('\u00A0', ' ');
|
return cleaned.replace('\u00A0', ' ');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static IndexedSprite createIndexedSprite(final Client client, final BufferedImage bufferedImage) throws IOException
|
||||||
private static IndexedSprite createIndexedSprite(final Client client, final String imagePath) throws IOException
|
|
||||||
{
|
{
|
||||||
final BufferedImage bufferedImage = rgbaToIndexedBufferedImage(ImageIO
|
|
||||||
.read(ClanManager.class.getResource(imagePath)));
|
|
||||||
|
|
||||||
final IndexColorModel indexedCM = (IndexColorModel) bufferedImage.getColorModel();
|
final IndexColorModel indexedCM = (IndexColorModel) bufferedImage.getColorModel();
|
||||||
|
|
||||||
final int width = bufferedImage.getWidth();
|
final int width = bufferedImage.getWidth();
|
||||||
|
|||||||
Reference in New Issue
Block a user