Merge pull request #3820 from deathbeam/fix-resizable-minimap

Use correct widget when hiding resizable minimap
This commit is contained in:
Adam
2018-07-21 21:29:15 -04:00
committed by GitHub
5 changed files with 89 additions and 71 deletions

View File

@@ -67,13 +67,7 @@ public class MinimapPlugin extends Plugin
@Override
protected void startUp() throws Exception
{
Widget minimapWidget = client.getWidget(WidgetInfo.MINIMAP_WIDGET);
if (minimapWidget != null)
{
minimapWidget.setHidden(config.hideMinimap());
}
updateMinimapWidgetVisibility(config.hideMinimap());
storeOriginalDots();
replaceMapDots();
}
@@ -81,13 +75,7 @@ public class MinimapPlugin extends Plugin
@Override
protected void shutDown() throws Exception
{
Widget minimapWidget = client.getWidget(WidgetInfo.MINIMAP_WIDGET);
if (minimapWidget != null)
{
minimapWidget.setHidden(false);
}
updateMinimapWidgetVisibility(false);
restoreOriginalDots();
}
@@ -101,6 +89,69 @@ public class MinimapPlugin extends Plugin
}
}
@Subscribe
public void configChanged(ConfigChanged event)
{
if (!event.getGroup().equals("minimap"))
{
return;
}
if (event.getKey().equals("hideMinimap"))
{
updateMinimapWidgetVisibility(config.hideMinimap());
return;
}
replaceMapDots();
}
@Subscribe
public void onWidgetHiddenChange(WidgetHiddenChanged event)
{
updateMinimapWidgetVisibility(config.hideMinimap());
}
private void updateMinimapWidgetVisibility(boolean enable)
{
final Widget resizableStonesWidget = client.getWidget(WidgetInfo.RESIZABLE_MINIMAP_STONES_WIDGET);
if (resizableStonesWidget != null)
{
resizableStonesWidget.setHidden(enable);
}
final Widget resizableNormalWidget = client.getWidget(WidgetInfo.RESIZABLE_MINIMAP_WIDGET);
if (resizableNormalWidget != null && !resizableNormalWidget.isSelfHidden())
{
for (Widget widget : resizableNormalWidget.getStaticChildren())
{
if (widget.getId() != WidgetInfo.RESIZABLE_VIEWPORT_BOTTOM_LINE_LOGOUT_BUTTON.getId() &&
widget.getId() != WidgetInfo.RESIZABLE_MINIMAP_LOGOUT_BUTTON.getId())
{
widget.setHidden(enable);
}
}
}
}
private void replaceMapDots()
{
SpritePixels[] mapDots = client.getMapDots();
if (mapDots == null)
{
return;
}
Color[] minimapDotColors = getColors();
for (int i = 0; i < mapDots.length && i < minimapDotColors.length; ++i)
{
mapDots[i] = MinimapDot.create(this.client, minimapDotColors[i]);
}
}
private Color[] getColors()
{
Color[] colors = new Color[NUM_MAPDOTS];
@@ -136,54 +187,4 @@ public class MinimapPlugin extends Plugin
System.arraycopy(originalDotSprites, 0, mapDots, 0, mapDots.length);
}
@Subscribe
public void configChanged(ConfigChanged event)
{
if (!event.getGroup().equals("minimap"))
{
return;
}
if (event.getKey().equals("hideMinimap"))
{
Widget minimapWidget = client.getWidget(WidgetInfo.MINIMAP_WIDGET);
if (minimapWidget != null)
{
minimapWidget.setHidden(config.hideMinimap());
}
return;
}
replaceMapDots();
}
@Subscribe
public void onWidgetHiddenChange(WidgetHiddenChanged event)
{
Widget minimapWidget = client.getWidget(WidgetInfo.MINIMAP_WIDGET);
if (event.getWidget() == minimapWidget)
{
minimapWidget.setHidden(config.hideMinimap());
}
}
private void replaceMapDots()
{
SpritePixels[] mapDots = client.getMapDots();
if (mapDots == null)
{
return;
}
Color[] minimapDotColors = getColors();
for (int i = 0; i < mapDots.length && i < minimapDotColors.length; ++i)
{
mapDots[i] = MinimapDot.create(this.client, minimapDotColors[i]);
}
}
}
}

View File

@@ -97,7 +97,7 @@ class PrayerDoseOverlay extends Overlay
@Override
public Dimension render(Graphics2D graphics)
{
final Widget xpOrb = client.getWidget(WidgetInfo.QUICK_PRAYER_ORB);
final Widget xpOrb = client.getWidget(WidgetInfo.MINIMAP_QUICK_PRAYER_ORB);
if (xpOrb == null)
{
return null;

View File

@@ -67,7 +67,7 @@ class PrayerFlickOverlay extends Overlay
return null;
}
Widget xpOrb = client.getWidget(WidgetInfo.QUICK_PRAYER_ORB);
Widget xpOrb = client.getWidget(WidgetInfo.MINIMAP_QUICK_PRAYER_ORB);
if (xpOrb == null)
{
return null;