fix: prune duplicate entity results from quad tree
This commit is contained in:
parent
bb02bed6a5
commit
25809f5b31
|
@ -101,9 +101,18 @@ export class Listed extends Trait {
|
||||||
const quadTree = this.entity.list.quadTree();
|
const quadTree = this.entity.list.quadTree();
|
||||||
position = Vector.add(position, Vector.scale(size, -0.5));
|
position = Vector.add(position, Vector.scale(size, -0.5));
|
||||||
const query = Rectangle.compose(position, size);
|
const query = Rectangle.compose(position, size);
|
||||||
return quadTree.search(query).map((node) => {
|
const entities = quadTree.search(query).map((node) => {
|
||||||
return node.data[2];
|
return node.data[2];
|
||||||
});
|
});
|
||||||
|
// Hitting multiple points for each entity can return duplicates.
|
||||||
|
const uniqueEntities = new Map();
|
||||||
|
entities.forEach((entity) => {
|
||||||
|
if (uniqueEntities.has(entity)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
uniqueEntities.set(entity, true);
|
||||||
|
})
|
||||||
|
return Array.from(uniqueEntities.keys());
|
||||||
},
|
},
|
||||||
|
|
||||||
resetQuadTreeNodes: () => {
|
resetQuadTreeNodes: () => {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user