Merge pull request #5059 from raiyni/pc-overlay2
pest control: layout pc widgets & fix overlay ordering
This commit is contained in:
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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),
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user