export interface CollisionPolygon { readonly type: 'polygon'; readonly vertices: Array<[number, number]>; } export type Collision = CollisionPolygon; export interface Input { readonly tiles: string[]; readonly layers: number[][][]; readonly collision: Collision[]; } export class MapData { public readonly tiles: string[]; public readonly layers: number[][][]; public readonly collision: Collision[]; public readonly width: number; public readonly height: number; constructor(data: Input) { this.tiles = data.tiles; this.layers = data.layers; this.collision = data.collision; this.height = this.layers[0].length; this.width = this.layers[0][0].length; } }