diff --git a/src/js/application.js b/src/js/application.js index 27be4b1c..d337f94a 100644 --- a/src/js/application.js +++ b/src/js/application.js @@ -1,43 +1,41 @@ import { AnimationFrame } from "./core/animation_frame"; -import { performanceNow, Math_min } from "./core/builtins"; +import { BackgroundResourcesLoader } from "./core/background_resources_loader"; +import { performanceNow } from "./core/builtins"; +import { IS_MOBILE } from "./core/config"; import { GameState } from "./core/game_state"; import { GLOBAL_APP, setGlobalApp } from "./core/globals"; import { InputDistributor } from "./core/input_distributor"; +import { Loader } from "./core/loader"; +import { createLogger, logSection } from "./core/logging"; import { StateManager } from "./core/state_manager"; +import { TrackedState } from "./core/tracked_state"; import { getPlatformName, waitNextFrame } from "./core/utils"; -import { SavegameManager } from "./savegame/savegame_manager"; +import { Vector } from "./core/vector"; import { AdProviderInterface } from "./platform/ad_provider"; import { NoAdProvider } from "./platform/ad_providers/no_ad_provider"; +import { AnalyticsInterface } from "./platform/analytics"; +import { ShapezGameAnalytics } from "./platform/browser/game_analytics"; +import { GoogleAnalyticsImpl } from "./platform/browser/google_analytics"; import { SoundImplBrowser } from "./platform/browser/sound"; import { StorageImplBrowser } from "./platform/browser/storage"; +import { StorageImplBrowserIndexedDB } from "./platform/browser/storage_indexed_db"; import { PlatformWrapperImplBrowser } from "./platform/browser/wrapper"; +import { StorageImplElectron } from "./platform/electron/storage"; +import { PlatformWrapperImplElectron } from "./platform/electron/wrapper"; +import { GameAnalyticsInterface } from "./platform/game_analytics"; import { SoundInterface } from "./platform/sound"; import { StorageInterface } from "./platform/storage"; import { PlatformWrapperInterface } from "./platform/wrapper"; import { ApplicationSettings } from "./profile/application_settings"; -import { Vector } from "./core/vector"; -import { createLogger, logSection } from "./core/logging"; -import { TrackedState } from "./core/tracked_state"; -import { IS_MOBILE } from "./core/config"; -import { BackgroundResourcesLoader } from "./core/background_resources_loader"; -import { PreloadState } from "./states/preload"; -import { MainMenuState } from "./states/main_menu"; +import { SavegameManager } from "./savegame/savegame_manager"; +import { AboutState } from "./states/about"; +import { ChangelogState } from "./states/changelog"; import { InGameState } from "./states/ingame"; -import { AnalyticsInterface } from "./platform/analytics"; -import { GoogleAnalyticsImpl } from "./platform/browser/google_analytics"; -import { Loader } from "./core/loader"; -import { GameAnalyticsInterface } from "./platform/game_analytics"; -import { ShapezGameAnalytics } from "./platform/browser/game_analytics"; -import { queryParamOptions } from "./core/query_parameters"; -import { NoGameAnalytics } from "./platform/browser/no_game_analytics"; -import { StorageImplBrowserIndexedDB } from "./platform/browser/storage_indexed_db"; -import { SettingsState } from "./states/settings"; import { KeybindingsState } from "./states/keybindings"; -import { AboutState } from "./states/about"; -import { PlatformWrapperImplElectron } from "./platform/electron/wrapper"; -import { StorageImplElectron } from "./platform/electron/storage"; +import { MainMenuState } from "./states/main_menu"; import { MobileWarningState } from "./states/mobile_warning"; -import { ChangelogState } from "./states/changelog"; +import { PreloadState } from "./states/preload"; +import { SettingsState } from "./states/settings"; const logger = createLogger("application"); diff --git a/src/js/changelog.js b/src/js/changelog.js index e915e831..9eced091 100644 --- a/src/js/changelog.js +++ b/src/js/changelog.js @@ -3,12 +3,13 @@ export const CHANGELOG = [ version: "1.1.0", date: "unreleased", entries: [ - "Allow changing all keybindings, including CTRL, ALT and SHIFT", "Allow holding SHIFT to rotate counter clockwise", + "Allow changing all keybindings, including CTRL, ALT and SHIFT (by Dimava)", "Added confirmation when deleting more than 500 buildings at a time", "Added background to toolbar to increase contrast", "Allow placing extractors anywhere again, but they don't work at all if not placed on a resource", - "Fix cycling through keybindings selecting locked buildings as well", + "Fix cycling through keybindings selecting locked buildings as well (by Dimava)", + "There is now a github action, checking all pull requests with eslint. (by mrHedgehog)", ], }, { diff --git a/src/js/core/read_write_proxy.js b/src/js/core/read_write_proxy.js index 4a10f140..ee568dc6 100644 --- a/src/js/core/read_write_proxy.js +++ b/src/js/core/read_write_proxy.js @@ -131,21 +131,21 @@ export class ReadWriteProxy { } const jsonString = JSON_stringify(compressObject(this.currentData)); - if (!this.app.pageVisible || this.app.unloaded) { - logger.log("Saving file sync because in unload handler"); - const checksum = sha1(jsonString + salt); - let compressed = compressionPrefix + compressX64(checksum + jsonString); - if (G_IS_DEV && IS_DEBUG) { - compressed = jsonString; - } - - if (!this.app.storage.writeFileSyncIfSupported(this.filename, compressed)) { - return Promise.reject("Failed to write " + this.filename + " sync!"); - } else { - logger.log("📄 Wrote (sync!)", this.filename); - return Promise.resolve(compressed); - } - } + // if (!this.app.pageVisible || this.app.unloaded) { + // logger.log("Saving file sync because in unload handler"); + // const checksum = sha1(jsonString + salt); + // let compressed = compressionPrefix + compressX64(checksum + jsonString); + // if (G_IS_DEV && IS_DEBUG) { + // compressed = jsonString; + // } + + // if (!this.app.storage.writeFileSyncIfSupported(this.filename, compressed)) { + // return Promise.reject("Failed to write " + this.filename + " sync!"); + // } else { + // logger.log("📄 Wrote (sync!)", this.filename); + // return Promise.resolve(compressed); + // } + // } return asyncCompressor .compressFileAsync(jsonString) diff --git a/src/js/game/camera.js b/src/js/game/camera.js index 7fb25b32..f0efaba1 100644 --- a/src/js/game/camera.js +++ b/src/js/game/camera.js @@ -10,14 +10,13 @@ import { import { clickDetectorGlobals } from "../core/click_detector"; import { globalConfig } from "../core/config"; import { createLogger } from "../core/logging"; -import { queryParamOptions } from "../core/query_parameters"; import { Rectangle } from "../core/rectangle"; import { Signal, STOP_PROPAGATION } from "../core/signal"; import { clamp } from "../core/utils"; import { mixVector, Vector } from "../core/vector"; import { BasicSerializableObject, types } from "../savegame/serialization"; -import { GameRoot } from "./root"; import { KEYMAPPINGS } from "./key_action_mapper"; +import { GameRoot } from "./root"; const logger = createLogger("camera"); diff --git a/src/js/states/ingame.js b/src/js/states/ingame.js index 6307a22c..e6ed0791 100644 --- a/src/js/states/ingame.js +++ b/src/js/states/ingame.js @@ -95,18 +95,18 @@ export class InGameState extends GameState { } onBeforeExit() { - logger.log("Saving before quitting"); - return this.doSave().then(() => { - logger.log(this, "Successfully saved"); - // this.stageDestroyed(); - }); + // logger.log("Saving before quitting"); + // return this.doSave().then(() => { + // logger.log(this, "Successfully saved"); + // // this.stageDestroyed(); + // }); } onAppPause() { - if (this.stage === stages.s10_gameRunning) { - logger.log("Saving because app got paused"); - this.doSave(); - } + // if (this.stage === stages.s10_gameRunning) { + // logger.log("Saving because app got paused"); + // this.doSave(); + // } } getHasFadeIn() { diff --git a/translations/base-en.yaml b/translations/base-en.yaml index c12e81e9..dfc73801 100644 --- a/translations/base-en.yaml +++ b/translations/base-en.yaml @@ -522,7 +522,7 @@ keybindings: general: Application ingame: Game placement: Placement - massSelect: Mass Delete + massSelect: Mass Select buildings: Building Shortcuts placementModifiers: Placement Modifiers @@ -565,6 +565,7 @@ keybindings: massSelectStart: Hold and drag to start massSelectSelectMultiple: Select multiple areas + massSelectCopy: Copy area placementDisableAutoOrientation: Disable automatic orientation placeMultiple: Stay in placement mode