From 222ea8c261a4c32bec9d9472af39147f05a50919 Mon Sep 17 00:00:00 2001 From: tobspr Date: Mon, 6 Jun 2022 14:06:09 +0200 Subject: [PATCH 1/6] Merge steam-demo branch --- gulp/.itch.toml | 9 - gulp/build_variants.js | 66 ++++ gulp/cordova.js | 139 ------- gulp/gulpfile.js | 228 ++++-------- gulp/html.js | 118 ++---- gulp/js.js | 346 ++++++------------ gulp/release-uploader.js | 66 ---- gulp/standalone.js | 201 ++++------ .../scripts/app-demo.vdf.template | 14 + .../steampipe-darwin/scripts/app.vdf.template | 4 +- gulp/steampipe-darwin/scripts/darwin.vdf | 2 +- gulp/steampipe-darwin/scripts/demo-darwin.vdf | 12 + gulp/steampipe-darwin/upload.sh | 2 +- gulp/steampipe/scripts/app-demo.vdf.template | 17 + gulp/steampipe/scripts/app.vdf.template | 10 +- gulp/steampipe/scripts/china-linux.vdf | 2 +- gulp/steampipe/scripts/china-windows.vdf | 2 +- gulp/steampipe/scripts/demo-china-linux.vdf | 12 + gulp/steampipe/scripts/demo-china-windows.vdf | 12 + gulp/steampipe/scripts/demo-linux.vdf | 12 + gulp/steampipe/scripts/demo-windows.vdf | 12 + gulp/steampipe/scripts/linux.vdf | 2 +- gulp/steampipe/scripts/windows.vdf | 2 +- gulp/steampipe/upload-demo.bat | 3 + gulp/steampipe/upload.bat | 1 - gulp/webpack.config.js | 16 +- gulp/webpack.production.config.js | 15 +- res/ui/memes/cat1.png | Bin 241117 -> 214484 bytes src/css/ingame_hud/standalone_advantages.scss | 5 + .../{cat_memes.scss => steam_capsule.scss} | 18 +- src/css/main.scss | 8 +- src/css/states/main_menu.scss | 29 +- src/css/states/settings.scss | 4 + src/js/application.js | 13 +- src/js/core/background_resources_loader.js | 4 + src/js/core/config.js | 13 +- src/js/core/globals.js | 2 - src/js/core/restriction_manager.js | 10 +- src/js/core/utils.js | 29 +- src/js/game/hud/parts/cat_memes.js | 21 -- src/js/game/hud/parts/modal_dialogs.js | 6 +- .../game/hud/parts/standalone_advantages.js | 35 +- src/js/game/hud/parts/steam_capsule.js | 31 ++ src/js/game/hud/parts/unlock_notification.js | 9 +- src/js/game/hud/parts/watermark.js | 55 +-- src/js/game/modes/regular.js | 6 +- src/js/globals.d.ts | 3 +- src/js/mods/modloader.js | 9 + src/js/platform/browser/game_analytics.js | 129 +++++-- src/js/platform/browser/no_game_analytics.js | 7 - src/js/profile/application_settings.js | 6 +- src/js/states/main_menu.js | 24 +- src/js/states/mods.js | 12 +- src/js/states/preload.js | 23 ++ src/js/states/settings.js | 6 +- translations/base-en.yaml | 31 +- 56 files changed, 792 insertions(+), 1081 deletions(-) delete mode 100644 gulp/.itch.toml create mode 100644 gulp/build_variants.js delete mode 100644 gulp/cordova.js delete mode 100644 gulp/release-uploader.js create mode 100644 gulp/steampipe-darwin/scripts/app-demo.vdf.template create mode 100644 gulp/steampipe-darwin/scripts/demo-darwin.vdf create mode 100644 gulp/steampipe/scripts/app-demo.vdf.template create mode 100644 gulp/steampipe/scripts/demo-china-linux.vdf create mode 100644 gulp/steampipe/scripts/demo-china-windows.vdf create mode 100644 gulp/steampipe/scripts/demo-linux.vdf create mode 100644 gulp/steampipe/scripts/demo-windows.vdf create mode 100644 gulp/steampipe/upload-demo.bat rename src/css/ingame_hud/{cat_memes.scss => steam_capsule.scss} (50%) delete mode 100644 src/js/game/hud/parts/cat_memes.js create mode 100644 src/js/game/hud/parts/steam_capsule.js delete mode 100644 src/js/platform/browser/no_game_analytics.js diff --git a/gulp/.itch.toml b/gulp/.itch.toml deleted file mode 100644 index 2556ac9c..00000000 --- a/gulp/.itch.toml +++ /dev/null @@ -1,9 +0,0 @@ -[[actions]] -name = "play" -path = "shapezio.exe" -platform = "windows" - -[[actions]] -name = "play" -path = "play.sh" -platform = "linux" diff --git a/gulp/build_variants.js b/gulp/build_variants.js new file mode 100644 index 00000000..a0a4ab72 --- /dev/null +++ b/gulp/build_variants.js @@ -0,0 +1,66 @@ +/** + * @type {Record} + */ +const BUILD_VARIANTS = { + "web-localhost": { + standalone: false, + environment: "dev", + buildArgs: {}, + }, + "web-shapezio-beta": { + standalone: false, + environment: "staging", + buildArgs: {}, + }, + "web-shapezio": { + standalone: false, + environment: "prod", + buildArgs: {}, + }, + "standalone-steam": { + standalone: true, + executableName: "shapez", + steamAppId: 1318690, + buildArgs: {}, + }, + "standalone-steam-china": {n + standalone: true, + steamAppId: 1318690, + buildArgs: { + chineseVersion: true, + }, + }, + "standalone-steam-demo": { + standalone: true, + steamAppId: 1930750, + buildArgs: { + steamDemo: true, + }, + }, + "standalone-steam-china-demo": { + standalone: true, + steamAppId: 1930750, + buildArgs: { + steamDemo: true, + chineseVersion: true, + }, + }, + "standalone-wegame": { + standalone: true, + electronBaseDir: "electron_wegame", + buildArgs: { + wegameVersion: true, + }, + }, +}; +module.exports = { BUILD_VARIANTS }; diff --git a/gulp/cordova.js b/gulp/cordova.js deleted file mode 100644 index 22274dba..00000000 --- a/gulp/cordova.js +++ /dev/null @@ -1,139 +0,0 @@ -const path = require("path"); -const fs = require("fs"); -const buildUtils = require("./buildutils"); - -function gulptasksCordova($, gulp, buildFolder) { - const cdvRes = path.join("..", "..", "res"); - - // Cleans up the app assets - // Removes all temporary folders used while optimizing the assets - gulp.task("cleanupAppAssetsBuiltFolder", () => { - return gulp - .src(path.join(cdvRes, "built"), { read: false, allowEmpty: true }) - .pipe($.clean({ force: true })); - }); - - // Optimizes all built assets - gulp.task("optimizeBuiltAppAssets", () => { - return gulp - .src(path.join(cdvRes, "built", "**", "*.png")) - .pipe($.flatten()) - .pipe($.imagemin([$.imagemin.optipng({ optimizationLevel: 1 })])) - .pipe(gulp.dest(path.join(cdvRes, "built"))); - }); - - // Scales the icon resources - gulp.task("scaleIconIos", async () => { - const sizes = [ - 180, - 60, - 120, - 76, - 152, - 40, - 80, - 57, - 114, - 72, - 144, - 167, - 29, - 58, - 87, - 50, - 100, - 167, - 20, - 1024, - 24, - 48, - 55, - 172, - 196, - ]; - for (let i = 0; i < sizes.length; ++i) { - const size = sizes[i]; - console.log("Scaling icon to", size, "x", size); - const img = await $.jimp.read(path.join(cdvRes, "ios", "icon-prefab.png")); - await img.resize(size, size).write(path.join(cdvRes, "built", "ios", "icon@" + size + ".png")); - } - }); - - gulp.task("copyOtherIosResources", () => { - return gulp - .src(path.join(cdvRes, "ios", "splash-prefab.png")) - .pipe($.rename("Default@2x~universal~anyany.png")) - .pipe(gulp.dest(path.join(cdvRes, "built", "ios"))); - }); - - gulp.task("prepareIosRes", gulp.series("scaleIconIos", "copyOtherIosResources")); - - gulp.task("copyAndroidResources", () => { - return gulp - .src(path.join(cdvRes, "android", "**", "*.*")) - .pipe(gulp.dest(path.join(cdvRes, "built", "android"))); - }); - - gulp.task("prepareAndroidRes", gulp.series("copyAndroidResources")); - - gulp.task( - "prepareCordovaAssets", - gulp.series( - "cleanupAppAssetsBuiltFolder", - gulp.parallel("prepareIosRes", "prepareAndroidRes"), - "optimizeBuiltAppAssets" - ) - ); - - // Patches the config.xml by replacing the app id to app_beta - - gulp.task("patchConfigXML", cb => { - const configUrl = path.join("..", "..", "config.xml"); - let configContent = fs.readFileSync(configUrl).toString(); - const version = buildUtils.getVersion(); - configContent = configContent.replace("%VERSION%", version); - configContent = configContent.replace(' id="io.shapez.app" ', ' id="io.shapez.app_beta" '); - configContent = configContent.replace("Shapez.io", "Shapez.io BETA"); - fs.writeFileSync(configUrl, configContent); - cb(); - }); - - gulp.task("patchConfigXMLChangeStagingToProd", cb => { - const configUrl = path.join("..", "..", "config.xml"); - let configContent = fs.readFileSync(configUrl).toString(); - configContent = configContent.replace(' id="io.shapez.app_beta" ', ' id="io.shapez.app" '); - configContent = configContent.replace("Shapez.io BETA", "Shapez.io"); - fs.writeFileSync(configUrl, configContent); - cb(); - }); - - // Triggers a new build on phonegap - gulp.task("triggerPhonegapBuild", () => { - return gulp - .src("src/html/", { dot: false }) - .pipe( - $.phonegapBuild({ - isRepository: true, - appId: "3339820", - platforms: ["android", "ios"], - user: { - token: process.env.SHAPEZ_CLI_PHONEGAP_KEY, - }, - }) - ) - .pipe( - $.phonegapBuild({ - isRepository: true, - appId: "3537816", - platforms: ["android", "ios"], - user: { - token: process.env.SHAPEZ_CLI_PHONEGAP_KEY, - }, - }) - ); - }); -} - -module.exports = { - gulptasksCordova, -}; diff --git a/gulp/gulpfile.js b/gulp/gulpfile.js index 7c210417..4b5b18cf 100644 --- a/gulp/gulpfile.js +++ b/gulp/gulpfile.js @@ -18,7 +18,6 @@ const $ = require("gulp-load-plugins")({ const envVars = [ "SHAPEZ_CLI_SERVER_HOST", - // "SHAPEZ_CLI_PHONEGAP_KEY", "SHAPEZ_CLI_ALPHA_FTP_USER", "SHAPEZ_CLI_ALPHA_FTP_PW", "SHAPEZ_CLI_STAGING_FTP_USER", @@ -33,8 +32,7 @@ const envVars = [ for (let i = 0; i < envVars.length; ++i) { if (!process.env[envVars[i]]) { - console.warn("Please set", envVars[i]); - // process.exit(1); + console.warn("Unset environment variable, might cause issues:", envVars[i]); } } @@ -57,7 +55,7 @@ const js = require("./js"); js.gulptasksJS($, gulp, buildFolder, browserSync); const html = require("./html"); -html.gulptasksHTML($, gulp, buildFolder, browserSync); +html.gulptasksHTML($, gulp, buildFolder); const ftp = require("./ftp"); ftp.gulptasksFTP($, gulp, buildFolder); @@ -66,13 +64,11 @@ const docs = require("./docs"); docs.gulptasksDocs($, gulp, buildFolder); const standalone = require("./standalone"); -standalone.gulptasksStandalone($, gulp, buildFolder); - -const releaseUploader = require("./release-uploader"); -releaseUploader.gulptasksReleaseUploader($, gulp, buildFolder); +standalone.gulptasksStandalone($, gulp); const translations = require("./translations"); -translations.gulptasksTranslations($, gulp, buildFolder); +const { BUILD_VARIANTS } = require("./build_variants"); +translations.gulptasksTranslations($, gulp); ///////////////////// BUILD TASKS ///////////////////// @@ -142,9 +138,9 @@ gulp.task("main.webserver", () => { /** * * @param {object} param0 - * @param {"web"|"standalone"|"china"|"wegame"} param0.version + * @param {keyof typeof BUILD_VARIANTS} param0.version */ -function serve({ version = "web" }) { +function serveHTML({ version = "web-dev" }) { browserSync.init({ server: [buildFolder, path.join(baseDir, "mod_examples")], port: 3005, @@ -168,10 +164,7 @@ function serve({ version = "web" }) { gulp.watch(["../src/**/*.scss"], gulp.series("css.dev")); // Watch .html files, those trigger a html rebuild - gulp.watch("../src/**/*.html", gulp.series(version === "web" ? "html.dev" : "html.standalone-dev")); - - // Watch sound files - // gulp.watch(["../res_raw/sounds/**/*.mp3", "../res_raw/sounds/**/*.wav"], gulp.series("sounds.dev")); + gulp.watch("../src/**/*.html", gulp.series("html." + version + ".dev")); // Watch translations gulp.watch("../translations/**/*.yaml", gulp.series("translations.convertToJson")); @@ -204,27 +197,7 @@ function serve({ version = "web" }) { return gulp.src(path).pipe(browserSync.reload({ stream: true })); }); - switch (version) { - case "web": { - gulp.series("js.dev.watch")(() => true); - break; - } - case "standalone": { - gulp.series("js.standalone-dev.watch")(() => true); - break; - } - case "china": { - gulp.series("china.js.dev.watch")(() => true); - break; - } - case "wegame": { - gulp.series("wegame.js.dev.watch")(() => true); - break; - } - default: { - throw new Error("Unknown version " + version); - } - } + gulp.series("js." + version + ".dev.watch")(() => true); } ///////////////////// RUNNABLE TASKS ///////////////////// @@ -238,9 +211,9 @@ gulp.task("step.deleteEmpty", cb => { gulp.task("step.postbuild", gulp.series("imgres.cleanupUnusedCssInlineImages", "step.deleteEmpty")); -// Builds everything (dev) +// // Builds everything (dev) gulp.task( - "build.dev", + "build.prepare.dev", gulp.series( "utils.cleanup", "utils.copyAdditionalBuildFiles", @@ -252,146 +225,95 @@ gulp.task( "imgres.copyImageResources", "imgres.copyNonImageResources", "translations.fullBuild", - "css.dev", - "html.dev" + "css.dev" ) ); -// Builds everything (standalone -dev) -gulp.task( - "build.standalone.dev", - gulp.series( - "utils.cleanup", - "localConfig.findOrCreate", - "imgres.buildAtlas", - "imgres.atlasToJson", - "imgres.atlas", - "sounds.dev", - "imgres.copyImageResources", - "imgres.copyNonImageResources", - "translations.fullBuild", - "css.dev", - "html.standalone-dev" - ) -); +// // Builds everything (staging) +// gulp.task("step.staging.code", gulp.series("sounds.fullbuild", "translations.fullBuild", "js.staging")); +// gulp.task( +// "step.staging.mainbuild", +// gulp.parallel("utils.copyAdditionalBuildFiles", "step.baseResources", "step.staging.code") +// ); +// gulp.task("step.staging.all", gulp.series("step.staging.mainbuild", "css.prod", "html.staging")); +// gulp.task("build.staging", gulp.series("utils.cleanup", "step.staging.all", "step.postbuild")); -// Builds everything (staging) -gulp.task("step.staging.code", gulp.series("sounds.fullbuild", "translations.fullBuild", "js.staging")); -gulp.task( - "step.staging.mainbuild", - gulp.parallel("utils.copyAdditionalBuildFiles", "step.baseResources", "step.staging.code") -); -gulp.task("step.staging.all", gulp.series("step.staging.mainbuild", "css.prod", "html.staging")); -gulp.task("build.staging", gulp.series("utils.cleanup", "step.staging.all", "step.postbuild")); +// // Builds everything (prod) +// gulp.task("step.prod.code", gulp.series("sounds.fullbuild", "translations.fullBuild", "js.prod")); +// gulp.task( +// "step.prod.mainbuild", +// gulp.parallel("utils.copyAdditionalBuildFiles", "step.baseResources", "step.prod.code") +// ); +// gulp.task("step.prod.all", gulp.series("step.prod.mainbuild", "css.prod", "html.prod")); +// gulp.task("build.prod", gulp.series("utils.cleanup", "step.prod.all", "step.postbuild")); -// Builds everything (prod) -gulp.task("step.prod.code", gulp.series("sounds.fullbuild", "translations.fullBuild", "js.prod")); -gulp.task( - "step.prod.mainbuild", - gulp.parallel("utils.copyAdditionalBuildFiles", "step.baseResources", "step.prod.code") -); -gulp.task("step.prod.all", gulp.series("step.prod.mainbuild", "css.prod", "html.prod")); -gulp.task("build.prod", gulp.series("utils.cleanup", "step.prod.all", "step.postbuild")); +// Builds everything for every variant +for (const variant in BUILD_VARIANTS) { + const data = BUILD_VARIANTS[variant]; + const buildName = "build." + variant; -// Builds everything (standalone-beta) -gulp.task( - "step.standalone-beta.code", - gulp.series("sounds.fullbuildHQ", "translations.fullBuild", "js.standalone-beta") -); -gulp.task("step.standalone-beta.mainbuild", gulp.parallel("step.baseResources", "step.standalone-beta.code")); -gulp.task( - "step.standalone-beta.all", - gulp.series("step.standalone-beta.mainbuild", "css.prod-standalone", "html.standalone-beta") -); -gulp.task( - "build.standalone-beta", - gulp.series("utils.cleanup", "step.standalone-beta.all", "step.postbuild") -); - -// Builds everything (standalone-prod) - -for (const prefix of ["", "china.", "wegame."]) { gulp.task( - prefix + "step.standalone-prod.code", - gulp.series("sounds.fullbuildHQ", "translations.fullBuild", prefix + "js.standalone-prod") + buildName + ".code", + gulp.series( + data.standalone ? "sounds.fullbuildHQ" : "sounds.fullbuild", + "translations.fullBuild", + "js." + variant + ".prod" + ) ); - gulp.task( - prefix + "step.standalone-prod.mainbuild", - gulp.parallel("step.baseResources", prefix + "step.standalone-prod.code") - ); + gulp.task(buildName + ".resourcesAndCode", gulp.parallel("step.baseResources", buildName + ".code")); gulp.task( - prefix + "step.standalone-prod.all", - gulp.series(prefix + "step.standalone-prod.mainbuild", "css.prod-standalone", "html.standalone-prod") + buildName + ".all", + gulp.series(buildName + ".resourcesAndCode", "css.prod-standalone", "html." + variant + ".prod") ); + gulp.task(buildName, gulp.series("utils.cleanup", buildName + ".all", "step.postbuild")); + + // serve gulp.task( - prefix + "build.standalone-prod", - gulp.series("utils.cleanup", prefix + "step.standalone-prod.all", "step.postbuild") + "serve." + variant, + gulp.series("build.prepare.dev", "html." + variant + ".dev", () => serveHTML({ version: variant })) ); } // OS X build and release upload -gulp.task( - "build.darwin64-prod", - gulp.series( - "build.standalone-prod", - "standalone.prepare", - "standalone.package.prod.darwin64.signManually" - ) -); +// gulp.task( +// "build.darwin64-prod", +// gulp.series( +// "build.standalone-prod", +// "standalone.prepare", +// "standalone.package.prod.darwin64.signManually" +// ) +// ); // Deploying! gulp.task( - "main.deploy.alpha", - gulp.series("utils.requireCleanWorkingTree", "build.staging", "ftp.upload.alpha") + "deploy.staging", + gulp.series("utils.requireCleanWorkingTree", "build.web-shapezio-beta", "ftp.upload.staging") ); gulp.task( - "main.deploy.staging", - gulp.series("utils.requireCleanWorkingTree", "build.staging", "ftp.upload.staging") -); -gulp.task("main.deploy.prod", gulp.series("utils.requireCleanWorkingTree", "build.prod", "ftp.upload.prod")); -gulp.task("main.deploy.all", gulp.series("main.deploy.staging", "main.deploy.prod")); - -// steam -gulp.task("regular.main.standalone", gulp.series("build.standalone-prod", "standalone.package.prod")); - -// china -gulp.task( - "china.main.standalone", - gulp.series("china.build.standalone-prod", "china.standalone.package.prod") + "deploy.prod", + gulp.series("utils.requireCleanWorkingTree", "build.web-shapezio", "ftp.upload.prod") ); -// wegame -gulp.task( - "wegame.main.standalone", - gulp.series("wegame.build.standalone-prod", "wegame.standalone.package.prod") -); +// // china +// gulp.task( +// "china.main.standalone", +// gulp.series("china.build.standalone-prod", "china.standalone.package.prod") +// ); -// all (except wegame) -gulp.task("standalone.steam", gulp.series("regular.main.standalone", "china.main.standalone")); -gulp.task( - "standalone.all", - gulp.series("regular.main.standalone", "china.main.standalone", "wegame.main.standalone") -); +// // wegame +// gulp.task( +// "wegame.main.standalone", +// gulp.series("wegame.build.standalone-prod", "wegame.standalone.package.prod") +// ); -// Live-development -gulp.task( - "main.serveDev", - gulp.series("build.dev", () => serve({ version: "web" })) -); -gulp.task( - "main.serveStandalone", - gulp.series("build.standalone.dev", () => serve({ version: "standalone" })) -); -gulp.task( - "china.main.serveDev", - gulp.series("build.dev", () => serve({ version: "china" })) -); -gulp.task( - "wegame.main.serveDev", - gulp.series("build.dev", () => serve({ version: "wegame" })) -); +// // all (except wegame) +// gulp.task("standalone.steam", gulp.series("regular.main.standalone", "china.main.standalone")); +// gulp.task( +// "standalone.all", +// gulp.series("regular.main.standalone", "china.main.standalone", "wegame.main.standalone") +// ); -gulp.task("default", gulp.series("main.serveDev")); +gulp.task("default", gulp.series("serve.web-localhost")); diff --git a/gulp/html.js b/gulp/html.js index 0ba58a15..be638f43 100644 --- a/gulp/html.js +++ b/gulp/html.js @@ -2,6 +2,7 @@ const buildUtils = require("./buildutils"); const fs = require("fs"); const path = require("path"); const crypto = require("crypto"); +const { BUILD_VARIANTS } = require("./build_variants"); function computeIntegrityHash(fullPath, algorithm = "sha256") { const file = fs.readFileSync(fullPath); @@ -9,12 +10,20 @@ function computeIntegrityHash(fullPath, algorithm = "sha256") { return algorithm + "-" + hash; } +/** + * PROVIDES (per ) + * + * html..dev + * html..prod + */ function gulptasksHTML($, gulp, buildFolder) { const commitHash = buildUtils.getRevision(); - async function buildHtml( - apiUrl, - { analytics = false, standalone = false, app = false, integrity = true, enableCachebust = true } - ) { + async function buildHtml({ + googleAnalytics = false, + standalone = false, + integrity = true, + enableCachebust = true, + }) { function cachebust(url) { if (enableCachebust) { return buildUtils.cachebust(url, commitHash); @@ -22,7 +31,7 @@ function gulptasksHTML($, gulp, buildFolder) { return url; } - const hasLocalFiles = standalone || app; + const hasLocalFiles = standalone; return gulp .src("../src/html/" + (standalone ? "index.standalone.html" : "index.html")) @@ -31,13 +40,6 @@ function gulptasksHTML($, gulp, buildFolder) { /** @this {Document} **/ function () { const document = this; - // Preconnect to api - const prefetchLink = document.createElement("link"); - prefetchLink.rel = "preconnect"; - prefetchLink.href = apiUrl; - prefetchLink.setAttribute("crossorigin", "anonymous"); - document.head.appendChild(prefetchLink); - // Append css const css = document.createElement("link"); css.rel = "stylesheet"; @@ -53,31 +55,8 @@ function gulptasksHTML($, gulp, buildFolder) { } document.head.appendChild(css); - // Append async css - // const asyncCss = document.createElement("link"); - // asyncCss.rel = "stylesheet"; - // asyncCss.type = "text/css"; - // asyncCss.media = "none"; - // asyncCss.setAttribute("onload", "this.media='all'"); - // asyncCss.href = cachebust("async-resources.css"); - // if (integrity) { - // asyncCss.setAttribute( - // "integrity", - // computeIntegrityHash(path.join(buildFolder, "async-resources.css")) - // ); - // } - // document.head.appendChild(asyncCss); - - if (app) { - // Append cordova link - const cdv = document.createElement("script"); - cdv.src = "cordova.js"; - cdv.type = "text/javascript"; - document.head.appendChild(cdv); - } - // Google analytics - if (analytics) { + if (googleAnalytics) { const tagManagerScript = document.createElement("script"); tagManagerScript.src = "https://www.googletagmanager.com/gtag/js?id=UA-165342524-1"; @@ -92,14 +71,6 @@ function gulptasksHTML($, gulp, buildFolder) { gtag('config', 'UA-165342524-1', { anonymize_ip: true }); `; document.head.appendChild(initScript); - - const abTestingScript = document.createElement("script"); - abTestingScript.setAttribute( - "src", - "https://www.googleoptimize.com/optimize.js?id=OPT-M5NHCV7" - ); - abTestingScript.setAttribute("async", ""); - document.head.appendChild(abTestingScript); } // Do not need to preload in app or standalone @@ -250,50 +221,25 @@ function gulptasksHTML($, gulp, buildFolder) { .pipe(gulp.dest(buildFolder)); } - gulp.task("html.dev", () => { - return buildHtml("http://localhost:5005", { - analytics: false, - integrity: false, - enableCachebust: false, + for (const variant in BUILD_VARIANTS) { + const data = BUILD_VARIANTS[variant]; + gulp.task("html." + variant + ".dev", () => { + return buildHtml({ + googleAnalytics: false, + standalone: data.standalone, + integrity: false, + enableCachebust: false, + }); }); - }); - - gulp.task("html.staging", () => { - return buildHtml("https://api-staging.shapez.io", { - analytics: true, + gulp.task("html." + variant + ".prod", () => { + return buildHtml({ + googleAnalytics: !data.standalone, + standalone: data.standalone, + integrity: true, + enableCachebust: !data.standalone, + }); }); - }); - - gulp.task("html.prod", () => { - return buildHtml("https://analytics.shapez.io", { - analytics: true, - }); - }); - - gulp.task("html.standalone-dev", () => { - return buildHtml("https://localhost:5005", { - analytics: false, - standalone: true, - integrity: false, - enableCachebust: false, - }); - }); - - gulp.task("html.standalone-beta", () => { - return buildHtml("https://api-staging.shapez.io", { - analytics: false, - standalone: true, - enableCachebust: false, - }); - }); - - gulp.task("html.standalone-prod", () => { - return buildHtml("https://analytics.shapez.io", { - analytics: false, - standalone: true, - enableCachebust: false, - }); - }); + } } module.exports = { diff --git a/gulp/js.js b/gulp/js.js index 93dab464..f3f77ad9 100644 --- a/gulp/js.js +++ b/gulp/js.js @@ -1,260 +1,122 @@ const path = require("path"); +const { BUILD_VARIANTS } = require("./build_variants"); function requireUncached(module) { delete require.cache[require.resolve(module)]; return require(module); } +/** + * PROVIDES (per ) + * + * js..dev.watch + * js..dev + * js..prod + * + */ + function gulptasksJS($, gulp, buildFolder, browserSync) { //// DEV - gulp.task("js.dev.watch", () => { - return gulp - .src("../src/js/main.js") - .pipe( - $.webpackStream( - requireUncached("./webpack.config.js")({ - watch: true, - }) + for (const variant in BUILD_VARIANTS) { + const data = BUILD_VARIANTS[variant]; + + gulp.task("js." + variant + ".dev.watch", () => { + return gulp + .src("../src/js/main.js") + .pipe( + $.webpackStream( + requireUncached("./webpack.config.js")({ + ...data.buildArgs, + standalone: data.standalone, + watch: true, + }) + ) ) - ) - .pipe(gulp.dest(buildFolder)) - .pipe(browserSync.stream()); - }); + .pipe(gulp.dest(buildFolder)) + .pipe(browserSync.stream()); + }); - gulp.task("js.dev", () => { - return gulp - .src("../src/js/main.js") - .pipe($.webpackStream(requireUncached("./webpack.config.js")({}))) - .pipe(gulp.dest(buildFolder)); - }); + if (!data.standalone) { + // WEB - //// DEV CHINA + gulp.task("js." + variant + ".dev", () => { + return gulp + .src("../src/js/main.js") + .pipe( + $.webpackStream( + requireUncached("./webpack.config.js")({ + ...data.buildArgs, + }) + ) + ) + .pipe(gulp.dest(buildFolder)); + }); - gulp.task("china.js.dev.watch", () => { - return gulp - .src("../src/js/main.js") - .pipe( - $.webpackStream( - requireUncached("./webpack.config.js")({ - watch: true, - chineseVersion: true, - }) - ) - ) - .pipe(gulp.dest(buildFolder)) - .pipe(browserSync.stream()); - }); + gulp.task("js." + variant + ".prod.transpiled", () => { + return gulp + .src("../src/js/main.js") + .pipe( + $.webpackStream( + requireUncached("./webpack.production.config.js")({ + es6: false, + ...data.buildArgs, + }) + ) + ) + .pipe($.rename("bundle-transpiled.js")) + .pipe(gulp.dest(buildFolder)); + }); - gulp.task("china.js.dev", () => { - return gulp - .src("../src/js/main.js") - .pipe( - $.webpackStream( - requireUncached("./webpack.config.js")({ - chineseVersion: true, - }) - ) - ) - .pipe(gulp.dest(buildFolder)); - }); - - //// DEV WEGAME - - gulp.task("wegame.js.dev.watch", () => { - return gulp - .src("../src/js/main.js") - .pipe( - $.webpackStream( - requireUncached("./webpack.config.js")({ - watch: true, - wegameVersion: true, - }) - ) - ) - .pipe(gulp.dest(buildFolder)) - .pipe(browserSync.stream()); - }); - - gulp.task("wegame.js.dev", () => { - return gulp - .src("../src/js/main.js") - .pipe( - $.webpackStream( - requireUncached("./webpack.config.js")({ - wegameVersion: true, - }) - ) - ) - .pipe(gulp.dest(buildFolder)); - }); - - //// STAGING - - gulp.task("js.staging.transpiled", () => { - return gulp - .src("../src/js/main.js") - .pipe( - $.webpackStream( - requireUncached("./webpack.production.config.js")({ - enableAssert: true, - environment: "staging", - es6: false, - }) - ) - ) - .pipe($.rename("bundle-transpiled.js")) - .pipe(gulp.dest(buildFolder)); - }); - - gulp.task("js.staging.latest", () => { - return gulp - .src("../src/js/main.js") - .pipe( - $.webpackStream( - requireUncached("./webpack.production.config.js")({ - enableAssert: true, - environment: "staging", - es6: true, - }) - ) - ) - .pipe(gulp.dest(buildFolder)); - }); - gulp.task("js.staging", gulp.parallel("js.staging.transpiled", "js.staging.latest")); - - //// PROD - - gulp.task("js.prod.transpiled", () => { - return gulp - .src("../src/js/main.js") - .pipe( - $.webpackStream( - requireUncached("./webpack.production.config.js")({ - enableAssert: false, - environment: "prod", - es6: false, - }) - ) - ) - .pipe($.rename("bundle-transpiled.js")) - .pipe(gulp.dest(buildFolder)) - .pipe(browserSync.stream()); - }); - - gulp.task("js.prod.latest", () => { - return gulp - .src("../src/js/main.js") - .pipe( - $.webpackStream( - requireUncached("./webpack.production.config.js")({ - enableAssert: false, - environment: "prod", - es6: true, - }) - ) - ) - .pipe(gulp.dest(buildFolder)) - .pipe(browserSync.stream()); - }); - - gulp.task("js.prod", gulp.parallel("js.prod.transpiled", "js.prod.latest")); - - //// STANDALONE - - gulp.task("js.standalone-dev.watch", () => { - return gulp - .src("../src/js/main.js") - .pipe( - $.webpackStream( - requireUncached("./webpack.config.js")({ - watch: true, - standalone: true, - }) - ) - ) - .pipe(gulp.dest(buildFolder)) - .pipe(browserSync.stream()); - }); - - gulp.task("js.standalone-dev", () => { - return gulp - .src("../src/js/main.js") - .pipe( - $.webpackStream( - requireUncached("./webpack.config.js")({ - standalone: true, - }) - ) - ) - .pipe(gulp.dest(buildFolder)); - }); - - gulp.task("js.standalone-beta", () => { - return gulp - .src("../src/js/main.js") - .pipe( - $.webpackStream( - requireUncached("./webpack.production.config.js")({ - enableAssert: true, - environment: "staging", - es6: true, - standalone: true, - }) - ) - ) - .pipe(gulp.dest(buildFolder)); - }); - - gulp.task("js.standalone-prod", () => { - return gulp - .src("../src/js/main.js") - .pipe( - $.webpackStream( - requireUncached("./webpack.production.config.js")({ - enableAssert: false, - environment: "prod", - es6: true, - standalone: true, - }) - ) - ) - .pipe(gulp.dest(buildFolder)); - }); - - gulp.task("china.js.standalone-prod", () => { - return gulp - .src("../src/js/main.js") - .pipe( - $.webpackStream( - requireUncached("./webpack.production.config.js")({ - enableAssert: false, - environment: "prod", - es6: true, - standalone: true, - chineseVersion: true, - }) - ) - ) - .pipe(gulp.dest(buildFolder)); - }); - - gulp.task("wegame.js.standalone-prod", () => { - return gulp - .src("../src/js/main.js") - .pipe( - $.webpackStream( - requireUncached("./webpack.production.config.js")({ - enableAssert: false, - environment: "prod", - es6: false, - standalone: true, - wegameVersion: true, - }) - ) - ) - .pipe(gulp.dest(buildFolder)); - }); + gulp.task("js." + variant + ".prod.es6", () => { + return gulp + .src("../src/js/main.js") + .pipe( + $.webpackStream( + requireUncached("./webpack.production.config.js")({ + es6: true, + ...data.buildArgs, + }) + ) + ) + .pipe(gulp.dest(buildFolder)); + }); + gulp.task( + "js." + variant + ".prod", + gulp.parallel("js." + variant + ".prod.transpiled", "js." + variant + ".prod.es6") + ); + } else { + // STANDALONE + gulp.task("js." + variant + ".dev", () => { + return gulp + .src("../src/js/main.js") + .pipe( + $.webpackStream( + requireUncached("./webpack.config.js")({ + ...data.buildArgs, + standalone: true, + }) + ) + ) + .pipe(gulp.dest(buildFolder)); + }); + gulp.task("js." + variant + ".prod", () => { + return gulp + .src("../src/js/main.js") + .pipe( + $.webpackStream( + requireUncached("./webpack.production.config.js")({ + ...data.buildArgs, + environment: "prod", + es6: true, + standalone: true, + }) + ) + ) + .pipe(gulp.dest(buildFolder)); + }); + } + } } module.exports = { diff --git a/gulp/release-uploader.js b/gulp/release-uploader.js deleted file mode 100644 index eececa4a..00000000 --- a/gulp/release-uploader.js +++ /dev/null @@ -1,66 +0,0 @@ -const path = require("path"); -const fs = require("fs"); -const execSync = require("child_process").execSync; -const { Octokit } = require("@octokit/rest"); -const buildutils = require("./buildutils"); - -function gulptasksReleaseUploader($, gulp, buildFolder) { - const standaloneDir = path.join(__dirname, "..", "tmp_standalone_files"); - const darwinApp = path.join(standaloneDir, "shapez.io-standalone-darwin-x64", "shapez.io-standalone.app"); - const dmgName = "shapez.io-standalone.dmg"; - const dmgPath = path.join(standaloneDir, "shapez.io-standalone-darwin-x64", dmgName); - - gulp.task("standalone.uploadRelease.darwin64.cleanup", () => { - return gulp.src(dmgPath, { read: false, allowEmpty: true }).pipe($.clean({ force: true })); - }); - - gulp.task("standalone.uploadRelease.darwin64.compress", cb => { - console.log("Packaging disk image", dmgPath); - execSync(`hdiutil create -format UDBZ -srcfolder ${darwinApp} ${dmgPath}`); - cb(); - }); - - gulp.task("standalone.uploadRelease.darwin64.upload", async cb => { - const currentTag = buildutils.getTag(); - - const octokit = new Octokit({ - auth: process.env.SHAPEZ_CLI_GITHUB_TOKEN - }); - - const createdRelease = await octokit.request("POST /repos/{owner}/{repo}/releases", { - owner: process.env.SHAPEZ_CLI_GITHUB_USER, - repo: "shapez.io", - tag_name: currentTag, - name: currentTag, - draft: true - }); - - const { data: { id, upload_url } } = createdRelease; - console.log(`Created release ${id} for tag ${currentTag}`); - - const dmgContents = fs.readFileSync(dmgPath); - const dmgSize = fs.statSync(dmgPath).size; - console.log("Uploading", dmgContents.length / 1024 / 1024, "MB to", upload_url); - - await octokit.request({ - method: "POST", - url: upload_url, - headers: { - "content-type": "application/x-apple-diskimage" - }, - name: dmgName, - data: dmgContents - }); - - cb(); - }); - - gulp.task("standalone.uploadRelease.darwin64", - gulp.series( - "standalone.uploadRelease.darwin64.cleanup", - "standalone.uploadRelease.darwin64.compress", - "standalone.uploadRelease.darwin64.upload" - )); -} - -module.exports = { gulptasksReleaseUploader }; diff --git a/gulp/standalone.js b/gulp/standalone.js index ecd393a2..0d4f06c7 100644 --- a/gulp/standalone.js +++ b/gulp/standalone.js @@ -8,6 +8,7 @@ const fse = require("fs-extra"); const buildutils = require("./buildutils"); const execSync = require("child_process").execSync; const electronNotarize = require("electron-notarize"); +const { BUILD_VARIANTS } = require("./build_variants"); let signAsync; try { @@ -17,56 +18,32 @@ try { } function gulptasksStandalone($, gulp) { - const targets = [ - { - tempDestDir: path.join(__dirname, "..", "tmp_standalone_files"), - suffix: "", - taskPrefix: "", - electronBaseDir: path.join(__dirname, "..", "electron"), - steam: true, - }, - { - tempDestDir: path.join(__dirname, "..", "tmp_standalone_files_china"), - suffix: "china", - taskPrefix: "china.", - electronBaseDir: path.join(__dirname, "..", "electron"), - steam: true, - }, - { - tempDestDir: path.join(__dirname, "..", "tmp_standalone_files_wegame"), - suffix: "wegame", - taskPrefix: "wegame.", - electronBaseDir: path.join(__dirname, "..", "electron_wegame"), - steam: false, - }, - ]; - - for (const { tempDestDir, suffix, taskPrefix, electronBaseDir, steam } of targets) { + for (const variant in BUILD_VARIANTS) { + const variantData = BUILD_VARIANTS[variant]; + if (!variantData.standalone) { + continue; + } + const tempDestDir = path.join(__dirname, "..", "build_output", variant); + const taskPrefix = "standalone." + variant; + const electronBaseDir = path.join(__dirname, "..", variantData.electronBaseDir || "electron"); const tempDestBuildDir = path.join(tempDestDir, "built"); - gulp.task(taskPrefix + "standalone.prepare.cleanup", () => { + gulp.task(taskPrefix + ".prepare.cleanup", () => { return gulp.src(tempDestDir, { read: false, allowEmpty: true }).pipe($.clean({ force: true })); }); - gulp.task(taskPrefix + "standalone.prepare.copyPrefab", () => { + gulp.task(taskPrefix + ".prepare.copyPrefab", () => { const requiredFiles = [ path.join(electronBaseDir, "node_modules", "**", "*.*"), path.join(electronBaseDir, "node_modules", "**", ".*"), path.join(electronBaseDir, "wegame_sdk", "**", "*.*"), path.join(electronBaseDir, "wegame_sdk", "**", ".*"), path.join(electronBaseDir, "favicon*"), - - // fails on platforms which support symlinks - // https://github.com/gulpjs/gulp/issues/1427 - // path.join(electronBaseDir, "node_modules", "**", "*"), ]; - if (steam) { - requiredFiles.push(path.join(electronBaseDir, "steam_appid.txt")); - } return gulp.src(requiredFiles, { base: electronBaseDir }).pipe(gulp.dest(tempDestBuildDir)); }); - gulp.task(taskPrefix + "standalone.prepare.writePackageJson", cb => { + gulp.task(taskPrefix + ".prepare.writePackageJson", cb => { const packageJsonString = JSON.stringify( { scripts: { @@ -85,52 +62,15 @@ function gulptasksStandalone($, gulp) { cb(); }); - gulp.task(taskPrefix + "standalone.prepareVDF", cb => { - if (!steam) { - cb(); - return; - } - - const hash = buildutils.getRevision(); - - const steampipeDir = path.join(__dirname, "steampipe", "scripts"); - const templateContents = fs - .readFileSync(path.join(steampipeDir, "app.vdf.template"), { encoding: "utf-8" }) - .toString(); - - const convertedContents = templateContents.replace("$DESC$", "Commit " + hash); - fs.writeFileSync(path.join(steampipeDir, "app.vdf"), convertedContents); - - cb(); - }); - - gulp.task(taskPrefix + "standalone.prepareVDF.darwin", cb => { - if (!steam) { - cb(); - return; - } - - const hash = buildutils.getRevision(); - const steampipeDir = path.join(__dirname, "steampipe-darwin", "scripts"); - const templateContents = fs - .readFileSync(path.join(steampipeDir, "app.vdf.template"), { encoding: "utf-8" }) - .toString(); - - const convertedContents = templateContents.replace("$DESC$", "Commit " + hash); - fs.writeFileSync(path.join(steampipeDir, "app.vdf"), convertedContents); - - cb(); - }); - - gulp.task(taskPrefix + "standalone.prepare.minifyCode", () => { + gulp.task(taskPrefix + ".prepare.minifyCode", () => { return gulp.src(path.join(electronBaseDir, "*.js")).pipe(gulp.dest(tempDestBuildDir)); }); - gulp.task(taskPrefix + "standalone.prepare.copyGamefiles", () => { + gulp.task(taskPrefix + ".prepare.copyGamefiles", () => { return gulp.src("../build/**/*.*", { base: "../build" }).pipe(gulp.dest(tempDestBuildDir)); }); - gulp.task(taskPrefix + "standalone.killRunningInstances", cb => { + gulp.task(taskPrefix + ".killRunningInstances", cb => { try { execSync("taskkill /F /IM shapezio.exe"); } catch (ex) { @@ -140,14 +80,14 @@ function gulptasksStandalone($, gulp) { }); gulp.task( - taskPrefix + "standalone.prepare", + taskPrefix + ".prepare", gulp.series( - taskPrefix + "standalone.killRunningInstances", - taskPrefix + "standalone.prepare.cleanup", - taskPrefix + "standalone.prepare.copyPrefab", - taskPrefix + "standalone.prepare.writePackageJson", - taskPrefix + "standalone.prepare.minifyCode", - taskPrefix + "standalone.prepare.copyGamefiles" + taskPrefix + ".killRunningInstances", + taskPrefix + ".prepare.cleanup", + taskPrefix + ".prepare.copyPrefab", + taskPrefix + ".prepare.writePackageJson", + taskPrefix + ".prepare.minifyCode", + taskPrefix + ".prepare.copyGamefiles" ) ); @@ -158,11 +98,13 @@ function gulptasksStandalone($, gulp) { * @param {function():void} cb */ function packageStandalone(platform, arch, cb, isRelease = true) { - const tomlFile = fs.readFileSync(path.join(__dirname, ".itch.toml")); const privateArtifactsPath = "node_modules/shapez.io-private-artifacts"; - let asar = steam; - if (steam && fs.existsSync(path.join(tempDestBuildDir, privateArtifactsPath))) { + // Only use asar on steam builds (not supported by wegame) + let asar = Boolean(variantData.steamAppId); + + // Unpack private artifacts though + if (asar && fs.existsSync(path.join(tempDestBuildDir, privateArtifactsPath))) { // @ts-expect-error asar = { unpackDir: privateArtifactsPath }; } @@ -177,10 +119,10 @@ function gulptasksStandalone($, gulp) { asar: asar, executableName: "shapezio", icon: path.join(electronBaseDir, "favicon"), - name: "shapez.io-standalone" + suffix, + name: "shapez-" + variant, out: tempDestDir, overwrite: true, - appBundleId: "tobspr.shapezio.standalone", + appBundleId: "tobspr.shapezio." + variant, appCategoryType: "public.app-category.games", ...(isRelease && platform === "darwin" && { @@ -189,6 +131,7 @@ function gulptasksStandalone($, gulp) { "hardenedRuntime": true, "entitlements": "entitlements.plist", "entitlements-inherit": "entitlements.plist", + // @ts-ignore "signatureFlags": ["library"], "version": "16.0.7", }, @@ -202,43 +145,42 @@ function gulptasksStandalone($, gulp) { console.log("Packages created:", appPaths); appPaths.forEach(appPath => { if (!fs.existsSync(appPath)) { - console.error("Bad app path gotten:", appPath); + console.error("Bad app path:", appPath); return; } - if (steam) { + if (variantData.steamAppId) { fs.writeFileSync( path.join(appPath, "LICENSE"), fs.readFileSync(path.join(__dirname, "..", "LICENSE")) ); - fse.copySync( - path.join(tempDestBuildDir, "steam_appid.txt"), - path.join(appPath, "steam_appid.txt") + fs.writeFileSync( + path.join(appPath, "steam_appid.txt"), + String(variantData.steamAppId) ); - fs.writeFileSync(path.join(appPath, ".itch.toml"), tomlFile); - if (platform === "linux") { + // Write launcher script fs.writeFileSync( path.join(appPath, "play.sh"), '#!/usr/bin/env bash\n./shapezio --no-sandbox "$@"\n' ); fs.chmodSync(path.join(appPath, "play.sh"), 0o775); } + if (platform === "darwin") { if (!isRelease) { - fse.copySync( - path.join(tempDestBuildDir, "steam_appid.txt"), + // Needs special location + fs.writeFileSync( path.join( - path.join( - appPath, - "shapez.io-standalone.app", - "Contents", - "MacOS" - ), + appPath, + "shapez.io-standalone.app", + "Contents", + "MacOS", "steam_appid.txt" - ) + ), + String(variantData.steamAppId) ); } } @@ -255,7 +197,7 @@ function gulptasksStandalone($, gulp) { } // Manual signing with patched @electron/osx-sign (we need --no-strict) - gulp.task(taskPrefix + "standalone.package.prod.darwin64.signManually", cb => + gulp.task(taskPrefix + ".package.darwin64", cb => packageStandalone( "darwin", "x64", @@ -327,29 +269,44 @@ function gulptasksStandalone($, gulp) { ) ); - gulp.task(taskPrefix + "standalone.package.prod.win64", cb => packageStandalone("win32", "x64", cb)); - gulp.task(taskPrefix + "standalone.package.prod.linux64", cb => - packageStandalone("linux", "x64", cb) - ); - gulp.task(taskPrefix + "standalone.package.prod.darwin64", cb => - packageStandalone("darwin", "x64", cb) - ); - gulp.task(taskPrefix + "standalone.package.prod.darwin64.unsigned", cb => - packageStandalone("darwin", "x64", cb, false) - ); - + gulp.task(taskPrefix + ".package.win64", cb => packageStandalone("win32", "x64", cb)); + gulp.task(taskPrefix + ".package.linux64", cb => packageStandalone("linux", "x64", cb)); gulp.task( - taskPrefix + "standalone.package.prod", + taskPrefix + ".build-from-windows", gulp.series( - taskPrefix + "standalone.prepare", - gulp.parallel( - taskPrefix + "standalone.package.prod.win64", - taskPrefix + "standalone.package.prod.linux64", - taskPrefix + "standalone.package.prod.darwin64" - ) + taskPrefix + ".prepare", + gulp.parallel(taskPrefix + ".package.win64", taskPrefix + ".package.linux64") ) ); + gulp.task( + taskPrefix + ".build-from-darwin", + gulp.series(taskPrefix + ".prepare", gulp.parallel(taskPrefix + ".package.darwin64")) + ); } + + // Steam helpers + gulp.task("standalone.prepareVDF", cb => { + const hash = buildutils.getRevision(); + const version = buildutils.getVersion(); + + for (const platform of ["steampipe", "steampipe-darwin"]) { + const steampipeDir = path.join(__dirname, platform, "scripts"); + for (const buildVariant of ["app", "app-demo"]) { + const templateContents = fs + .readFileSync(path.join(steampipeDir, buildVariant + ".vdf.template"), { + encoding: "utf-8", + }) + .toString(); + + const convertedContents = templateContents.replace( + "$DESC$", + platform + " " + buildVariant + " version " + version + ", commit " + hash + ); + fs.writeFileSync(path.join(steampipeDir, buildVariant + ".vdf"), convertedContents); + } + } + cb(); + }); } module.exports = { gulptasksStandalone }; diff --git a/gulp/steampipe-darwin/scripts/app-demo.vdf.template b/gulp/steampipe-darwin/scripts/app-demo.vdf.template new file mode 100644 index 00000000..699288d2 --- /dev/null +++ b/gulp/steampipe-darwin/scripts/app-demo.vdf.template @@ -0,0 +1,14 @@ +"appbuild" +{ + "appid" "1930750" + "desc" "$DESC$" + "buildoutput" "$STEAMPIPE_DIR$/steamtmp" + "contentroot" "" + "setlive" "" + "preview" "0" + "local" "" + "depots" + { + "1930756" "$STEAMPIPE_DIR$/scripts/demo-darwin.vdf" + } +} diff --git a/gulp/steampipe-darwin/scripts/app.vdf.template b/gulp/steampipe-darwin/scripts/app.vdf.template index 18ad3457..74a31abe 100644 --- a/gulp/steampipe-darwin/scripts/app.vdf.template +++ b/gulp/steampipe-darwin/scripts/app.vdf.template @@ -2,13 +2,13 @@ { "appid" "1318690" "desc" "$DESC$" - "buildoutput" "/Users/tobiasspringer/work/shapez.io/gulp/steampipe-darwin/steamtmp" + "buildoutput" "$PROJECT_DIR$/gulp/steampipe-darwin/steamtmp" "contentroot" "" "setlive" "" "preview" "0" "local" "" "depots" { - "1318693" "/Users/tobiasspringer/work/shapez.io/gulp/steampipe-darwin/scripts/darwin.vdf" + "1318693" "$PROJECT_DIR$/gulp/steampipe-darwin/scripts/darwin.vdf" } } diff --git a/gulp/steampipe-darwin/scripts/darwin.vdf b/gulp/steampipe-darwin/scripts/darwin.vdf index d92014dc..fe52d8e9 100644 --- a/gulp/steampipe-darwin/scripts/darwin.vdf +++ b/gulp/steampipe-darwin/scripts/darwin.vdf @@ -1,7 +1,7 @@ "DepotBuildConfig" { "DepotID" "1318693" - "contentroot" "/Users/tobiasspringer/work/shapez.io/tmp_standalone_files/shapez.io-standalone-darwin-x64" + "contentroot" "$PROJECT_DIR$/tmp_standalone_files/shapez.io-standalone-darwin-x64" "FileMapping" { "LocalPath" "*" diff --git a/gulp/steampipe-darwin/scripts/demo-darwin.vdf b/gulp/steampipe-darwin/scripts/demo-darwin.vdf new file mode 100644 index 00000000..b6597586 --- /dev/null +++ b/gulp/steampipe-darwin/scripts/demo-darwin.vdf @@ -0,0 +1,12 @@ +"DepotBuildConfig" +{ + "DepotID" "1930756" + "contentroot" "$PROJECT_DIR$/tmp_standalone_files/shapez.io-demo-darwin-x64" + "FileMapping" + { + "LocalPath" "*" + "DepotPath" "." + "recursive" "1" + } + "FileExclusion" "*.pdb" +} \ No newline at end of file diff --git a/gulp/steampipe-darwin/upload.sh b/gulp/steampipe-darwin/upload.sh index f5afd921..551f16bb 100755 --- a/gulp/steampipe-darwin/upload.sh +++ b/gulp/steampipe-darwin/upload.sh @@ -1,3 +1,3 @@ #!/bin/sh -yarn gulp standalone.prepareVDF.darwin +yarn gulp standalone.prepareVDF steamcmd.sh +login $STEAM_UPLOAD_SHAPEZ_ID $STEAM_UPLOAD_SHAPEZ_USER +run_app_build $PWD/scripts/app.vdf +quit diff --git a/gulp/steampipe/scripts/app-demo.vdf.template b/gulp/steampipe/scripts/app-demo.vdf.template new file mode 100644 index 00000000..3e874fbf --- /dev/null +++ b/gulp/steampipe/scripts/app-demo.vdf.template @@ -0,0 +1,17 @@ +"appbuild" +{ + "appid" "1930750" + "desc" "$DESC$" + "buildoutput" "$STEAMPIPE_DIR$\steamtemp" + "contentroot" "" + "setlive" "" + "preview" "0" + "local" "" + "depots" + { + "1930753" "$STEAMPIPE_DIR$\scripts\demo-windows.vdf" + "1930754" "$STEAMPIPE_DIR$\scripts\demo-china-windows.vdf" + "1930752" "$STEAMPIPE_DIR$\scripts\demo-linux.vdf" + "1930755" "$STEAMPIPE_DIR$\scripts\demo-china-linux.vdf" + } +} diff --git a/gulp/steampipe/scripts/app.vdf.template b/gulp/steampipe/scripts/app.vdf.template index 5359acfe..15f9d3ed 100644 --- a/gulp/steampipe/scripts/app.vdf.template +++ b/gulp/steampipe/scripts/app.vdf.template @@ -2,16 +2,16 @@ { "appid" "1318690" "desc" "$DESC$" - "buildoutput" "C:\work\shapez\shapez.io\gulp\steampipe\steamtemp" + "buildoutput" "$STEAMPIPE_DIR$\steamtemp" "contentroot" "" "setlive" "" "preview" "0" "local" "" "depots" { - "1318691" "C:\work\shapez\shapez.io\gulp\steampipe\scripts\windows.vdf" - "1318694" "C:\work\shapez\shapez.io\gulp\steampipe\scripts\china-windows.vdf" - "1318692" "C:\work\shapez\shapez.io\gulp\steampipe\scripts\linux.vdf" - "1318695" "C:\work\shapez\shapez.io\gulp\steampipe\scripts\china-linux.vdf" + "1318691" "$STEAMPIPE_DIR$\scripts\windows.vdf" + "1318694" "$STEAMPIPE_DIR$\scripts\china-windows.vdf" + "1318692" "$STEAMPIPE_DIR$\scripts\linux.vdf" + "1318695" "$STEAMPIPE_DIR$\scripts\china-linux.vdf" } } diff --git a/gulp/steampipe/scripts/china-linux.vdf b/gulp/steampipe/scripts/china-linux.vdf index 3906312b..a68cb592 100644 --- a/gulp/steampipe/scripts/china-linux.vdf +++ b/gulp/steampipe/scripts/china-linux.vdf @@ -1,7 +1,7 @@ "DepotBuildConfig" { "DepotID" "1318695" - "contentroot" "C:\work\shapez\shapez.io\tmp_standalone_files_china\shapez.io-standalonechina-linux-x64" + "contentroot" "$PROJECT_DIR$\tmp_standalone_files_china\shapez.io-standalonechina-linux-x64" "FileMapping" { "LocalPath" "*" diff --git a/gulp/steampipe/scripts/china-windows.vdf b/gulp/steampipe/scripts/china-windows.vdf index 3a098cbc..27cee261 100644 --- a/gulp/steampipe/scripts/china-windows.vdf +++ b/gulp/steampipe/scripts/china-windows.vdf @@ -1,7 +1,7 @@ "DepotBuildConfig" { "DepotID" "1318694" - "contentroot" "C:\work\shapez\shapez.io\tmp_standalone_files_china\shapez.io-standalonechina-win32-x64" + "contentroot" "$PROJECT_DIR$\shapez.io-standalonechina-win32-x64" "FileMapping" { "LocalPath" "*" diff --git a/gulp/steampipe/scripts/demo-china-linux.vdf b/gulp/steampipe/scripts/demo-china-linux.vdf new file mode 100644 index 00000000..b38d16d6 --- /dev/null +++ b/gulp/steampipe/scripts/demo-china-linux.vdf @@ -0,0 +1,12 @@ +"DepotBuildConfig" +{ + "DepotID" "1930755" + "contentroot" "$PROJECT_DIR$\tmp_standalone_files_china\shapez.io-demochina-linux-x64" + "FileMapping" + { + "LocalPath" "*" + "DepotPath" "." + "recursive" "1" + } + "FileExclusion" "*.pdb" +} \ No newline at end of file diff --git a/gulp/steampipe/scripts/demo-china-windows.vdf b/gulp/steampipe/scripts/demo-china-windows.vdf new file mode 100644 index 00000000..a41e9461 --- /dev/null +++ b/gulp/steampipe/scripts/demo-china-windows.vdf @@ -0,0 +1,12 @@ +"DepotBuildConfig" +{ + "DepotID" "1930754" + "contentroot" "$PROJECT_DIR$\tmp_standalone_files_china\shapez.io-demochina-win32-x64" + "FileMapping" + { + "LocalPath" "*" + "DepotPath" "." + "recursive" "1" + } + "FileExclusion" "*.pdb" +} \ No newline at end of file diff --git a/gulp/steampipe/scripts/demo-linux.vdf b/gulp/steampipe/scripts/demo-linux.vdf new file mode 100644 index 00000000..eabd9115 --- /dev/null +++ b/gulp/steampipe/scripts/demo-linux.vdf @@ -0,0 +1,12 @@ +"DepotBuildConfig" +{ + "DepotID" "1930752" + "contentroot" "$PROJECT_DIR$\tmp_standalone_files\shapez.io-demo-linux-x64" + "FileMapping" + { + "LocalPath" "*" + "DepotPath" "." + "recursive" "1" + } + "FileExclusion" "*.pdb" +} \ No newline at end of file diff --git a/gulp/steampipe/scripts/demo-windows.vdf b/gulp/steampipe/scripts/demo-windows.vdf new file mode 100644 index 00000000..a551e51f --- /dev/null +++ b/gulp/steampipe/scripts/demo-windows.vdf @@ -0,0 +1,12 @@ +"DepotBuildConfig" +{ + "DepotID" "1930753" + "contentroot" "$PROJECT_DIR$\tmp_standalone_files\shapez.io-demo-win32-x64" + "FileMapping" + { + "LocalPath" "*" + "DepotPath" "." + "recursive" "1" + } + "FileExclusion" "*.pdb" +} \ No newline at end of file diff --git a/gulp/steampipe/scripts/linux.vdf b/gulp/steampipe/scripts/linux.vdf index 60dfcca5..cc04785b 100644 --- a/gulp/steampipe/scripts/linux.vdf +++ b/gulp/steampipe/scripts/linux.vdf @@ -1,7 +1,7 @@ "DepotBuildConfig" { "DepotID" "1318692" - "contentroot" "C:\work\shapez\shapez.io\tmp_standalone_files\shapez.io-standalone-linux-x64" + "contentroot" "$PROJECT_DIR$\tmp_standalone_files\shapez.io-standalone-linux-x64" "FileMapping" { "LocalPath" "*" diff --git a/gulp/steampipe/scripts/windows.vdf b/gulp/steampipe/scripts/windows.vdf index 7d0db436..e01ebbac 100644 --- a/gulp/steampipe/scripts/windows.vdf +++ b/gulp/steampipe/scripts/windows.vdf @@ -1,7 +1,7 @@ "DepotBuildConfig" { "DepotID" "1318691" - "contentroot" "C:\work\shapez\shapez.io\tmp_standalone_files\shapez.io-standalone-win32-x64" + "contentroot" "$PROJECT_DIR$\tmp_standalone_files\shapez.io-standalone-win32-x64" "FileMapping" { "LocalPath" "*" diff --git a/gulp/steampipe/upload-demo.bat b/gulp/steampipe/upload-demo.bat new file mode 100644 index 00000000..0e01dbef --- /dev/null +++ b/gulp/steampipe/upload-demo.bat @@ -0,0 +1,3 @@ +@echo off +cmd /c yarn gulp standalone.prepareVDF +steamcmd +login %STEAM_UPLOAD_SHAPEZ_ID% %STEAM_UPLOAD_SHAPEZ_USER% +run_app_build %cd%/scripts/app-demo.vdf +quit \ No newline at end of file diff --git a/gulp/steampipe/upload.bat b/gulp/steampipe/upload.bat index 86dcf926..00153ebd 100644 --- a/gulp/steampipe/upload.bat +++ b/gulp/steampipe/upload.bat @@ -1,4 +1,3 @@ @echo off cmd /c yarn gulp standalone.prepareVDF steamcmd +login %STEAM_UPLOAD_SHAPEZ_ID% %STEAM_UPLOAD_SHAPEZ_USER% +run_app_build %cd%/scripts/app.vdf +quit -start https://partner.steamgames.com/apps/builds/1318690 diff --git a/gulp/webpack.config.js b/gulp/webpack.config.js index 3c07d7cc..f1f4b2c0 100644 --- a/gulp/webpack.config.js +++ b/gulp/webpack.config.js @@ -3,10 +3,15 @@ const path = require("path"); const webpack = require("webpack"); const { getRevision, getVersion, getAllResourceImages } = require("./buildutils"); -const lzString = require("lz-string"); const CircularDependencyPlugin = require("circular-dependency-plugin"); -module.exports = ({ watch = false, standalone = false, chineseVersion = false, wegameVersion = false }) => { +module.exports = ({ + watch = false, + standalone = false, + chineseVersion = false, + wegameVersion = false, + steamDemo = false, +}) => { return { mode: "development", devtool: "cheap-source-map", @@ -31,16 +36,13 @@ module.exports = ({ watch = false, standalone = false, chineseVersion = false, w "window.assert(false, 'abstract method called of: ' + (this.name || (this.constructor && this.constructor.name)));", G_HAVE_ASSERT: "true", G_APP_ENVIRONMENT: JSON.stringify("dev"), - G_TRACKING_ENDPOINT: JSON.stringify( - lzString.compressToEncodedURIComponent("http://localhost:10005/v1") - ), G_CHINA_VERSION: JSON.stringify(chineseVersion), G_WEGAME_VERSION: JSON.stringify(wegameVersion), G_IS_DEV: "true", G_IS_RELEASE: "false", - G_IS_MOBILE_APP: "false", G_IS_BROWSER: "true", - G_IS_STANDALONE: standalone ? "true" : "false", + G_IS_STANDALONE: JSON.stringify(standalone), + G_IS_STEAM_DEMO: JSON.stringify(steamDemo), G_BUILD_TIME: "" + new Date().getTime(), G_BUILD_COMMIT_HASH: JSON.stringify(getRevision()), G_BUILD_VERSION: JSON.stringify(getVersion()), diff --git a/gulp/webpack.production.config.js b/gulp/webpack.production.config.js index f56ae609..fa483aba 100644 --- a/gulp/webpack.production.config.js +++ b/gulp/webpack.production.config.js @@ -3,24 +3,24 @@ const path = require("path"); const webpack = require("webpack"); const { getRevision, getVersion, getAllResourceImages } = require("./buildutils"); -const lzString = require("lz-string"); const TerserPlugin = require("terser-webpack-plugin"); const StringReplacePlugin = require("string-replace-webpack-plugin"); const UnusedFilesPlugin = require("unused-files-webpack-plugin").UnusedFilesWebpackPlugin; module.exports = ({ - enableAssert = false, environment, es6 = false, + standalone = false, isBrowser = true, - mobileApp = false, + chineseVersion = false, wegameVersion = false, + steamDemo = false, }) => { const globalDefs = { - assert: enableAssert ? "window.assert" : "false && window.assert", + assert: "false && window.assert", assertAlways: "window.assert", abstract: "window.assert(false, 'abstract method called');", G_IS_DEV: "false", @@ -29,13 +29,10 @@ module.exports = ({ G_WEGAME_VERSION: JSON.stringify(wegameVersion), G_IS_RELEASE: environment === "prod" ? "true" : "false", G_IS_STANDALONE: standalone ? "true" : "false", + G_IS_STEAM_DEMO: JSON.stringify(steamDemo), G_IS_BROWSER: isBrowser ? "true" : "false", - G_IS_MOBILE_APP: mobileApp ? "true" : "false", - G_TRACKING_ENDPOINT: JSON.stringify( - lzString.compressToEncodedURIComponent("https://tracking.shapez.io/v1") - ), G_APP_ENVIRONMENT: JSON.stringify(environment), - G_HAVE_ASSERT: enableAssert ? "true" : "false", + G_HAVE_ASSERT: "false", G_BUILD_TIME: "" + new Date().getTime(), G_BUILD_COMMIT_HASH: JSON.stringify(getRevision()), G_BUILD_VERSION: JSON.stringify(getVersion()), diff --git a/res/ui/memes/cat1.png b/res/ui/memes/cat1.png index 114c3fa04897497c18458ba5fbc51e8fc5aed694..7ec9705196834bbc7146e7b97ae28fa645acf5f6 100644 GIT binary patch literal 214484 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