avocado-old/packages/topdown/layer.js
2019-03-26 17:04:44 -05:00

36 lines
701 B
JavaScript

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);
}
}
}