From a67464e23e7b8a3d8375bebba412ef585eeff2f9 Mon Sep 17 00:00:00 2001 From: Obique PSWG Date: Sat, 8 Aug 2015 12:23:24 -0500 Subject: [PATCH] Fixed CORE-127 'Players will now show up in buildings' (for real this time) --- src/resources/objects/SWGObject.java | 3 ++- src/services/objects/ObjectAwareness.java | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/resources/objects/SWGObject.java b/src/resources/objects/SWGObject.java index afb39d04..4b90426a 100644 --- a/src/resources/objects/SWGObject.java +++ b/src/resources/objects/SWGObject.java @@ -751,8 +751,9 @@ public abstract class SWGObject implements Serializable, Comparable { } } - public void updateObjectAwareness(List withinRange) { + public void updateObjectAwareness(Set withinRange) { synchronized (objectsAware) { + withinRange.addAll(getObservers()); Set outOfRange = new HashSet<>(objectsAware); outOfRange.removeAll(withinRange); for (SWGObject o : outOfRange) { diff --git a/src/services/objects/ObjectAwareness.java b/src/services/objects/ObjectAwareness.java index 2caf69b0..aec2fe61 100644 --- a/src/services/objects/ObjectAwareness.java +++ b/src/services/objects/ObjectAwareness.java @@ -28,9 +28,11 @@ package services.objects; import java.util.HashMap; +import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Set; import network.packets.swg.zone.UpdateContainmentMessage; import resources.Location; @@ -139,7 +141,7 @@ public class ObjectAwareness { Location l = obj.getWorldLocation(); if (invalidLocation(l)) return; - List objectAware = new LinkedList(); + Set objectAware = new HashSet(); QuadTree tree = getTree(l); synchronized (tree) { List range = tree.getWithinRange(l.getX(), l.getZ(), AWARE_RANGE);