Spaces:
Running
Running
import * as CONST from '../../constants'; | |
export default class layer { | |
constructor (options) { | |
this.scene = options.scene; | |
this.type = options.type; | |
this.map = options.scene.city.map; | |
this.events = options.scene.events; | |
this.visible = options.visible || true; | |
this.list = []; | |
this.map.list.forEach((cell) => { | |
if (!cell || !cell.tiles) | |
return; | |
if (cell.tiles[this.type]) | |
this.list.push(cell.tiles[this.type]); | |
}); | |
this.events.on(CONST.E_MAP_LAYER_HIDE, this.onHide, this); | |
this.events.on(CONST.E_MAP_LAYER_SHOW, this.onShow, this); | |
} | |
toggle () { | |
if (this.visible) | |
this.hide(); | |
else | |
this.show(); | |
} | |
hide (emitEvents = true) { | |
this.visible = false; | |
this.list.forEach((tile) => { | |
tile.hide(); | |
}); | |
if (emitEvents) this.events.emit(CONST.E_MAP_LAYER_HIDE, this.type); | |
} | |
show (emitEvents = true) { | |
this.visible = true; | |
this.list.forEach((tile) => { | |
tile.show(); | |
}); | |
if (emitEvents) this.events.emit(CONST.E_MAP_LAYER_SHOW, this.type); | |
} | |
refresh () { | |
this.hide(); | |
this.show(); | |
} | |
onHide (type) { | |
return; | |
} | |
onShow (type) { | |
return; | |
} | |
} |