From fbdf74e991aa990a41a241bda25715a2a4137e34 Mon Sep 17 00:00:00 2001 From: Ben Huang Date: Thu, 19 Feb 2026 11:53:56 -0500 Subject: [PATCH 1/2] fix: account for tilePos.x getting out of the level boundary --- CHANGELOG.md | 2 ++ src/ecs/components/level/level.ts | 1 + 2 files changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 440fe5940..855c74066 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -105,6 +105,8 @@ So your change should look like `drawSprite` (#1026) - @benhuangbmj - Fixed `onClick()` and `onCollide()` tag variants no longer working - @mflerackers +- Fixed `levelComp.getAt` to account for `tilePos.x` getting outside of the + level boundary - @benhuangbmj ## [4000.0.0-alpha.26] - 2026-01-12 diff --git a/src/ecs/components/level/level.ts b/src/ecs/components/level/level.ts index a239a5260..f4f38363a 100644 --- a/src/ecs/components/level/level.ts +++ b/src/ecs/components/level/level.ts @@ -476,6 +476,7 @@ export function level(map: string[], opt: LevelCompOpt): LevelComp { if (!spatialMap) { createSpatialMap(this); } + if (tilePos.x >= numColumns) return []; const hash = tile2Hash(tilePos); return spatialMap![hash] || []; }, From dae0ef91ce15ee3fad0152bd5e87e9be89e17db8 Mon Sep 17 00:00:00 2001 From: Ben Huang Date: Thu, 19 Feb 2026 14:07:01 -0500 Subject: [PATCH 2/2] fix: account for negative tilePos.x --- src/ecs/components/level/level.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ecs/components/level/level.ts b/src/ecs/components/level/level.ts index f4f38363a..bb71ebff9 100644 --- a/src/ecs/components/level/level.ts +++ b/src/ecs/components/level/level.ts @@ -476,7 +476,7 @@ export function level(map: string[], opt: LevelCompOpt): LevelComp { if (!spatialMap) { createSpatialMap(this); } - if (tilePos.x >= numColumns) return []; + if (tilePos.x >= numColumns || tilePos.x < 0) return []; const hash = tile2Hash(tilePos); return spatialMap![hash] || []; },