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

@@ -241,7 +241,12 @@ public class WidgetID
static class Viewport
{
static final int MINIMAP_WIDGET = 17;
static final int MINIMAP_RESIZABLE_WIDGET = 17;
static final int MINIMAP_RESIZABLE_CLICKBOX = 18;
static final int MINIMAP_RESIZABLE_DRAW_AREA = 25;
static final int MINIMAP_RESIZABLE_DECORATIONS = 27;
static final int MINIMAP_RESIZABLE_ORB_HOLDER = 28;
static final int MINIMAP_RESIZABLE_LOGOUT_BUTTON = 30;
static final int FIXED_VIEWPORT = 17;
static final int RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX = 12;
static final int RESIZABLE_VIEWPORT_BOTTOM_LINE = 12;

View File

@@ -53,8 +53,6 @@ public enum WidgetInfo
CLUE_SCROLL_TEXT(WidgetID.CLUE_SCROLL_GROUP_ID, WidgetID.Cluescroll.CLUE_TEXT),
QUICK_PRAYER_ORB(WidgetID.MINIMAP_GROUP_ID, WidgetID.Minimap.QUICK_PRAYER_ORB),
EQUIPMENT(WidgetID.EQUIPMENT_GROUP_ID, 0),
EQUIPMENT_INVENTORY_ITEMS_CONTAINER(WidgetID.EQUIPMENT_INVENTORY_GROUP_ID, WidgetID.Equipment.INVENTORY_ITEM_CONTAINER),
@@ -129,8 +127,10 @@ public enum WidgetInfo
RUNE_POUCH_ITEM_CONTAINER(WidgetID.RUNE_POUCH_GROUP_ID, 0),
MINIMAP_ORBS(WidgetID.MINIMAP_GROUP_ID, 0),
MINIMAP_XP_ORB(WidgetID.MINIMAP_GROUP_ID, WidgetID.Minimap.XP_ORB),
MINIMAP_PRAYER_ORB(WidgetID.MINIMAP_GROUP_ID, WidgetID.Minimap.PRAYER_ORB),
MINIMAP_QUICK_PRAYER_ORB(WidgetID.MINIMAP_GROUP_ID, WidgetID.Minimap.QUICK_PRAYER_ORB),
MINIMAP_RUN_ORB(WidgetID.MINIMAP_GROUP_ID, WidgetID.Minimap.RUN_ORB),
MINIMAP_HEALTH_ORB(WidgetID.MINIMAP_GROUP_ID, WidgetID.Minimap.HEALTH_ORB),
MINIMAP_SPEC_ORB(WidgetID.MINIMAP_GROUP_ID, WidgetID.Minimap.SPEC_ORB),
@@ -170,7 +170,19 @@ public enum WidgetInfo
FIXED_VIEWPORT_EMOTES_ICON(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.EMOTES_ICON),
FIXED_VIEWPORT_MUSIC_ICON(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.MUSIC_ICON),
MINIMAP_WIDGET(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.Viewport.MINIMAP_WIDGET),
RESIZABLE_MINIMAP_WIDGET(WidgetID.RESIZABLE_VIEWPORT_BOTTOM_LINE_GROUP_ID, WidgetID.Viewport.MINIMAP_RESIZABLE_WIDGET),
RESIZABLE_MINIMAP_CLICKBOX(WidgetID.RESIZABLE_VIEWPORT_BOTTOM_LINE_GROUP_ID, WidgetID.Viewport.MINIMAP_RESIZABLE_CLICKBOX),
RESIZABLE_MINIMAP_DRAW_AREA(WidgetID.RESIZABLE_VIEWPORT_BOTTOM_LINE_GROUP_ID, WidgetID.Viewport.MINIMAP_RESIZABLE_DRAW_AREA),
RESIZABLE_MINIMAP_DECORATIONS(WidgetID.RESIZABLE_VIEWPORT_BOTTOM_LINE_GROUP_ID, WidgetID.Viewport.MINIMAP_RESIZABLE_DECORATIONS),
RESIZABLE_MINIMAP_ORB_HOLDER(WidgetID.RESIZABLE_VIEWPORT_BOTTOM_LINE_GROUP_ID, WidgetID.Viewport.MINIMAP_RESIZABLE_ORB_HOLDER),
RESIZABLE_MINIMAP_LOGOUT_BUTTON(WidgetID.RESIZABLE_VIEWPORT_BOTTOM_LINE_GROUP_ID, WidgetID.Viewport.MINIMAP_RESIZABLE_LOGOUT_BUTTON),
RESIZABLE_MINIMAP_STONES_WIDGET(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.Viewport.MINIMAP_RESIZABLE_WIDGET),
RESIZABLE_MINIMAP_STONES_CLICKBOX(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.Viewport.MINIMAP_RESIZABLE_CLICKBOX),
RESIZABLE_MINIMAP_STONES_DRAW_AREA(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.Viewport.MINIMAP_RESIZABLE_DRAW_AREA),
RESIZABLE_MINIMAP_STONES_DECORATIONS(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.Viewport.MINIMAP_RESIZABLE_DECORATIONS),
RESIZABLE_MINIMAP_STONES_ORB_HOLDER(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.Viewport.MINIMAP_RESIZABLE_ORB_HOLDER),
RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.Viewport.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX),
RESIZABLE_VIEWPORT_COMBAT_TAB(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.ResizableViewport.COMBAT_TAB),
RESIZABLE_VIEWPORT_STATS_TAB(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.ResizableViewport.STATS_TAB),

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;