diff --git a/js/grid.js b/js/grid.js index 0a0f3f8..b598721 100644 --- a/js/grid.js +++ b/js/grid.js @@ -52,8 +52,8 @@ export class Grid { layer.set_level(level); } } - add_tile(layer, tile, x, y) { - const elem = __classPrivateFieldGet(this, _layers).get(layer).add_tile(tile); + add_tile(layer, tile_factory, x, y) { + const elem = __classPrivateFieldGet(this, _layers).get(layer).add_tile(tile_factory); // Grids are 1-indexed elem.style.gridColumnStart = `${x + 1}`; elem.style.gridRowStart = `${y + 1}`; diff --git a/js/grid.js.map b/js/grid.js.map index f79c241..a2cda52 100644 --- a/js/grid.js.map +++ b/js/grid.js.map @@ -1 +1 @@ -{"version":3,"file":"grid.js","sourceRoot":"","sources":["../ts/grid.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,MAAM,OAAO,IAAI;IAKf,YAAY,IAAiB;QAJ7B,wBAAmB;QACnB,2BAAiB;QACjB,kBAA8B,IAAI,GAAG,EAAiB,EAAC;QAGrD,uBAAA,IAAI,SAAS,IAAI,EAAC;QAClB,oCAAW,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IACpC,CAAC;IAED,QAAQ,CAAC,CAAS,EAAE,CAAS;QAC3B,oCAAW,KAAK,CAAC,mBAAmB,GAAG,UAAU,CAAC,QAAQ,CAAC;QAC3D,oCAAW,KAAK,CAAC,gBAAgB,GAAG,UAAU,CAAC,QAAQ,CAAC;IAC1D,CAAC;IAED,WAAW,CAAC,GAAW;QACrB,uBAAA,IAAI,YAAY,GAAG,EAAC;QACpB,oCAAW,KAAK,CAAC,eAAe,GAAG,eAAe,sCAAa,aAAa,CAAC;QAE7E,sBAAsB;IACxB,CAAC;IAED,UAAU,CAAC,MAAgB;QACzB,MAAM,QAAQ,GAAgB,IAAI,GAAG,CAAS,MAAM,CAAC,CAAC;QAEtD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;YAC3B,IAAI,CAAC,sCAAa,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC3B,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;gBAC1B,KAAK,CAAC,WAAW,wCAAe,CAAC;gBACjC,sCAAa,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aAC/B;SACF;QAED,KAAK,MAAM,IAAI,IAAI,sCAAa,IAAI,EAAE,EAAE;YACtC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACvB,kCAAkC;gBAClC,sCAAa,MAAM,CAAC,IAAI,CAAC,CAAC;aAC3B;SACF;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;YACpB,MAAM,KAAK,GAAG,sCAAa,GAAG,CAAC,IAAI,CAAE,CAAC;YACtC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SACxB;IACH,CAAC;IAED,QAAQ,CAAC,KAAa,EAAE,IAAU,EAAE,CAAS,EAAE,CAAS;QACtD,MAAM,IAAI,GAAG,sCAAa,GAAG,CAAC,KAAK,CAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrD,sBAAsB;QACtB,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,oCAAW,WAAW,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;CACF"} \ No newline at end of file +{"version":3,"file":"grid.js","sourceRoot":"","sources":["../ts/grid.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,MAAM,OAAO,IAAI;IAKf,YAAY,IAAiB;QAJ7B,wBAAmB;QACnB,2BAAiB;QACjB,kBAA8B,IAAI,GAAG,EAAiB,EAAC;QAGrD,uBAAA,IAAI,SAAS,IAAI,EAAC;QAClB,oCAAW,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IACpC,CAAC;IAED,QAAQ,CAAC,CAAS,EAAE,CAAS;QAC3B,oCAAW,KAAK,CAAC,mBAAmB,GAAG,UAAU,CAAC,QAAQ,CAAC;QAC3D,oCAAW,KAAK,CAAC,gBAAgB,GAAG,UAAU,CAAC,QAAQ,CAAC;IAC1D,CAAC;IAED,WAAW,CAAC,GAAW;QACrB,uBAAA,IAAI,YAAY,GAAG,EAAC;QACpB,oCAAW,KAAK,CAAC,eAAe,GAAG,eAAe,sCAAa,aAAa,CAAC;QAE7E,sBAAsB;IACxB,CAAC;IAED,UAAU,CAAC,MAAgB;QACzB,MAAM,QAAQ,GAAgB,IAAI,GAAG,CAAS,MAAM,CAAC,CAAC;QAEtD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;YAC3B,IAAI,CAAC,sCAAa,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC3B,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;gBAC1B,KAAK,CAAC,WAAW,wCAAe,CAAC;gBACjC,sCAAa,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aAC/B;SACF;QAED,KAAK,MAAM,IAAI,IAAI,sCAAa,IAAI,EAAE,EAAE;YACtC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACvB,kCAAkC;gBAClC,sCAAa,MAAM,CAAC,IAAI,CAAC,CAAC;aAC3B;SACF;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;YACpB,MAAM,KAAK,GAAG,sCAAa,GAAG,CAAC,IAAI,CAAE,CAAC;YACtC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SACxB;IACH,CAAC;IAED,QAAQ,CAAC,KAAa,EAAE,YAAyB,EAAE,CAAS,EAAE,CAAS;QACrE,MAAM,IAAI,GAAG,sCAAa,GAAG,CAAC,KAAK,CAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC7D,sBAAsB;QACtB,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,oCAAW,WAAW,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;CACF"} \ No newline at end of file diff --git a/js/layer.js b/js/layer.js index ae9c0c4..c7e62c4 100644 --- a/js/layer.js +++ b/js/layer.js @@ -23,8 +23,8 @@ export class Layer { set_tileset(tileset) { __classPrivateFieldSet(this, _tileset, tileset); } - add_tile(tile) { - const elem = tile.get_elem(__classPrivateFieldGet(this, _tileset)); + add_tile(tile_factory) { + const elem = tile_factory.get_elem(__classPrivateFieldGet(this, _tileset)); elem.style.zIndex = `${__classPrivateFieldGet(this, _level)}`; return elem; } diff --git a/js/layer.js.map b/js/layer.js.map index 1e5418d..8325f97 100644 --- a/js/layer.js.map +++ b/js/layer.js.map @@ -1 +1 @@ -{"version":3,"file":"layer.js","sourceRoot":"","sources":["../ts/layer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAEA,MAAM,OAAO,KAAK;IAAlB;QACE,yBAAe;QACf,2BAAiB;IAenB,CAAC;IAbC,SAAS,CAAC,KAAa;QACrB,uBAAA,IAAI,UAAU,KAAK,EAAC;IACtB,CAAC;IAED,WAAW,CAAC,OAAe;QACzB,uBAAA,IAAI,YAAY,OAAO,EAAC;IAC1B,CAAC;IAED,QAAQ,CAAC,IAAU;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,wCAAe,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,oCAAW,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;CACF"} \ No newline at end of file +{"version":3,"file":"layer.js","sourceRoot":"","sources":["../ts/layer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAEA,MAAM,OAAO,KAAK;IAAlB;QACE,yBAAe;QACf,2BAAiB;IAenB,CAAC;IAbC,SAAS,CAAC,KAAa;QACrB,uBAAA,IAAI,UAAU,KAAK,EAAC;IACtB,CAAC;IAED,WAAW,CAAC,OAAe;QACzB,uBAAA,IAAI,YAAY,OAAO,EAAC;IAC1B,CAAC;IAED,QAAQ,CAAC,YAAyB;QAChC,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,wCAAe,CAAC;QAClD,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,oCAAW,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;CACF"} \ No newline at end of file diff --git a/js/layered_tile.js.map b/js/layered_tile.js.map deleted file mode 100644 index 32375ab..0000000 --- a/js/layered_tile.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"layered_tile.js","sourceRoot":"","sources":["../ts/layered_tile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,IAAI,EAAE,MAAM,WAAW,CAAC;AAEhD,MAAM,OAAO,WAAY,SAAQ,IAAI;IAGnC,YAAY,KAAa;QACvB,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,QAAQ,CAAC,OAAe;QACtB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9C,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;QAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACtB,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;YACzB,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;YAC1B,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;YAChC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;YACpB,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC;SAC3B;QAED,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAA6B,EAAE,EAAE;YACjE,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAC/B,GAAG,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,SAAS,EAAE,EAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAC,CAAC,CAAC,CAAC;aACrE;QACH,CAAC,CAAC,CAAC;QAEH,eAAe;QACf,WAAW,CAAC,GAAG,EAAE;YACf,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,SAAS,EAAE,EAAC,QAAQ,EAAE,EAAC,MAAM,EAAE,MAAM,EAAC,EAAC,CAAC,CAAC,CAAC;QAC/E,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,OAAO,IAAI,CAAC;IACd,CAAC;CACF"} \ No newline at end of file diff --git a/js/layered_tile.js b/js/layered_tile_factory.js similarity index 88% rename from js/layered_tile.js rename to js/layered_tile_factory.js index bd7c336..1eaa660 100644 --- a/js/layered_tile.js +++ b/js/layered_tile_factory.js @@ -1,5 +1,5 @@ -import { Tile } from './tile.js'; -export class LayeredTile extends Tile { +import { TileFactory } from './tile_factory.js'; +export class LayeredTileFactory extends TileFactory { constructor(tiles) { super('', tiles[0].width, tiles[0].height); this.tiles = tiles; @@ -32,4 +32,4 @@ export class LayeredTile extends Tile { return elem; } } -//# sourceMappingURL=layered_tile.js.map \ No newline at end of file +//# sourceMappingURL=layered_tile_factory.js.map \ No newline at end of file diff --git a/js/layered_tile_factory.js.map b/js/layered_tile_factory.js.map new file mode 100644 index 0000000..b2c21e9 --- /dev/null +++ b/js/layered_tile_factory.js.map @@ -0,0 +1 @@ +{"version":3,"file":"layered_tile_factory.js","sourceRoot":"","sources":["../ts/layered_tile_factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE/D,MAAM,OAAO,kBAAmB,SAAQ,WAAW;IAGjD,YAAY,KAAoB;QAC9B,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,QAAQ,CAAC,OAAe;QACtB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9C,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;QAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACtB,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;YACzB,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;YAC1B,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;YAChC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;YACpB,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC;SAC3B;QAED,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAA6B,EAAE,EAAE;YACjE,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAC/B,GAAG,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,SAAS,EAAE,EAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAC,CAAC,CAAC,CAAC;aACrE;QACH,CAAC,CAAC,CAAC;QAEH,eAAe;QACf,WAAW,CAAC,GAAG,EAAE;YACf,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,SAAS,EAAE,EAAC,QAAQ,EAAE,EAAC,MAAM,EAAE,MAAM,EAAC,EAAC,CAAC,CAAC,CAAC;QAC/E,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,OAAO,IAAI,CAAC;IACd,CAAC;CACF"} \ No newline at end of file diff --git a/js/tile.js.map b/js/tile.js.map deleted file mode 100644 index 724e1e5..0000000 --- a/js/tile.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"tile.js","sourceRoot":"","sources":["../ts/tile.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,IAAI;IAMf,YAAY,IAAY,EAAE,KAAa,EAAE,MAAc;QACrD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;IAC9B,CAAC;IAED,aAAa,CAAC,IAAY,EAAE,SAAqB,EAAE,OAAe;QAChE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,QAAQ,CAAC,OAAe;QACtB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,eAAe,OAAO,IAAI,IAAI,CAAC,IAAI,QAAQ,CAAC;QACzE,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QAE9C,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAA6B,EAAE,EAAE;YACjE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrD,IAAI,SAAS,EAAE;gBACb,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;aAC1C;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;EAuBE"} \ No newline at end of file diff --git a/js/tile.js b/js/tile_factory.js similarity index 95% rename from js/tile.js rename to js/tile_factory.js index d2cf81f..8cbc27e 100644 --- a/js/tile.js +++ b/js/tile_factory.js @@ -1,4 +1,4 @@ -export class Tile { +export class TileFactory { constructor(name, width, height) { this.name = name; this.width = width; @@ -47,4 +47,4 @@ function string_to_mask(mask_string: string): boolean[][] { return mask; } */ -//# sourceMappingURL=tile.js.map \ No newline at end of file +//# sourceMappingURL=tile_factory.js.map \ No newline at end of file diff --git a/js/tile_factory.js.map b/js/tile_factory.js.map new file mode 100644 index 0000000..4c94ebd --- /dev/null +++ b/js/tile_factory.js.map @@ -0,0 +1 @@ +{"version":3,"file":"tile_factory.js","sourceRoot":"","sources":["../ts/tile_factory.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,WAAW;IAMtB,YAAY,IAAY,EAAE,KAAa,EAAE,MAAc;QACrD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;IAC9B,CAAC;IAED,aAAa,CAAC,IAAY,EAAE,SAAqB,EAAE,OAAe;QAChE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,QAAQ,CAAC,OAAe;QACtB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,eAAe,OAAO,IAAI,IAAI,CAAC,IAAI,QAAQ,CAAC;QACzE,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QAE9C,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAA6B,EAAE,EAAE;YACjE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrD,IAAI,SAAS,EAAE;gBACb,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;aAC1C;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;EAuBE"} \ No newline at end of file diff --git a/js/tiles.js b/js/tiles.js index 6f6ff0a..24d3d2a 100644 --- a/js/tiles.js +++ b/js/tiles.js @@ -1,34 +1,34 @@ -import { LayeredTile } from './layered_tile.js'; -import { Tile } from './tile.js'; +import { LayeredTileFactory } from './layered_tile_factory.js'; +import { TileFactory } from './tile_factory.js'; // Straight -export const ROAD_LR = new Tile('road-lr', 6, 4); -export const ROAD_TB = new Tile('road-tb', 4, 6); +export const ROAD_LR = new TileFactory('road-lr', 6, 4); +export const ROAD_TB = new TileFactory('road-tb', 4, 6); // Elbow -export const ROAD_BL = new Tile('road-bl', 6, 6); -export const ROAD_BR = new Tile('road-br', 6, 6); -export const ROAD_TL = new Tile('road-tl', 6, 6); -export const ROAD_TR = new Tile('road-tr', 6, 6); +export const ROAD_BL = new TileFactory('road-bl', 6, 6); +export const ROAD_BR = new TileFactory('road-br', 6, 6); +export const ROAD_TL = new TileFactory('road-tl', 6, 6); +export const ROAD_TR = new TileFactory('road-tr', 6, 6); // T -export const ROAD_BLR = new Tile('road-blr', 8, 6); -export const ROAD_TLR = new Tile('road-tlr', 8, 6); -export const ROAD_LTB = new Tile('road-ltb', 6, 8); -export const ROAD_RTB = new Tile('road-rtb', 6, 8); +export const ROAD_BLR = new TileFactory('road-blr', 8, 6); +export const ROAD_TLR = new TileFactory('road-tlr', 8, 6); +export const ROAD_LTB = new TileFactory('road-ltb', 6, 8); +export const ROAD_RTB = new TileFactory('road-rtb', 6, 8); // + -export const ROAD_TBLR = new Tile('road-tblr', 8, 8); +export const ROAD_TBLR = new TileFactory('road-tblr', 8, 8); // Tower base -export const EMPTY = new Tile('empty', 4, 2); +export const EMPTY = new TileFactory('empty', 4, 2); // Straight -export const RIVER_LR = new Tile('river-lr', 6, 4); -export const RIVER_TB = new Tile('river-tb', 4, 6); +export const RIVER_LR = new TileFactory('river-lr', 6, 4); +export const RIVER_TB = new TileFactory('river-tb', 4, 6); // Elbow -export const RIVER_BR = new Tile('river-br', 6, 6); -export const RIVER_BL = new Tile('river-bl', 6, 6); -export const RIVER_TR = new Tile('river-tr', 6, 6); -export const RIVER_TL = new Tile('river-tl', 6, 6); -export const BRIDGE_LR = new Tile('bridge-lr', 6, 4); -const tower_fireball1_back = new Tile('fireball1-back', 4, 4); -const tower_fireball1 = new Tile('fireball1', 4, 4); -const tower_fireball1_front = new Tile('fireball1-front', 4, 4); +export const RIVER_BR = new TileFactory('river-br', 6, 6); +export const RIVER_BL = new TileFactory('river-bl', 6, 6); +export const RIVER_TR = new TileFactory('river-tr', 6, 6); +export const RIVER_TL = new TileFactory('river-tl', 6, 6); +export const BRIDGE_LR = new TileFactory('bridge-lr', 6, 4); +const tower_fireball1_back = new TileFactory('fireball1-back', 4, 4); +const tower_fireball1 = new TileFactory('fireball1', 4, 4); +const tower_fireball1_front = new TileFactory('fireball1-front', 4, 4); for (const tile of [tower_fireball1_back, tower_fireball1_front]) { tile.add_animation('fire', [ { @@ -50,12 +50,12 @@ for (const tile of [tower_fireball1_back, tower_fireball1_front]) { 'iterations': 1, }); } -export const TOWER_FIREBALL1 = new LayeredTile([ +export const TOWER_FIREBALL1 = new LayeredTileFactory([ tower_fireball1_back, tower_fireball1, tower_fireball1_front, ]); -class Fireball extends Tile { +class Fireball extends TileFactory { get_elem(tileset) { const elem = document.createElement('div'); elem.style.gridColumnEnd = `span ${this.width}`; diff --git a/js/tiles.js.map b/js/tiles.js.map index 5af1130..9ec4412 100644 --- a/js/tiles.js.map +++ b/js/tiles.js.map @@ -1 +1 @@ -{"version":3,"file":"tiles.js","sourceRoot":"","sources":["../ts/tiles.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"tiles.js","sourceRoot":"","sources":["../ts/tiles.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/ts/grid.ts b/ts/grid.ts index 26fddd5..7edf86d 100644 --- a/ts/grid.ts +++ b/ts/grid.ts @@ -1,5 +1,5 @@ import { Layer } from './layer.js'; -import { Tile } from './tile.js'; +import { TileFactory } from './tile_factory.js'; export class Grid { #prnt: HTMLElement; @@ -49,8 +49,8 @@ export class Grid { } } - add_tile(layer: string, tile: Tile, x: number, y: number) { - const elem = this.#layers.get(layer)!.add_tile(tile); + add_tile(layer: string, tile_factory: TileFactory, x: number, y: number) { + const elem = this.#layers.get(layer)!.add_tile(tile_factory); // Grids are 1-indexed elem.style.gridColumnStart = `${x + 1}`; elem.style.gridRowStart = `${y + 1}`; diff --git a/ts/layer.ts b/ts/layer.ts index 4ef3b3d..617e603 100644 --- a/ts/layer.ts +++ b/ts/layer.ts @@ -1,4 +1,4 @@ -import { Tile } from './tile.js'; +import { TileFactory } from './tile_factory.js'; export class Layer { #level: number; @@ -12,8 +12,8 @@ export class Layer { this.#tileset = tileset; } - add_tile(tile: Tile): HTMLElement { - const elem = tile.get_elem(this.#tileset); + add_tile(tile_factory: TileFactory): HTMLElement { + const elem = tile_factory.get_elem(this.#tileset); elem.style.zIndex = `${this.#level}`; return elem; } diff --git a/ts/layered_tile.ts b/ts/layered_tile_factory.ts similarity index 85% rename from ts/layered_tile.ts rename to ts/layered_tile_factory.ts index c5ea27d..2ad6e5d 100644 --- a/ts/layered_tile.ts +++ b/ts/layered_tile_factory.ts @@ -1,9 +1,9 @@ -import { AnimateDetail, Tile } from './tile.js'; +import { AnimateDetail, TileFactory } from './tile_factory.js'; -export class LayeredTile extends Tile { - tiles: Tile[]; +export class LayeredTileFactory extends TileFactory { + tiles: TileFactory[]; - constructor(tiles: Tile[]) { + constructor(tiles: TileFactory[]) { super('', tiles[0].width, tiles[0].height); this.tiles = tiles; } diff --git a/ts/tile.ts b/ts/tile_factory.ts similarity index 98% rename from ts/tile.ts rename to ts/tile_factory.ts index 817756e..a15ca19 100644 --- a/ts/tile.ts +++ b/ts/tile_factory.ts @@ -2,7 +2,7 @@ export interface AnimateDetail { name: string; } -export class Tile { +export class TileFactory { name: string; width: number; height: number; diff --git a/ts/tiles.ts b/ts/tiles.ts index 5f2fb3c..0061ae0 100644 --- a/ts/tiles.ts +++ b/ts/tiles.ts @@ -1,43 +1,43 @@ -import { LayeredTile } from './layered_tile.js'; -import { Tile } from './tile.js'; +import { LayeredTileFactory } from './layered_tile_factory.js'; +import { TileFactory } from './tile_factory.js'; // Straight -export const ROAD_LR = new Tile('road-lr', 6, 4); -export const ROAD_TB = new Tile('road-tb', 4, 6); +export const ROAD_LR = new TileFactory('road-lr', 6, 4); +export const ROAD_TB = new TileFactory('road-tb', 4, 6); // Elbow -export const ROAD_BL = new Tile('road-bl', 6, 6); -export const ROAD_BR = new Tile('road-br', 6, 6); -export const ROAD_TL = new Tile('road-tl', 6, 6); -export const ROAD_TR = new Tile('road-tr', 6, 6); +export const ROAD_BL = new TileFactory('road-bl', 6, 6); +export const ROAD_BR = new TileFactory('road-br', 6, 6); +export const ROAD_TL = new TileFactory('road-tl', 6, 6); +export const ROAD_TR = new TileFactory('road-tr', 6, 6); // T -export const ROAD_BLR = new Tile('road-blr', 8, 6); -export const ROAD_TLR = new Tile('road-tlr', 8, 6); -export const ROAD_LTB = new Tile('road-ltb', 6, 8); -export const ROAD_RTB = new Tile('road-rtb', 6, 8); +export const ROAD_BLR = new TileFactory('road-blr', 8, 6); +export const ROAD_TLR = new TileFactory('road-tlr', 8, 6); +export const ROAD_LTB = new TileFactory('road-ltb', 6, 8); +export const ROAD_RTB = new TileFactory('road-rtb', 6, 8); // + -export const ROAD_TBLR = new Tile('road-tblr', 8, 8); +export const ROAD_TBLR = new TileFactory('road-tblr', 8, 8); // Tower base -export const EMPTY = new Tile('empty', 4, 2); +export const EMPTY = new TileFactory('empty', 4, 2); // Straight -export const RIVER_LR = new Tile('river-lr', 6, 4); -export const RIVER_TB = new Tile('river-tb', 4, 6); +export const RIVER_LR = new TileFactory('river-lr', 6, 4); +export const RIVER_TB = new TileFactory('river-tb', 4, 6); // Elbow -export const RIVER_BR = new Tile('river-br', 6, 6); -export const RIVER_BL = new Tile('river-bl', 6, 6); -export const RIVER_TR = new Tile('river-tr', 6, 6); -export const RIVER_TL = new Tile('river-tl', 6, 6); +export const RIVER_BR = new TileFactory('river-br', 6, 6); +export const RIVER_BL = new TileFactory('river-bl', 6, 6); +export const RIVER_TR = new TileFactory('river-tr', 6, 6); +export const RIVER_TL = new TileFactory('river-tl', 6, 6); -export const BRIDGE_LR = new Tile('bridge-lr', 6, 4); +export const BRIDGE_LR = new TileFactory('bridge-lr', 6, 4); -const tower_fireball1_back = new Tile('fireball1-back', 4, 4); -const tower_fireball1 = new Tile('fireball1', 4, 4); -const tower_fireball1_front = new Tile('fireball1-front', 4, 4); +const tower_fireball1_back = new TileFactory('fireball1-back', 4, 4); +const tower_fireball1 = new TileFactory('fireball1', 4, 4); +const tower_fireball1_front = new TileFactory('fireball1-front', 4, 4); for (const tile of [tower_fireball1_back, tower_fireball1_front]) { tile.add_animation( @@ -68,13 +68,13 @@ for (const tile of [tower_fireball1_back, tower_fireball1_front]) { ); } -export const TOWER_FIREBALL1 = new LayeredTile([ +export const TOWER_FIREBALL1 = new LayeredTileFactory([ tower_fireball1_back, tower_fireball1, tower_fireball1_front, ]); -class Fireball extends Tile { +class Fireball extends TileFactory { get_elem(tileset: string): HTMLElement { const elem = document.createElement('div'); elem.style.gridColumnEnd = `span ${this.width}`; diff --git a/tsconfig.json b/tsconfig.json index d206da7..f3011c9 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -16,7 +16,8 @@ "files": [ "ts/grid.ts", "ts/layer.ts", - "ts/tile.ts", + "ts/layered_tile_factory.ts", + "ts/tile_factory.ts", "ts/tiles.ts", "ts/tower.ts" ]