Merge pull request #5059 from raiyni/pc-overlay2

pest control: layout pc widgets & fix overlay ordering
This commit is contained in:
Tomas Slusny
2018-09-05 21:04:46 +02:00
committed by GitHub
4 changed files with 26 additions and 10 deletions

View File

@@ -53,6 +53,7 @@ public class WidgetID
public static final int EMOTES_GROUP_ID = 216; public static final int EMOTES_GROUP_ID = 216;
public static final int RUNE_POUCH_GROUP_ID = 190; public static final int RUNE_POUCH_GROUP_ID = 190;
public static final int DIARY_GROUP_ID = 259; public static final int DIARY_GROUP_ID = 259;
public static final int PEST_CONTROL_BOAT_GROUP_ID = 407;
public static final int PEST_CONTROL_GROUP_ID = 408; public static final int PEST_CONTROL_GROUP_ID = 408;
public static final int CLAN_CHAT_GROUP_ID = 7; public static final int CLAN_CHAT_GROUP_ID = 7;
public static final int MINIMAP_GROUP_ID = 160; public static final int MINIMAP_GROUP_ID = 160;
@@ -141,8 +142,15 @@ public class WidgetID
static final int LOGOUT_BUTTON = 6; static final int LOGOUT_BUTTON = 6;
} }
static class PestControlBoat
{
static final int INFO = 3;
}
static class PestControl static class PestControl
{ {
static final int INFO = 3;
static final int ACTIVITY_BAR = 12; static final int ACTIVITY_BAR = 12;
static final int ACTIVITY_PROGRESS = 14; static final int ACTIVITY_PROGRESS = 14;

View File

@@ -78,6 +78,8 @@ public enum WidgetInfo
DIARY_QUEST_WIDGET_TITLE(WidgetID.DIARY_QUEST_GROUP_ID, WidgetID.Diary.DIARY_TITLE), DIARY_QUEST_WIDGET_TITLE(WidgetID.DIARY_QUEST_GROUP_ID, WidgetID.Diary.DIARY_TITLE),
DIARY_QUEST_WIDGET_TEXT(WidgetID.DIARY_QUEST_GROUP_ID, WidgetID.Diary.DIARY_TEXT), DIARY_QUEST_WIDGET_TEXT(WidgetID.DIARY_QUEST_GROUP_ID, WidgetID.Diary.DIARY_TEXT),
PEST_CONTROL_BOAT_INFO(WidgetID.PEST_CONTROL_BOAT_GROUP_ID, WidgetID.PestControlBoat.INFO),
PEST_CONTROL_INFO(WidgetID.PEST_CONTROL_GROUP_ID, WidgetID.PestControl.INFO),
PEST_CONTROL_PURPLE_SHIELD(WidgetID.PEST_CONTROL_GROUP_ID, WidgetID.PestControl.PURPLE_SHIELD), PEST_CONTROL_PURPLE_SHIELD(WidgetID.PEST_CONTROL_GROUP_ID, WidgetID.PestControl.PURPLE_SHIELD),
PEST_CONTROL_BLUE_SHIELD(WidgetID.PEST_CONTROL_GROUP_ID, WidgetID.PestControl.BLUE_SHIELD), PEST_CONTROL_BLUE_SHIELD(WidgetID.PEST_CONTROL_GROUP_ID, WidgetID.PestControl.BLUE_SHIELD),
PEST_CONTROL_YELLOW_SHIELD(WidgetID.PEST_CONTROL_GROUP_ID, WidgetID.PestControl.YELLOW_SHIELD), PEST_CONTROL_YELLOW_SHIELD(WidgetID.PEST_CONTROL_GROUP_ID, WidgetID.PestControl.YELLOW_SHIELD),

View File

@@ -84,7 +84,7 @@ public class OverlayManager
}; };
/** /**
* Sorted set of overlays * Insertion-order sorted set of overlays
* All access to this must be guarded by a lock on this OverlayManager * All access to this must be guarded by a lock on this OverlayManager
*/ */
@Getter(AccessLevel.PACKAGE) @Getter(AccessLevel.PACKAGE)
@@ -108,7 +108,7 @@ public class OverlayManager
} }
/** /**
* Gets all of the overlays on a layer * Gets all of the overlays on a layer sorted by priority and position
* *
* @param layer the layer * @param layer the layer
* @return An immutable list of all of the overlays on that layer * @return An immutable list of all of the overlays on that layer
@@ -211,8 +211,6 @@ public class OverlayManager
private synchronized void rebuildOverlayLayers() private synchronized void rebuildOverlayLayers()
{ {
overlays.sort(OVERLAY_COMPARATOR);
for (OverlayLayer l : OverlayLayer.values()) for (OverlayLayer l : OverlayLayer.values())
{ {
overlayLayers.put(l, new ArrayList<>()); overlayLayers.put(l, new ArrayList<>());
@@ -235,7 +233,11 @@ public class OverlayManager
overlayLayers.get(layer).add(overlay); overlayLayers.get(layer).add(overlay);
} }
overlayLayers.forEach((layer, value) -> overlayLayers.put(layer, Collections.unmodifiableList(value))); overlayLayers.forEach((layer, value) ->
{
value.sort(OVERLAY_COMPARATOR);
overlayLayers.put(layer, Collections.unmodifiableList(value));
});
} }
private void loadOverlay(final Overlay overlay) private void loadOverlay(final Overlay overlay)

View File

@@ -28,9 +28,9 @@ import com.google.common.collect.ImmutableMap;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import java.awt.Rectangle; import java.awt.Rectangle;
import java.util.Collection;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.Widget;
@@ -40,15 +40,19 @@ public class WidgetOverlay extends Overlay
{ {
private static final Map<WidgetInfo, OverlayPosition> WIDGETS = ImmutableMap private static final Map<WidgetInfo, OverlayPosition> WIDGETS = ImmutableMap
.<WidgetInfo, OverlayPosition>builder() .<WidgetInfo, OverlayPosition>builder()
.put(WidgetInfo.FOSSIL_ISLAND_OXYGENBAR, OverlayPosition.TOP_LEFT)
.put(WidgetInfo.EXPERIENCE_TRACKER_WIDGET, OverlayPosition.TOP_RIGHT)
.put(WidgetInfo.RESIZABLE_MINIMAP_WIDGET, OverlayPosition.CANVAS_TOP_RIGHT) .put(WidgetInfo.RESIZABLE_MINIMAP_WIDGET, OverlayPosition.CANVAS_TOP_RIGHT)
.put(WidgetInfo.RESIZABLE_MINIMAP_STONES_WIDGET, OverlayPosition.CANVAS_TOP_RIGHT) .put(WidgetInfo.RESIZABLE_MINIMAP_STONES_WIDGET, OverlayPosition.CANVAS_TOP_RIGHT)
.put(WidgetInfo.FOSSIL_ISLAND_OXYGENBAR, OverlayPosition.TOP_LEFT)
.put(WidgetInfo.EXPERIENCE_TRACKER_WIDGET, OverlayPosition.TOP_RIGHT)
.put(WidgetInfo.PEST_CONTROL_BOAT_INFO, OverlayPosition.TOP_LEFT)
.put(WidgetInfo.PEST_CONTROL_INFO, OverlayPosition.TOP_LEFT)
.build(); .build();
public static Set<WidgetOverlay> createOverlays(final Client client) public static Collection<WidgetOverlay> createOverlays(final Client client)
{ {
return WIDGETS.entrySet().stream().map(w -> new WidgetOverlay(client, w.getKey(), w.getValue())).collect(Collectors.toSet()); return WIDGETS.entrySet().stream()
.map(w -> new WidgetOverlay(client, w.getKey(), w.getValue()))
.collect(Collectors.toList());
} }
private final Client client; private final Client client;