29 lines
654 B
TypeScript
29 lines
654 B
TypeScript
import { Collision } from './collision';
|
|
|
|
export interface MapLayer {
|
|
readonly tiles: number[][];
|
|
}
|
|
|
|
export interface MapDataInput {
|
|
readonly tiles: string[];
|
|
readonly layers: MapLayer[];
|
|
readonly collision: Collision[];
|
|
}
|
|
|
|
export class MapData {
|
|
public readonly tiles: string[];
|
|
public readonly layers: MapLayer[];
|
|
public readonly collision: Collision[];
|
|
|
|
public readonly width: number;
|
|
public readonly height: number;
|
|
|
|
constructor(data: MapDataInput) {
|
|
this.tiles = data.tiles;
|
|
this.layers = data.layers;
|
|
this.collision = data.collision;
|
|
|
|
this.height = this.layers[0].tiles.length;
|
|
this.width = this.layers[0].tiles[0].length;
|
|
}
|
|
}
|