From 2e30347c20ca09a59cc553931ddcc48501e0a6e8 Mon Sep 17 00:00:00 2001 From: tobspr Date: Tue, 19 May 2020 12:07:55 +0200 Subject: [PATCH] Track ui clicks --- src/js/core/config.js | 2 +- src/js/states/main_menu.js | 20 +++++++++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/js/core/config.js b/src/js/core/config.js index 57e3b42f..e32d6ffb 100644 --- a/src/js/core/config.js +++ b/src/js/core/config.js @@ -71,7 +71,7 @@ export const globalConfig = { debug: { /* dev:start */ - fastGameEnter: true, + // fastGameEnter: true, noArtificialDelays: true, // disableSavegameWrite: true, // showEntityBounds: true, diff --git a/src/js/states/main_menu.js b/src/js/states/main_menu.js index b0853a8c..ad8f38a1 100644 --- a/src/js/states/main_menu.js +++ b/src/js/states/main_menu.js @@ -27,7 +27,7 @@ export class MainMenuState extends GameState { ${T.demoBanners.advantages.map(advantage => `
  • ${advantage}
  • `).join("")} - Get shapez.io on steam! + Get shapez.io on steam! `; return ` @@ -109,6 +109,7 @@ export class MainMenuState extends GameState { const file = input.files[0]; if (file) { waitNextFrame().then(() => { + this.app.analytics.trackUiClick("import_savegame"); const closeLoader = this.dialogs.showLoadingDialog(); const reader = new FileReader(); reader.addEventListener("load", event => { @@ -200,6 +201,19 @@ export class MainMenuState extends GameState { this.trackClicks(qs(".settingsButton"), this.onSettingsButtonClicked); this.renderSavegames(); + + const steamLinks = this.htmlElement.querySelectorAll(".steamLink"); + steamLinks.forEach(steamLink => { + steamLink.addEventListener("click", this.onSteamLinkClicked.bind(this)); + }); + } + + onSteamLinkClicked(event) { + this.app.analytics.trackUiClick("main_menu_steam_link"); + alert("The steam version will launch very soon! (Planned date: Begin of June 2020)"); + // window.open("https://steam.shapez.io"); + event.preventDefault(); + return false; } renderSavegames() { @@ -245,6 +259,7 @@ export class MainMenuState extends GameState { * @param {object} game */ resumeGame(game) { + this.app.analytics.trackUiClick("resume_game"); const savegame = this.app.savegameMgr.getSavegameById(game.internalId); savegame.readAsync().then(() => { this.moveToState("InGameState", { @@ -282,6 +297,8 @@ export class MainMenuState extends GameState { * @param {object} game */ downloadGame(game) { + this.app.analytics.trackUiClick("download_game"); + const savegame = this.app.savegameMgr.getSavegameById(game.internalId); savegame.readAsync().then(() => { const data = ReadWriteProxy.serializeObject(savegame.currentData); @@ -294,6 +311,7 @@ export class MainMenuState extends GameState { } onPlayButtonClicked() { + this.app.analytics.trackUiClick("start_new_game"); const savegame = this.app.savegameMgr.createNewSavegame(); this.app.analytics.trackUiClick("startgame");