summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/engine/systems/Grid.ts8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/engine/systems/Grid.ts b/src/engine/systems/Grid.ts
index 3c0e995..2eea704 100644
--- a/src/engine/systems/Grid.ts
+++ b/src/engine/systems/Grid.ts
@@ -139,11 +139,17 @@ export class Grid extends System {
);
if (collidingEntities.length > 0) {
- // i.e. key going into a door or function going into an application
+ // ensure everything that is a "pushable" or "colliding" which will collide with the entity
+ // can actually continue moving in the direction
const allEntitiesInPreviousCellCanCollide = Array.from(
this.grid[currentPosition.y][currentPosition.x],
)
.map((id) => game.getEntity(id)!)
+ .filter(
+ (entity) =>
+ entity.hasComponent(ComponentNames.Colliding) ||
+ entity.hasComponent(ComponentNames.Pushable),
+ )
.every((entity) =>
collidingEntities.every((collidingEntity) =>
Collision.canCollide(entity.name, collidingEntity.name),