phaser4-rex-plugins
Version:
44 lines (37 loc) • 1.22 kB
JavaScript
var LoadDataKeys = function () {
this.dataKeys.clear();
var keys = this.getItem('__keys__');
if (keys) {
for (var i = 0, cnt = keys.length; i < cnt; i++) {
this.dataKeys.add(keys[i]);
}
}
return this;
}
var Load = function (defaultData, reset) {
if (defaultData === undefined) {
reset = false;
}
LoadDataKeys.call(this);
this.defaultData = defaultData;
this._syncEnable = false;
this.reset();
if (!reset) {
// Load data from localstorage according to dataKeys
this.dataKeys.forEach(function (dataKey, index) {
this.set(dataKey, this.getItem(dataKey));
}, this);
}
this._syncEnable = true;
if (defaultData) { // Load data according to defaultData
var value, prevValue;
for (var dataKey in defaultData) {
prevValue = (reset) ? undefined : this.getItem(dataKey);
value = (prevValue === undefined) ? defaultData[dataKey] : prevValue;
this.set(dataKey, value);
}
this.setItem('__keys__', Array.from(this.dataKeys));
}
return this;
}
export default Load;