1
0
mirror of https://github.com/tobspr/shapez.io.git synced 2026-03-02 03:39:21 +00:00

Add ability to import savegames, add game menu, multiple smaller improvements

This commit is contained in:
tobspr
2020-05-16 17:57:25 +02:00
parent c1d720ca52
commit 224bc6c7e5
31 changed files with 1422 additions and 47 deletions

View File

@@ -76,13 +76,9 @@ export class Savegame extends ReadWriteProxy {
* @param {SavegameData} data
*/
migrate(data) {
// if (data.version === 1014) {
// if (data.dump) {
// const reader = new SavegameInterface_V1015(fakeLogger, data);
// reader.migrateFrom1014();
// }
// data.version = 1015;
// }
if (data.version < 1000) {
return ExplainedResult.bad("Can not migrate savegame, too old");
}
return ExplainedResult.good();
}
@@ -218,7 +214,6 @@ export class Savegame extends ReadWriteProxy {
* Updates the savegames metadata
*/
saveMetadata() {
const reader = this.getDumpReader();
this.metaDataRef.lastUpdate = new Date().getTime();
this.metaDataRef.version = this.getCurrentVersion();
return this.app.savegameMgr.writeAsync();

View File

@@ -154,6 +154,22 @@ export class SavegameManager extends ReadWriteProxy {
});
}
importSavegame(data) {
const savegame = this.createNewSavegame();
const migrationResult = savegame.migrate(data);
if (migrationResult.isBad()) {
return Promise.reject("Failed to migrate: " + migrationResult.reason);
}
savegame.currentData = data;
const verification = savegame.verify(data);
if (verification.isBad()) {
return Promise.reject("Verification failed: " + verification.result);
}
return savegame.writeSavegameAndMetadata().then(() => this.sortSavegames());
}
/**
* Sorts all savegames by their creation time descending
* @returns {Promise<any>}