Make interface styles not replace entire override map

Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
This commit is contained in:
Tomas Slusny
2018-09-07 18:29:05 +02:00
parent ac5ef045b7
commit 172812dc06

View File

@@ -32,8 +32,6 @@ import java.awt.image.BufferedImage;
import java.awt.image.PixelGrabber;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import javax.imageio.ImageIO;
import javax.inject.Inject;
import lombok.extern.slf4j.Slf4j;
@@ -80,13 +78,7 @@ public class InterfaceStylesPlugin extends Plugin
@Override
protected void startUp() throws Exception
{
clientThread.invoke(() ->
{
overrideSprites();
overrideWidgetSprites();
restoreWidgetDimensions();
adjustWidgetDimensions();
});
clientThread.invoke(this::updateAllOverrides);
}
@Override
@@ -104,14 +96,7 @@ public class InterfaceStylesPlugin extends Plugin
{
if (config.getGroup().equals("interfaceStyles"))
{
clientThread.invoke(() ->
{
removeGameframe();
overrideSprites();
overrideWidgetSprites();
restoreWidgetDimensions();
adjustWidgetDimensions();
});
clientThread.invoke(this::updateAllOverrides);
}
}
@@ -121,10 +106,17 @@ public class InterfaceStylesPlugin extends Plugin
adjustWidgetDimensions();
}
private void updateAllOverrides()
{
removeGameframe();
overrideSprites();
overrideWidgetSprites();
restoreWidgetDimensions();
adjustWidgetDimensions();
}
private void overrideSprites()
{
Map<Integer, SpritePixels> overrides = new HashMap<>();
for (SpriteOverride spriteOverride : SpriteOverride.values())
{
for (Skin skin : spriteOverride.getSkin())
@@ -139,21 +131,25 @@ public class InterfaceStylesPlugin extends Plugin
}
else
{
overrides.put(spriteOverride.getSpriteID(), spritePixels);
client.getSpriteOverrides().put(spriteOverride.getSpriteID(), spritePixels);
}
}
}
}
}
private void restoreSprites()
{
client.getWidgetSpriteCache().reset();
client.getSpriteOverrides().clear();
client.getSpriteOverrides().putAll(overrides);
for (SpriteOverride spriteOverride : SpriteOverride.values())
{
client.getSpriteOverrides().remove(spriteOverride.getSpriteID());
}
}
private void overrideWidgetSprites()
{
Map<Integer, SpritePixels> widgetOverrides = new HashMap<>();
for (WidgetOverride widgetOverride : WidgetOverride.values())
{
if (widgetOverride.getSkin() == config.skin())
@@ -164,14 +160,22 @@ public class InterfaceStylesPlugin extends Plugin
{
for (WidgetInfo widgetInfo : widgetOverride.getWidgetInfo())
{
widgetOverrides.put(widgetInfo.getPackedId(), spritePixels);
client.getWidgetSpriteOverrides().put(widgetInfo.getPackedId(), spritePixels);
}
}
}
}
}
client.getWidgetSpriteOverrides().clear();
client.getWidgetSpriteOverrides().putAll(widgetOverrides);
private void restoreWidgetSprites()
{
for (WidgetOverride widgetOverride : WidgetOverride.values())
{
for (WidgetInfo widgetInfo : widgetOverride.getWidgetInfo())
{
client.getWidgetSpriteOverrides().remove(widgetInfo.getPackedId());
}
}
}
private SpritePixels getFileSpritePixels(String file, String subfolder)
@@ -295,8 +299,8 @@ public class InterfaceStylesPlugin extends Plugin
private void removeGameframe()
{
client.getSpriteOverrides().clear();
client.getWidgetSpriteOverrides().clear();
restoreSprites();
restoreWidgetSprites();
BufferedImage compassImage = spriteManager.getSprite(SpriteID.COMPASS_TEXTURE, 0);