Initial commit
Improved modularity
Simplified lattice snapping API
Improved Grid to support single-tenant grid cells and grid-cell metadata
* Renamed Wall._orient to Wall.orient
* Fixed some bad logic in Game.snapEntity
* Changed grid to be multiple-tenant by default
Added Breadth-First Searth plugin to grid, for simple pathfinding
Fix unneeded argument to neighbors in Wall.orient
Code tidying
Improved neighbor logic, and fixed impassability calculation for Wall
Implemented some functions for Entity to take advantage of BFS more easily, such as 'stepTowardsTarget()'
Fixed bug in BFS utils causing Entities to de-rail if they switch between different BFS paths when not perfectly grid-aligned
Fixed error in grid-snapping logic. Entities were being snapped to the grid after static collisions were processed but BEFORE dynamic collisions were resolved. This caused mis-snapping when an Entity with non-zero velocity collided with a fixed entity.
Lots of comments, as well as a general restructuring of the code to account for static AND dynamic collisions, rather than just static collisions.
Fixed bug in game logic. Entities with ignoreGrid set to true were still being snapped/gridded if they were part of the level data