diff options
Diffstat (limited to 'src/control/MapContext.ts')
-rw-r--r-- | src/control/MapContext.ts | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/control/MapContext.ts b/src/control/MapContext.ts new file mode 100644 index 0000000..4bc75c7 --- /dev/null +++ b/src/control/MapContext.ts @@ -0,0 +1,34 @@ +'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; + } +} |