From 68ff0cb4b1f5e8d354282ef988fcb42240e34d1b Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Wed, 31 Oct 2018 15:10:40 +0100 Subject: Get rid of MapView and MapState --- src/view/MapLoader.ts | 57 --------------------------------------------------- 1 file changed, 57 deletions(-) delete mode 100644 src/view/MapLoader.ts (limited to 'src/view/MapLoader.ts') diff --git a/src/view/MapLoader.ts b/src/view/MapLoader.ts deleted file mode 100644 index c3504e3..0000000 --- a/src/view/MapLoader.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { loadImages, mkTexture } from 'util/image'; -import { mapValues, nextPowerOf2 } from '../util'; - -import { TileCoords } from './tile'; - -import MapState from '../model/state/MapState'; -import MapView from './MapView'; -import Renderer from './renderer/Renderer'; - -export interface TileMap { - texture: WebGLTexture; - tiles: Map; -} - -function loadTiles(tiles: Map): Promise> { - return loadImages(mapValues((t) => `resources/sprite/tile/${t}.png`, tiles)); -} - -function mkTileMap( - gl: WebGLRenderingContext, - tiles: Map, -): TileMap { - const tileSize = 32; - - const canvasDim = nextPowerOf2(Math.sqrt(tiles.size)); - const canvasSize = canvasDim * tileSize; - - const canvas = document.createElement('canvas'); - canvas.width = canvas.height = canvasSize; - - let x = 0, y = 0; - const map: Map = new Map(); - const ctx = canvas.getContext('2d') as CanvasRenderingContext2D; - - for (const [k, tile] of tiles) { - ctx.drawImage(tile, x * tileSize, y * tileSize); - map.set(k, [x / canvasDim, y / canvasDim, (x + 1) / canvasDim, (y + 1) / canvasDim]); - - x++; - if (x === canvasDim) { - x = 0; - y++; - } - } - - return { - texture: mkTexture(gl, canvas), - tiles: map, - }; -} - -export async function loadMap(r: Renderer, map: MapState): Promise { - const tiles = await loadTiles(map.data.tiles); - const tileMap = mkTileMap(r.getContext(), tiles); - - return new MapView(r, map, tileMap); -} -- cgit v1.2.3