| 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.