1.0.0 • Published 1 year ago
@jgtools/gridmap v1.0.0
GridMap
2D Spatial Hash Grid that extends Map
Features
- :heavy_check_mark: Elements are stored on a 2D grid
- :heavy_check_mark: Filter nearby elements
- :heavy_check_mark: Extends Map
- :blue_square: Written in TypeScript
Installation
Using npm
npm i @jgtools/gridmap
import GridMap from "@jgtools/gridmap";
// ...
Usage
import GridMap from "@jgtools/gridmap";
const entities = new GridMap(100, 60, 10);
const entity = { id: "1", x: 0, y: 0, name: "Bob" };
entities.set(entity.id, entity, entity.x, entity.y);
const entity2 = { id: "2", x: 15, y: 15, name: "Joe" };
entities.set(entity2.id, entity2, entity2.x, entity2.y);
console.log("nearby entities: ", gm.query(20, 20, 10));
entities.update("1", 15, 20);
console.log("nearby entities: ", gm.query(20, 20, 10));
entities.delete("2");
console.log("nearby entities: ", gm.query(20, 20, 10));
console.log("amount of entities:", gm.size);
console.log("entity with id 1: ", gm.get("1"));
entities.clear();
console.log("nearby entities: ", gm.query(20, 20, 10));
console.log("amount of entities after clear:", gm.size);
License
MIT
1.0.0
1 year ago