diff --git a/src/css/states/main_menu.scss b/src/css/states/main_menu.scss index 31873162..15cdbe1c 100644 --- a/src/css/states/main_menu.scss +++ b/src/css/states/main_menu.scss @@ -571,7 +571,7 @@ box-sizing: border-box; @include S(grid-gap, 4px); - &.china { + &.noLinks { grid-template-columns: auto 1fr; } diff --git a/src/js/core/error_handler.js b/src/js/core/error_handler.js index c149ba76..686e4e4e 100644 --- a/src/js/core/error_handler.js +++ b/src/js/core/error_handler.js @@ -123,6 +123,4 @@ function catchErrors(message, source, lineno, colno, error) { return true; } -if (!G_IS_DEV) { - window.onerror = catchErrors; -} +window.onerror = catchErrors; diff --git a/src/js/core/restriction_manager.js b/src/js/core/restriction_manager.js index 2912d30f..c899b494 100644 --- a/src/js/core/restriction_manager.js +++ b/src/js/core/restriction_manager.js @@ -89,6 +89,11 @@ export class RestrictionManager extends ReadWriteProxy { return false; } + if (queryParamOptions.embedProvider === "gamedistribution") { + // also full version on gamedistribution + return false; + } + if (G_IS_DEV) { return typeof window !== "undefined" && window.location.search.indexOf("demo") >= 0; } diff --git a/src/js/platform/browser/wrapper.js b/src/js/platform/browser/wrapper.js index 3f4930d6..3610b533 100644 --- a/src/js/platform/browser/wrapper.js +++ b/src/js/platform/browser/wrapper.js @@ -135,15 +135,7 @@ export class PlatformWrapperImplBrowser extends PlatformWrapperInterface { openExternalLink(url, force = false) { logger.log("Opening external:", url); - if (force || this.embedProvider.externalLinks) { - window.open(url); - } else { - // Do nothing - alert( - "This platform does not allow opening external links. You can play on https://shapez.io directly to open them.\n\nClicked Link: " + - url - ); - } + window.open(url); } performRestart() { diff --git a/src/js/states/main_menu.js b/src/js/states/main_menu.js index eead08bd..6039fecb 100644 --- a/src/js/states/main_menu.js +++ b/src/js/states/main_menu.js @@ -17,6 +17,7 @@ import { waitNextFrame, } from "../core/utils"; import { HUDModalDialogs } from "../game/hud/parts/modal_dialogs"; +import { PlatformWrapperImplBrowser } from "../platform/browser/wrapper"; import { PlatformWrapperImplElectron } from "../platform/electron/wrapper"; import { getApplicationSettingById } from "../profile/application_settings"; import { T } from "../translations"; @@ -34,35 +35,56 @@ export class MainMenuState extends GameState { } getInnerHTML() { + const showLanguageIcon = !G_CHINA_VERSION && !G_WEGAME_VERSION; + const showExitAppButton = G_IS_STANDALONE; + const showUpdateLabel = !G_WEGAME_VERSION; + const showBrowserWarning = !G_IS_STANDALONE && !isSupportedBrowser(); + const showPuzzleDLC = !G_WEGAME_VERSION && G_IS_STANDALONE; + const showWegameFooter = G_WEGAME_VERSION; + + let showExternalLinks = true; + + if (G_IS_STANDALONE) { + if (G_WEGAME_VERSION || G_CHINA_VERSION) { + showExternalLinks = false; + } + } else { + const wrapper = /** @type {PlatformWrapperImplBrowser} */ (this.app.platformWrapper); + if (!wrapper.embedProvider.externalLinks) { + showExternalLinks = false; + } + } + + let showDiscordLink = showExternalLinks; + if (G_CHINA_VERSION) { + showDiscordLink = true; + } + + const showCrosspromo = !G_IS_STANDALONE && showExternalLinks; + const showDemoAdvertisement = + showExternalLinks && this.app.restrictionMgr.getIsStandaloneMarketingActive(); + + const ownsPuzzleDLC = + G_IS_STANDALONE && + /** @type { PlatformWrapperImplElectron}*/ (this.app.platformWrapper).dlcs.puzzle; + const bannerHtml = `

${T.demoBanners.title}

${T.demoBanners.intro}

- Get the shapez.io standalone! - `; - - const showDemoBadges = this.app.restrictionMgr.getIsStandaloneMarketingActive(); - const puzzleDlc = - G_IS_STANDALONE && - /** @type { PlatformWrapperImplElectron - }*/ (this.app.platformWrapper).dlcs.puzzle; + Get the shapez.io standalone! + `; return `
${ - G_CHINA_VERSION || G_WEGAME_VERSION - ? "" - : `` + showLanguageIcon + ? `` + : "" } - ${ - G_IS_STANDALONE || G_IS_DEV - ? ` - - ` - : "" - } + ${showExitAppButton ? `` : ""}