From 23db5b117ed06aecf5579958bc24757544a0f75b Mon Sep 17 00:00:00 2001 From: tobspr <> Date: Mon, 1 Jun 2020 12:49:04 +0200 Subject: [PATCH] Migrate old savegames --- src/html/index.html | 3 ++ src/js/changelog.js | 8 ++++ src/js/platform/browser/google_analytics.js | 5 --- src/js/savegame/savegame.js | 17 +++++++-- .../savegame/savegame_interface_registry.js | 6 ++- src/js/savegame/schemas/1002.js | 37 +++++++++++++++++++ src/js/savegame/schemas/1002.json | 5 +++ version | 2 +- 8 files changed, 72 insertions(+), 11 deletions(-) create mode 100644 src/js/savegame/schemas/1002.js create mode 100644 src/js/savegame/schemas/1002.json diff --git a/src/html/index.html b/src/html/index.html index b1d89377..243455ea 100644 --- a/src/html/index.html +++ b/src/html/index.html @@ -40,6 +40,9 @@ + + +
diff --git a/src/js/changelog.js b/src/js/changelog.js index 452cf7a4..dd219290 100644 --- a/src/js/changelog.js +++ b/src/js/changelog.js @@ -1,4 +1,12 @@ export const CHANGELOG = [ + { + version: "1.1.3", + date: "unreleased", + entries: [ + "Allow binding mouse buttons to actions (by Dimava)", + "Fix belts being too slow when copied via blueprint (by Dimava)", + ], + }, { version: "1.1.2", date: "30.05.2020", diff --git a/src/js/platform/browser/google_analytics.js b/src/js/platform/browser/google_analytics.js index 55de95cc..3c54fbbd 100644 --- a/src/js/platform/browser/google_analytics.js +++ b/src/js/platform/browser/google_analytics.js @@ -66,11 +66,6 @@ export class GoogleAnalyticsImpl extends AnalyticsInterface { } trackUiClick(elementName) { - // Only track a fraction of clicks to not annoy google analytics - if (Math_random() < 0.9) { - return; - } - const stateKey = this.app.stateMgr.getCurrentState().key; const fullSelector = stateKey + ">" + elementName; diff --git a/src/js/savegame/savegame.js b/src/js/savegame/savegame.js index a78200f9..7d59a056 100644 --- a/src/js/savegame/savegame.js +++ b/src/js/savegame/savegame.js @@ -10,8 +10,9 @@ import { BaseSavegameInterface } from "./savegame_interface"; import { createLogger } from "../core/logging"; import { globalConfig } from "../core/config"; import { SavegameInterface_V1000 } from "./schemas/1000"; -import { getSavegameInterface } from "./savegame_interface_registry"; +import { getSavegameInterface, savegameInterfaces } from "./savegame_interface_registry"; import { SavegameInterface_V1001 } from "./schemas/1001"; +import { SavegameInterface_V1002 } from "./schemas/1002"; const logger = createLogger("savegame"); @@ -30,6 +31,11 @@ export class Savegame extends ReadWriteProxy { /** @type {import("./savegame_typedefs").SavegameData} */ this.currentData = this.getDefaultData(); + + assert( + savegameInterfaces[Savegame.getCurrentVersion()], + "Savegame interface not defined: " + Savegame.getCurrentVersion() + ); } //////// RW Proxy Impl ////////// @@ -38,14 +44,14 @@ export class Savegame extends ReadWriteProxy { * @returns {number} */ static getCurrentVersion() { - return 1001; + return 1002; } /** * @returns {typeof BaseSavegameInterface} */ static getReaderClass() { - return SavegameInterface_V1001; + return savegameInterfaces[Savegame.getCurrentVersion()]; } /** @@ -82,6 +88,11 @@ export class Savegame extends ReadWriteProxy { data.version = 1001; } + if (data.version === 1001) { + SavegameInterface_V1002.migrate1001to1002(data); + data.version = 1002; + } + return ExplainedResult.good(); } diff --git a/src/js/savegame/savegame_interface_registry.js b/src/js/savegame/savegame_interface_registry.js index 2560b23e..7c6db250 100644 --- a/src/js/savegame/savegame_interface_registry.js +++ b/src/js/savegame/savegame_interface_registry.js @@ -2,11 +2,13 @@ import { BaseSavegameInterface } from "./savegame_interface"; import { SavegameInterface_V1000 } from "./schemas/1000"; import { createLogger } from "../core/logging"; import { SavegameInterface_V1001 } from "./schemas/1001"; +import { SavegameInterface_V1002 } from "./schemas/1002"; /** @type {Object.