diff --git a/gulp/html.js b/gulp/html.js index d9889fe1..816b4401 100644 --- a/gulp/html.js +++ b/gulp/html.js @@ -308,7 +308,7 @@ function gulptasksHTML($, gulp, buildFolder, browserSync) { gulp.task("html.standalone-beta", () => { return buildHtml("https://api-staging.shapez.io", { - analytics: true, + analytics: false, standalone: true, enableCachebust: false, }); @@ -316,7 +316,7 @@ function gulptasksHTML($, gulp, buildFolder, browserSync) { gulp.task("html.standalone-prod", () => { return buildHtml("https://api.shapez.io", { - analytics: true, + analytics: false, standalone: true, enableCachebust: false, }); diff --git a/src/js/main.js b/src/js/main.js index af9301c9..4803d980 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -19,7 +19,7 @@ if (window.coreThreadLoadedCb) { } console.log( - `%cshapez.io ️%c\n© 2019 Tobias Springer IT Solutions\nCommit %c${G_BUILD_COMMIT_HASH}%c on %c${new Date( + `%cshapez.io ️%c\n© 2020 Tobias Springer IT Solutions\nCommit %c${G_BUILD_COMMIT_HASH}%c on %c${new Date( G_BUILD_TIME ).toLocaleString()}\n`, "font-size: 35px; font-family: Arial;font-weight: bold; padding: 10px 0;", diff --git a/src/js/states/preload.js b/src/js/states/preload.js index 7d1ccabf..828dd7fe 100644 --- a/src/js/states/preload.js +++ b/src/js/states/preload.js @@ -3,6 +3,8 @@ import { createLogger } from "../core/logging"; import { findNiceValue, waitNextFrame } from "../core/utils"; import { cachebust } from "../core/cachebust"; import { PlatformWrapperImplBrowser } from "../platform/browser/wrapper"; +import { T } from "../translations"; +import { HUDModalDialogs } from "../game/hud/parts/modal_dialogs"; const logger = createLogger("state/preload"); @@ -44,9 +46,9 @@ export class PreloadState extends GameState { } } - // this.dialogs = new HUDModalDialogs(null, this.app); - // const dialogsElement = document.body.querySelector(".modalDialogParent"); - // this.dialogs.initializeToElement(dialogsElement); + this.dialogs = new HUDModalDialogs(null, this.app); + const dialogsElement = document.body.querySelector(".modalDialogParent"); + this.dialogs.initializeToElement(dialogsElement); this.statusText = this.htmlElement.querySelector(".loadingStatus > .desc"); this.statusBar = this.htmlElement.querySelector(".loadingStatus > .bar > .inner"); @@ -64,6 +66,42 @@ export class PreloadState extends GameState { startLoading() { this.setStatus("Booting") + .then(() => this.setStatus("Checking for updates")) + .then(() => { + if (G_IS_STANDALONE || true) { + return Promise.race([ + new Promise(resolve => setTimeout(resolve, 10000)), + fetch( + "https://itch.io/api/1/x/wharf/latest?target=tobspr/shapezio&channel_name=windows", + { + cache: "no-cache", + } + ) + .then(res => res.json()) + .then(({ latest }) => { + if (latest !== G_BUILD_VERSION) { + const { ok, viewUpdate } = this.dialogs.showInfo( + T.dialogs.newUpdate.title, + T.dialogs.newUpdate.desc, + ["ok:good", "viewUpdate:good"] + ); + + return new Promise(resolve => { + ok.add(resolve); + viewUpdate.add(() => { + window.open("https://tobspr.itch.io/shapezio", "_blank"); + resolve(); + }); + }); + } + }) + .catch(err => { + logger.log("Failed to fetch version:", err); + }), + ]); + } + }) + .then(() => this.setStatus("Creating platform wrapper")) .then(() => this.app.platformWrapper.initialize()) diff --git a/translations/base-en.yaml b/translations/base-en.yaml index 8679b5af..eaf2a5a1 100644 --- a/translations/base-en.yaml +++ b/translations/base-en.yaml @@ -85,6 +85,7 @@ dialogs: reset: Reset getStandalone: Get Standalone deleteGame: Delete Progress + viewUpdate: View Update importSavegameError: title: Import Error @@ -139,6 +140,10 @@ dialogs: title: Saving not possible desc: You can not save in the demo. Your game will be lost. Are you sure? + newUpdate: + title: Update available + desc: There is an update for this game available! + ingame: # This is shown in the top left corner and displays useful keybindings in # every situation diff --git a/version b/version index afaf360d..7f207341 100644 --- a/version +++ b/version @@ -1 +1 @@ -1.0.0 \ No newline at end of file +1.0.1 \ No newline at end of file