'use strict'; import Direction from '../model/Direction'; import Entity from '../model/Entity'; import EntityPosition from '../model/EntityPosition'; import MapData from '../model/MapData'; import Position from '../model/Position'; import MapView from '../view/MapView'; export default class MapContext { view: MapView; entities: {[key: string]: EntityPosition} = {}; playerEntity: EntityPosition; constructor(public map: MapData) { this.playerEntity = new EntityPosition( new Entity('square'), new Position(8, 8), Direction.East ); this.addEntity(this.playerEntity); this.view = new MapView(map, this.entities); } addEntity(entity: EntityPosition) { this.entities[entity.position.asString()] = entity; } }