From 51c03520794850c24e9fda4f3cb8084516ea422e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=B0=D0=BD=D0=B8=D1=97=D0=BB=20=D0=93=D1=80=D0=B8?= =?UTF-8?q?=D0=B3=D0=BE=D1=80=27=D1=94=D0=B2?= Date: Thu, 19 Jun 2025 20:21:06 +0300 Subject: [PATCH] Remove unused config properties Remove globalConfig properties that are not used anywhere, simplify mobile device detection (mostly unused for normal builds) and merge or inline config constants where it makes sense. --- src/js/core/background_resources_loader.js | 33 +++------------------ src/js/core/config.ts | 34 ++-------------------- src/js/core/read_write_proxy.js | 3 +- src/js/main.js | 3 +- 4 files changed, 9 insertions(+), 64 deletions(-) diff --git a/src/js/core/background_resources_loader.js b/src/js/core/background_resources_loader.js index 151fc276..d0489503 100644 --- a/src/js/core/background_resources_loader.js +++ b/src/js/core/background_resources_loader.js @@ -35,12 +35,6 @@ INGAME_ASSETS.sounds = []; const LOADER_TIMEOUT_PER_RESOURCE = 180000; -// Cloudflare does not send content-length headers with brotli compression, -// so store the actual (compressed) file sizes so we can show a progress bar. -const HARDCODED_FILE_SIZES = { - "async-resources.css": 2216145, -}; - export class BackgroundResourcesLoader { /** * @@ -86,7 +80,7 @@ export class BackgroundResourcesLoader { /** * @type {((progressHandler: (progress: number) => void) => Promise)[]} */ - let promiseFunctions = []; + const promiseFunctions = []; // CSS for (let i = 0; i < css.length; ++i) { @@ -127,7 +121,7 @@ export class BackgroundResourcesLoader { // SFX & Music for (let i = 0; i < sounds.length; ++i) { - promiseFunctions.push(progress => + promiseFunctions.push(() => timeoutPromise(this.app.sound.loadSound(sounds[i]), LOADER_TIMEOUT_PER_RESOURCE).catch( err => { logger.warn("Failed to load sound, will not be available:", sounds[i], err); @@ -143,7 +137,7 @@ export class BackgroundResourcesLoader { let progress = 0; this.resourceStateChangedSignal.dispatch({ progress }); - let promises = []; + const promises = []; for (let i = 0; i < promiseFunctions.length; i++) { let lastIndividualProgress = 0; @@ -180,27 +174,12 @@ export class BackgroundResourcesLoader { preloadWithProgress(src, progressHandler) { return new Promise((resolve, reject) => { const xhr = new XMLHttpRequest(); - let notifiedNotComputable = false; xhr.open("GET", src, true); xhr.responseType = "arraybuffer"; xhr.onprogress = function (ev) { if (ev.lengthComputable) { progressHandler(ev.loaded / ev.total); - } else { - if (window.location.search.includes("alwaysLogFileSize")) { - console.warn("Progress:", src, ev.loaded); - } - - if (HARDCODED_FILE_SIZES[src]) { - progressHandler(clamp(ev.loaded / HARDCODED_FILE_SIZES[src])); - } else { - if (!notifiedNotComputable) { - notifiedNotComputable = true; - console.warn("Progress not computable:", src, ev.loaded); - progressHandler(0); - } - } } }; @@ -208,10 +187,6 @@ export class BackgroundResourcesLoader { if (!xhr.status.toString().match(/^2/)) { reject(src + ": " + xhr.status + " " + xhr.statusText); } else { - if (!notifiedNotComputable) { - progressHandler(1); - } - const options = {}; const headers = xhr.getAllResponseHeaders(); const contentType = headers.match(/^Content-Type:\s*(.*?)$/im); @@ -228,7 +203,7 @@ export class BackgroundResourcesLoader { internalPreloadCss(src, progressHandler) { return this.preloadWithProgress(src, progressHandler).then(blobSrc => { - var styleElement = document.createElement("link"); + const styleElement = document.createElement("link"); styleElement.href = blobSrc; styleElement.rel = "stylesheet"; styleElement.setAttribute("media", "all"); diff --git a/src/js/core/config.ts b/src/js/core/config.ts index e1a3b23f..bb1acb51 100644 --- a/src/js/core/config.ts +++ b/src/js/core/config.ts @@ -1,16 +1,5 @@ import debug from "./config.local"; -export const IS_DEBUG = - G_IS_DEV && - typeof window !== "undefined" && - window.location.port === "3005" && - (window.location.host.indexOf("localhost:") >= 0 || window.location.host.indexOf("192.168.0.") >= 0) && - window.location.search.indexOf("nodebug") < 0; - -export const SUPPORT_TOUCH = false; - -const smoothCanvas = true; - export const THIRDPARTY_URLS = { discord: "https://discord.gg/HN7EVzV", github: "https://github.com/tobspr-games/shapez.io", @@ -25,13 +14,10 @@ export const THIRDPARTY_URLS = { 25: "https://www.youtube.com/watch?v=7OCV1g40Iew&", 26: "https://www.youtube.com/watch?v=gfm6dS1dCoY", }, - - modBrowser: "https://shapez.mod.io/", }; export const globalConfig = { // Size of a single tile in Pixels. - // NOTICE: Update webpack.production.config too! tileSize: 32, halfTileSize: 16, @@ -45,9 +31,6 @@ export const globalConfig = { statisticsGraphSlices: 100, analyticsSliceDurationSeconds: G_IS_DEV ? 1 : 10, - minimumTickRate: 25, - maximumTickRate: 500, - // Map mapChunkSize: 16, chunkAggregateSize: 4, @@ -57,7 +40,6 @@ export const globalConfig = { maxBeltShapeBundleSize: 20, // Belt speeds - // NOTICE: Update webpack.production.config too! beltSpeedItemsPerSecond: 2, minerSpeedItemsPerSecond: 0, // COMPUTED @@ -65,8 +47,6 @@ export const globalConfig = { itemSpacingOnBelts: 0.63, - wiresSpeedItemsPerSecond: 6, - undergroundBeltMaxTilesByTier: [5, 9], readerAnalyzeIntervalSeconds: 10, @@ -91,27 +71,19 @@ export const globalConfig = { stacker: 1 / 8, }, - // Zooming - initialZoom: 1.9, - minZoomLevel: 0.1, - maxZoomLevel: 3, - - // Global game speed - gameSpeed: 1, - warmupTimeSecondsFast: 0.25, warmupTimeSecondsRegular: 0.25, smoothing: { - smoothMainCanvas: smoothCanvas && true, + smoothMainCanvas: true, quality: "low" as ImageSmoothingQuality, // Low is CRUCIAL for mobile performance! }, - rendering: {}, debug, }; -export const IS_MOBILE = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent); +export const IS_MOBILE = navigator.userAgentData.mobile; +export const SUPPORT_TOUCH = IS_MOBILE; // Automatic calculations globalConfig.minerSpeedItemsPerSecond = globalConfig.beltSpeedItemsPerSecond / 5; diff --git a/src/js/core/read_write_proxy.js b/src/js/core/read_write_proxy.js index 9bf3fe97..0ce9f987 100644 --- a/src/js/core/read_write_proxy.js +++ b/src/js/core/read_write_proxy.js @@ -3,7 +3,6 @@ import { Storage } from "@/platform/storage"; /* typehints:end */ import { FsError } from "@/platform/fs_error"; -import { IS_DEBUG } from "./config"; import { ExplainedResult } from "./explained_result"; import { createLogger } from "./logging"; @@ -23,7 +22,7 @@ export class ReadWriteProxy { this.currentData = null; // TODO: EXTREMELY HACKY! To verify we need to do this a step later - if (G_IS_DEV && IS_DEBUG) { + if (G_IS_DEV) { setTimeout(() => { assert( this.verify(this.getDefaultData()).result, diff --git a/src/js/main.js b/src/js/main.js index 9ba474cf..f1abe0d3 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -4,7 +4,6 @@ import "./core/polyfills"; import "./mods/modloader"; import { Application } from "./application"; -import { IS_DEBUG } from "./core/config"; import { createLogger, logSection } from "./core/logging"; import { initComponentRegistry } from "./game/component_registry"; import { initGameModeRegistry } from "./game/game_mode_registry"; @@ -27,7 +26,7 @@ console.log( console.log("Environment: %c" + G_APP_ENVIRONMENT, "color: #fff"); -if (G_IS_DEV && IS_DEBUG) { +if (G_IS_DEV) { console.log("\n%c🛑 DEBUG ENVIRONMENT 🛑\n", "color: #f77"); }