export class Tilemap {
    constructor(width, height) {
        this.width = width;
        this.height = height;
        this.tiles = new Uint8Array(width * height);
        this.default = 0;
    }

    tileIndex(x, y) {
        return x + y * this.width;
    }

    inBounds(x, y) {
        return x >= 0 && y >= 0 && x < this.width && y < this.height;
    }

    at(x, y) {
        if (this.inBounds(x, y)) {
            return this.tiles[this.tileIndex(x, y)];
        } else {
            return this.default;
        }
    }

    setAt(x, y, tile) {
        if (this.inBounds(x, y)) {
            this.tiles[this.tileIndex(x, y)] = tile;
        }
    }
}