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:
@@ -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();
|
||||
|
||||
@@ -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>}
|
||||
|
||||
Reference in New Issue
Block a user