+function Map() {
+ this.tileset = new Textfile("/tilesetdefs/tileset_grassland.txt");
+ this.frametime = performance.now();
+ if (! gfx[this.tileset.img]) {
+ gfx[this.tileset.img] = document.createElement("img");
+ gfx[this.tileset.img].setAttribute("src", this.tileset.img);
+ }
+
+ this.draw_tile = function(tile, x, y) {
+ t = this.tileset.tile[tile]
+
+ if (this.tileset.animation[tile]) {
+ f = this.tileset.animation[tile];
+ frame = ((performance.now() - this.frametime) / f[0][2] |0) % f.length;
+ canvas.drawImage(gfx[this.tileset.img], f[frame][0], f[frame][1], t[2], t[3],
+ x - t[4], y - t[5], t[2], t[3]);
+ } else {
+ canvas.drawImage(gfx[this.tileset.img], t[0], t[1], t[2], t[3],
+ x - t[4], y - t[5], t[2], t[3]);
+ }
+ }
+}
+