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