From b899a9dc481f83d412c513fd0a9df591db54d411 Mon Sep 17 00:00:00 2001 From: cha0s Date: Thu, 2 May 2019 20:01:09 -0500 Subject: [PATCH] refactor: don't juggle types; avoid getter --- packages/entity/traits/listed.trait.js | 27 +++++++++++++------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/packages/entity/traits/listed.trait.js b/packages/entity/traits/listed.trait.js index 634117f..97019be 100644 --- a/packages/entity/traits/listed.trait.js +++ b/packages/entity/traits/listed.trait.js @@ -6,8 +6,8 @@ export class Listed extends Trait { initialize() { this._list = undefined; - this.quadTreeAabb = undefined; - this.quadTreeNodes = undefined; + this.quadTreeAabb = []; + this.quadTreeNodes = []; } destroy() { @@ -51,14 +51,6 @@ export class Listed extends Trait { } get doesNeedReset() { - if (AVOCADO_CLIENT) { - return false; - } - if (!this.quadTreeAabb) { - return true; - } - const aabb = this.entity.visibleAabb; - return !Rectangle.isInside(this.quadTreeAabb, aabb); } removeQuadTreeNodes() { @@ -66,18 +58,25 @@ export class Listed extends Trait { if (!list) { return; } - if (this.quadTreeNodes) { + if (this.quadTreeNodes.length > 0) { const quadTree = list.quadTree; for (const node of this.quadTreeNodes) { quadTree.remove(node); } - this.quadTreeAabb = undefined; - this.quadTreeNodes = undefined; + this.quadTreeAabb = []; + this.quadTreeNodes = []; } } resetQuadTreeNodes() { - if (!this.doesNeedReset) { + if (AVOCADO_CLIENT) { + return; + } + const aabb = this.entity.visibleAabb; + if ( + this.quadTreeAabb.length > 0 + && Rectangle.isInside(this.quadTreeAabb, aabb) + ) { return; } this.removeQuadTreeNodes();