import * as I from 'immutable'; import {EntityList} from '@avocado/entity'; import {Tiles} from '@avocado/topdown'; export class Layer { constructor() { this.tiles = undefined; this.tilesetUri = undefined; this.entityList = new EntityList(); this._state = I.Map(); } fromJSON(json) { if (json.tiles) { this.tiles = (new Tiles()).fromJSON(json.tiles) } if (json.tilesetUri) { this.tilesetUri = json.tilesetUri; } return this; } get state() { return this._state; } tick(elapsed) { if (this.entityList) { this.entityList.tick(elapsed); this._state = this._state.set('entityList', this.entityList.state); } } }