diff --git a/src/css/states/main_menu.scss b/src/css/states/main_menu.scss index e5d8bbef..8b97677a 100644 --- a/src/css/states/main_menu.scss +++ b/src/css/states/main_menu.scss @@ -207,6 +207,10 @@ @include S(margin-top, 15px); } + .modsButton { + @include S(margin-top, 15px); + } + .savegames { @include S(max-height, 105px); overflow-y: auto; diff --git a/src/js/core/query_parameters.js b/src/js/core/query_parameters.js index b3dab1b3..1aef7781 100644 --- a/src/js/core/query_parameters.js +++ b/src/js/core/query_parameters.js @@ -3,6 +3,7 @@ const options = queryString.parse(location.search); export let queryParamOptions = { embedProvider: null, + modDeveloper: true, }; if (options.embed) { diff --git a/src/js/game/hud/parts/settings_menu.js b/src/js/game/hud/parts/settings_menu.js index c70d6afc..fab91816 100644 --- a/src/js/game/hud/parts/settings_menu.js +++ b/src/js/game/hud/parts/settings_menu.js @@ -38,6 +38,10 @@ export class HUDSettingsMenu extends BaseHUDPart { title: T.ingame.settingsMenu.buttons.settings, action: () => this.goToSettings(), }, + { + title: T.ingame.settingsMenu.buttons.mods, + action: () => this.goToMods(), + }, { title: T.ingame.settingsMenu.buttons.menu, action: () => this.returnToMenu(), @@ -73,6 +77,10 @@ export class HUDSettingsMenu extends BaseHUDPart { this.root.gameState.goToSettings(); } + goToMods() { + this.root.gameState.goToMods(); + } + shouldPauseGame() { return this.visible; } diff --git a/src/js/states/ingame.js b/src/js/states/ingame.js index a5901a3d..7761c5c0 100644 --- a/src/js/states/ingame.js +++ b/src/js/states/ingame.js @@ -154,6 +154,13 @@ export class InGameState extends GameState { }); } + /** + * Goes back to the mods state + */ + goToMods() { + this.saveThenGoToState("ModsState"); + } + /** * Goes back to the settings state */ diff --git a/src/js/states/main_menu.js b/src/js/states/main_menu.js index 28b0d45c..70f6ea60 100644 --- a/src/js/states/main_menu.js +++ b/src/js/states/main_menu.js @@ -74,6 +74,7 @@ export class MainMenuState extends GameState { } + @@ -196,6 +197,7 @@ export class MainMenuState extends GameState { const qs = this.htmlElement.querySelector.bind(this.htmlElement); this.trackClicks(qs(".mainContainer .playButton"), this.onPlayButtonClicked); this.trackClicks(qs(".mainContainer .importButton"), this.requestImportSavegame); + this.trackClicks(qs(".mainContainer .modsButton"), this.onModsButtonClicked); if (G_IS_DEV && globalConfig.debug.fastGameEnter) { const games = this.app.savegameMgr.getSavegamesMetaData(); @@ -375,6 +377,10 @@ export class MainMenuState extends GameState { this.moveToState("SettingsState"); } + onModsButtonClicked() { + this.moveToState("ModsState"); + } + doStartNewGame() { this.app.analytics.trackUiClick("startgame"); diff --git a/translations/base-en.yaml b/translations/base-en.yaml index ad84afcc..7361d7de 100644 --- a/translations/base-en.yaml +++ b/translations/base-en.yaml @@ -114,6 +114,7 @@ mainMenu: play: Play changelog: Changelog importSavegame: Import + mods: Mods openSourceHint: This game is open source! discordLink: Official Discord Server @@ -337,6 +338,7 @@ ingame: buttons: continue: Continue settings: Settings + mods: Mods menu: Return to menu # Bottom left tutorial hints