Prepare support for adding extra elements to map layers

This commit is contained in:
Matthias Schiffer 2018-11-11 20:31:22 +01:00
parent e77b54f01b
commit ec0e51231f
Signed by: neocturne
GPG key ID: 16EF3F64CB201D9C
4 changed files with 58 additions and 46 deletions

View file

@ -39,7 +39,7 @@ export class GameContext implements CollidableGroup {
);
}
private static async loadMap(renderer: Renderer, name: string): Promise<[SpriteView, Collidable[]]> {
private static async loadMap(renderer: Renderer, name: string): Promise<[SpriteView[], Collidable[]]> {
const map = new MapData(await getJSON(`resources/map/${name}.json`));
return [await loadMap(renderer, map), mkCollision(map.collision)];
}
@ -61,7 +61,7 @@ export class GameContext implements CollidableGroup {
private constructor(
private readonly renderer: Renderer,
private readonly mapView: SpriteView,
private readonly mapView: SpriteView[],
private readonly player: EntityContext,
private readonly entities: EntityContext[],
private readonly collision: Collidable[],
@ -168,7 +168,8 @@ export class GameContext implements CollidableGroup {
this.renderer.setCenter(this.player.pos);
this.renderer.clear();
this.mapView.render();
for (const layer of this.mapView)
layer.render();
for (const r of [...this.entities, this.player])
r.render(time);