From 8fce5a5f2530496e1390763364c01392a1a63640 Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Mon, 21 Aug 2023 14:19:02 -0600 Subject: [PATCH] fix some ts errors --- engine/structures/Grid.ts | 20 ++++++++++---------- engine/structures/QuadTree.ts | 20 ++++++++++---------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/engine/structures/Grid.ts b/engine/structures/Grid.ts index d359909..836aaf4 100644 --- a/engine/structures/Grid.ts +++ b/engine/structures/Grid.ts @@ -1,5 +1,5 @@ import type { Coord2D, Dimension2D } from "../interfaces"; -import type { RefreshingCollisionFinderBehavior } from "."; +import type { BoxedEntry, RefreshingCollisionFinderBehavior } from "."; export class Grid implements RefreshingCollisionFinderBehavior { private cellEntities: Map; @@ -11,7 +11,7 @@ export class Grid implements RefreshingCollisionFinderBehavior { constructor( gridDimension: Dimension2D, cellDimension: Dimension2D, - topLeft = { x: 0, y: 0 }, + topLeft = { x: 0, y: 0 } ) { this.gridDimension = gridDimension; this.cellDimension = cellDimension; @@ -25,7 +25,7 @@ export class Grid implements RefreshingCollisionFinderBehavior { if (!this.cellEntities.has(gridIdx)) { this.cellEntities.set(gridIdx, []); } - this.cellEntities.get(gridIdx).push(boxedEntry.id); + this.cellEntities.get(gridIdx)!.push(boxedEntry.id); }); } @@ -33,7 +33,7 @@ export class Grid implements RefreshingCollisionFinderBehavior { const neighborIds: Set = new Set(); this.getOverlappingCells(boxedEntry).forEach((gridIdx) => { if (this.cellEntities.has(gridIdx)) { - this.cellEntities.get(gridIdx).forEach((id) => neighborIds.add(id)); + this.cellEntities.get(gridIdx)!.forEach((id) => neighborIds.add(id)); } }); return neighborIds; @@ -58,10 +58,10 @@ export class Grid implements RefreshingCollisionFinderBehavior { private getOverlappingCells(boxedEntry: BoxedEntry): number[] { const { center, dimension } = boxedEntry; const yBoxes = Math.ceil( - this.gridDimension.height / this.cellDimension.height, + this.gridDimension.height / this.cellDimension.height ); const xBoxes = Math.ceil( - this.gridDimension.width / this.cellDimension.width, + this.gridDimension.width / this.cellDimension.width ); const translated: Coord2D = { @@ -71,18 +71,18 @@ export class Grid implements RefreshingCollisionFinderBehavior { const topLeftBox = { x: Math.floor( - (translated.x - dimension.width / 2) / this.cellDimension.width, + (translated.x - dimension.width / 2) / this.cellDimension.width ), y: Math.floor( - (translated.y - dimension.height / 2) / this.cellDimension.height, + (translated.y - dimension.height / 2) / this.cellDimension.height ), }; const bottomRightBox = { x: Math.floor( - (translated.x + dimension.width / 2) / this.cellDimension.width, + (translated.x + dimension.width / 2) / this.cellDimension.width ), y: Math.floor( - (translated.y + dimension.height / 2) / this.cellDimension.height, + (translated.y + dimension.height / 2) / this.cellDimension.height ), }; diff --git a/engine/structures/QuadTree.ts b/engine/structures/QuadTree.ts index 90227a0..1ab2d1d 100644 --- a/engine/structures/QuadTree.ts +++ b/engine/structures/QuadTree.ts @@ -30,7 +30,7 @@ export class QuadTree implements RefreshingCollisionFinderBehavior { dimension: Dimension2D, maxLevels: number = QuadTree.QUADTREE_MAX_LEVELS, splitThreshold: number = QuadTree.QUADTREE_SPLIT_THRESHOLD, - level: number = 0, + level: number = 0 ) { this.children = new Map(); this.objects = []; @@ -74,9 +74,9 @@ export class QuadTree implements RefreshingCollisionFinderBehavior { } } - public getNeighborIds(boxedEntry: BoxedEntry): string[] { + public getNeighborIds(boxedEntry: BoxedEntry): Set { const neighbors = new Set( - this.objects.map(({ id }) => id).filter((id) => id != boxedEntry.id), + this.objects.map(({ id }) => id).filter((id) => id != boxedEntry.id) ); if (this.hasChildren()) { @@ -104,7 +104,7 @@ export class QuadTree implements RefreshingCollisionFinderBehavior { Quadrant.IV, { x: this.topLeft.x + halfWidth, y: this.topLeft.y + halfHeight }, ], - ] as [[Quadrant, Coord2D]] + ] as [Quadrant, Coord2D][] ).forEach(([quadrant, pos]) => { this.children.set( quadrant, @@ -113,8 +113,8 @@ export class QuadTree implements RefreshingCollisionFinderBehavior { { width: halfWidth, height: halfHeight }, this.maxLevels, this.splitThreshold, - this.level + 1, - ), + this.level + 1 + ) ); }); } @@ -143,18 +143,18 @@ export class QuadTree implements RefreshingCollisionFinderBehavior { Quadrant.IV, (x: number, y: number) => x >= treeCenter.x && y >= treeCenter.y, ], - ] as [[Quadrant, (x: number, y: number) => boolean]] + ] as [Quadrant, (x: number, y: number) => boolean][] ) .filter( ([_quadrant, condition]) => condition( boxedEntry.center.x + boxedEntry.dimension.width / 2, - boxedEntry.center.y + boxedEntry.dimension.height / 2, + boxedEntry.center.y + boxedEntry.dimension.height / 2 ) || condition( boxedEntry.center.x - boxedEntry.dimension.width / 2, - boxedEntry.center.y - boxedEntry.dimension.height / 2, - ), + boxedEntry.center.y - boxedEntry.dimension.height / 2 + ) ) .map(([quadrant]) => quadrant); }