36 lines
701 B
JavaScript
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);
|
|
}
|
|
}
|
|
|
|
} |