runelite-client: Use an ArrayList to store overlays
The TreeSet was removing most overlays (except the ones I tested with) because they were equal to the comparator.
This commit is contained in:
@@ -33,8 +33,6 @@ import java.util.Comparator;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
|
||||||
import java.util.TreeSet;
|
|
||||||
import java.util.function.Predicate;
|
import java.util.function.Predicate;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
@@ -80,7 +78,7 @@ public class OverlayManager
|
|||||||
* 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)
|
||||||
private final Set<Overlay> overlays = new TreeSet<>(OVERLAY_COMPARATOR);
|
private final List<Overlay> overlays = new ArrayList<>();
|
||||||
|
|
||||||
private final Map<OverlayLayer, List<Overlay>> overlayLayers = new HashMap<>();
|
private final Map<OverlayLayer, List<Overlay>> overlayLayers = new HashMap<>();
|
||||||
|
|
||||||
@@ -198,6 +196,8 @@ 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<>());
|
||||||
|
|||||||
Reference in New Issue
Block a user