bl791's picture
download
raw
1.34 kB
Gamefic.onStart(function() {
return new Promise((resolve) => {
Opal.gvars.engine.$run();
var state = Opal.gvars.engine.$user().$character().$state();
var json = state.$to_json();
resolve(JSON.parse(json));
});
});
Gamefic.onReceive(function(input) {
Opal.gvars.engine.$receive(input);
var state = Opal.gvars.engine.$user().$character().$state();
var json = state.$to_json();
return JSON.parse(json);
});
Gamefic.onRestore(function(data) {
var current = JSON.parse(Opal.gvars.plot.$metadata().$to_json());
var snapshot = Opal.JSON.$parse(JSON.stringify(data));
return new Promise((resolve, reject) => {
if (JSON.stringify(current) == JSON.stringify(data.metadata)) {
Opal.gvars.plot.$restore(snapshot);
var preState = JSON.parse(Opal.gvars.engine.$user().$character().$state().$to_json());
Opal.gvars.engine.$user().$character().$cue(Opal.gvars.plot.$default_scene());
Opal.gvars.plot.$update();
Opal.gvars.plot.$ready();
var postState = JSON.parse(Opal.gvars.engine.$user().$character().$state().$to_json());
postState.output = preState.output;
resolve(postState);
} else {
reject('Incompatible snapshot');
}
});
});
Gamefic.onSave(function(filename, data) {
var snapshot = Opal.JSON.$generate(data);
localStorage.setItem(filename, snapshot);
});

Xet Storage Details

Size:
1.34 kB
·
Xet hash:
fbfcdd6cc988e93c524bd192bb53e1728344b7374d11ff689c0d7a97d9290834

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.