diff --git a/README.md b/README.md index 2ff5a560..ff77c6c6 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,7 @@ ___Contents___ - [Detail Window](#detail-window) - [Move and Copy](#move-and-copy) - [Delete](#delete) + - [Copy Favorites](#copy-favorites) - [Savegame Compare](#savegame-compare) - [Badges Used](#badges-used) - [Version Check](#version-check) @@ -108,6 +109,7 @@ __PLEASE READ: Note about the Mod Cache:__ Mods are scanned and cached from disk - __Check Versions__ : Compare mod versions across different collections and resolve differences if desired. - __Launch FS22__ : Start the game. If your game is not in the default e-shop or steam location, you will need to set the game path in the preferences screen first. +- __Discord Join Button__ : Join the [Farm Sim Game Discord](http://fsg.gg) for a great farming & modding community, and help on this app if you need it. #### Collections Area @@ -146,6 +148,8 @@ The active list is marked with a green check over the folder. - __Collection Checkbox__ : You can use this checkbox to quick select all or none of the mods in the list. Additionally, shift-select for a range of mods is available. - __Compare to SaveGame__ : This will prompt you for a savegame (folder or zip file) and will compare what mods the save game expects to the mods in the collection. +- __Server Button__ : Open the server admin link in your default web browser +- __Download Button__ : Refresh all active mods from the server (if server download is configured and enabled) - __Export Button__ : This allows you to export the collection as a CSV file containing the mod name, version, author, and if applicable, a link to the modhub page - __Details Edit__ : This button brings up the collection details that will allow you to keep notes on the collection, and set your user name, password, and server name filter for multiplayer use. - __Move To...__ : This will prompt you which collection you wish to move the selected files into. This button is only available when a one or more files are selected. @@ -153,20 +157,21 @@ The active list is marked with a green check over the folder. - __Delete__ : This will prompt you to make sure you wish to delete the selected files. This button is only available when a one or more files are selected. - __Show in Explorer__ : Open a windows explorer window with the selected file pre-selected. This button is only available when a single file is selected. - __Find on ModHub__ : Attempt to open this mod on the modhub. This button is only available when a single file is selected, and Mod Assistant knows it is on the modhub. The list of mods is updated roughly hourly, and is refreshed when you restart the app. +- __Copy Favorites To...__ : Copy the contents of your favorite folder(s) to one or more other collections. ##### Search Feature ![collections search](screen_shots/005-collect_search.png) -This allows you to refine which parts of the collection you see. This is a simple full text search, however preceding the search string with `!` will show mods that do _not_ match the string. In this example, `FS22_25DU_Trailers` is still shown, even though it does not match the string, because it was selected prior to searching. This is a safety measure so you do not accidentally move, copy, or delete files you were not intending to. +This allows you to refine which parts of the collection you see. This is a simple full text search, however preceding the search string with `!` will show mods that do _not_ match the string. In this example, `FS22_25DU_Trailers` and `FS22_36ftLowLoader` is still shown, even though it does not match the string, because it was selected prior to searching. This is a safety measure so you do not accidentally move, copy, or delete files you were not intending to. ###### Search Buttons - __Show Non-Mods__ : hides files that Mod Assistant thinks are not mods - __Show Broken__ : hides mods that Mod Assistant believes are broken -- __Select None__ : Clear selection on this collection -- __Select All__ : Select all on this collection -- __Select Invert__ : Invert selection on this collection +- __Select None__ : Clear selection on this collection `SHIFT+CTRL+A` +- __Select All__ : Select all on this collection `CTRL+A` +- __Select Invert__ : Invert selection on this collection `CTRL+I` ### Folder Details Window @@ -174,10 +179,12 @@ This allows you to refine which parts of the collection you see. This is a simp This screen allows you to keep notes on a collection, and set some of the multiplayer server details to speed things up. +- __Favorite Collection__ : Mark this collection as a set of "favorite" mods for quick copying to other collections. - __Player Name__ : This is the name that is displayed in-game - __Server Name__ : This value is pre-filled in the server list screen to filter - __Server Password__ : This value is pre-filled in the password box when attempting to join a server that requires a password -- __Server Website__ : This is a place to keep the administration address for a multiplayer server. +- __Server Website__ : This is a place to keep the administration address for a multiplayer server. This should be in the format http(s)://server.url:port/ - do not include the "index.html" at the end. +- __Allow Direct Download__ : If this server has direct mod download enabled, check this box to let mod assistant download and replace all mods on demand. - __Admin Password__ : This is a place to note the admin password for the server. - __Notes__ : This is a freeform notes input @@ -187,7 +194,7 @@ Keep in mind that all of these details are stored in ___plain text___ both in mo ![detail top](screen_shots/013-detail_top.png) -Double clicking or right clicking on a mod in the main window will bring up the detail window where you can see details about the mod such as the file date, file size, if it uses scripts, how many store items it has, and the mod description. +Double clicking or right clicking on a mod in the main window will bring up the detail window where you can see details about the mod such as the file date, file size, if it uses scripts, how many store items it has, and the mod description. If the mod is on the modhub, the most recent modhub version will appear, along with a link to open the modhub page in your default browser. If problems or issues were found with the mod, you will also be presenting with detailed information on the issue, often with suggestions of how to fix them @@ -207,6 +214,14 @@ In the move and copy dialog you will see a list of the selected mods, along with In the delete dialog you will see a list of the selected mods. This is a permanent action, it directly deletes these files, bypassing the recycling bin. To proceed, press the button at the bottom, to cancel simply close the popup window or press `[ESC]` +### Copy Favorites + +![copy fav](screen_shots/016-copyfavs.png) + +This dialog is used to copy the contents of your favorite collection(s) to multiple non-favorite collections. Check the collections you with to copy to. This function will automatically overwrite files at the destination. + +The lower part of the screen shows what mods were found in the favorite collection(s). + ### Savegame Compare ![savegame](screen_shots/008-savegame.png) @@ -242,7 +257,7 @@ Check the box next to old versions of mods and press the `Yes, Copy Mod(s)` butt ![folders](screen_shots/011-folders.png) -This display will let you change which collections are loaded, and open them in windows explorer if you wish. In this example, I have "forgotten" the `test_mods` collection, which will update when I close the folder edit window. +This display will let you change which collections are loaded, and open them in windows explorer if you wish. Use the arrow buttons to move a collection up, down, to the top, or bottom. ### User Preferences diff --git a/README.pdf b/README.pdf index 24477edc..0ada7f2a 100644 Binary files a/README.pdf and b/README.pdf differ diff --git a/modAssist_main.js b/modAssist_main.js index 613e2818..a66c83d9 100644 --- a/modAssist_main.js +++ b/modAssist_main.js @@ -16,7 +16,6 @@ if ( !gotTheLock ) { app.quit() } const { autoUpdater } = require('electron-updater') const { ma_logger } = require('./lib/ma-logger.js') -const mcDetail = require('./package.json') const semverGt = require('semver/functions/gt') const log = new ma_logger('modAssist', app, 'assist.log', gotTheLock) const path = require('path') @@ -27,7 +26,7 @@ const skipCache = false && !(app.isPackaged) const crashLog = path.join(app.getPath('userData'), 'crash.log') let updaterInterval = null -log.log.info(`ModAssist Logger: ${mcDetail.version}`) +log.log.info(`ModAssist Logger: ${app.getVersion()}`) process.on('uncaughtException', (err, origin) => { fs.appendFileSync( @@ -56,7 +55,7 @@ process.on('unhandledRejection', (err, origin) => { const translator = require('./lib/translate.js') const myTranslator = new translator.translator(translator.getSystemLocale()) -myTranslator.mcVersion = mcDetail.version +myTranslator.mcVersion = app.getVersion() if ( process.platform === 'win32' && app.isPackaged && gotTheLock && !isPortable ) { autoUpdater.on('update-checking-for-update', () => { log.log.info('Checking for update', 'auto-update') }) @@ -227,7 +226,7 @@ if ( semverGt('1.0.2', mcStore.get('cache_version'))) { log.log.info('Mod Cache Version Good') } -mcStore.set('cache_version', mcDetail.version) +mcStore.set('cache_version', app.getVersion()) /** END: Upgrade Cache Version Here */ @@ -317,7 +316,7 @@ function createMainWindow () { if ( !devDebug ) { windows.splash = createSubWindow({ center : true, fixed : true, move : false, frame : false, width : 600, height : 300 }) - windows.splash.loadURL(`file://${path.join(pathRender, 'splash.html')}?version=${mcDetail.version}`) + windows.splash.loadURL(`file://${path.join(pathRender, 'splash.html')}?version=${app.getVersion()}`) windows.splash.on('closed', () => { windows.splash = null }) @@ -755,7 +754,7 @@ ipcMain.on('toMain_langList_send', (event) => { ipcMain.on('toMain_getText_send', (event, l10nSet) => { l10nSet.forEach((l10nEntry) => { if ( l10nEntry === 'app_version' ) { - event.sender.send('fromMain_getText_return', [l10nEntry, mcDetail.version]) + event.sender.send('fromMain_getText_return', [l10nEntry, app.getVersion()]) } else if ( l10nEntry === 'clean_cache_size' ) { const cleanString = myTranslator.syncStringLookup(l10nEntry) let cacheSize = 0 @@ -1473,8 +1472,8 @@ function processModFolders_post(newFolder = false) { refreshClientModList() loadingWindow_hide() - if ( mcStore.get('rel_notes') !== mcDetail.version ) { - mcStore.set('rel_notes', mcDetail.version ) + if ( mcStore.get('rel_notes') !== app.getVersion() ) { + mcStore.set('rel_notes', app.getVersion() ) log.log.info('New version detected, show changelog') createChangeLogWindow() } @@ -1566,7 +1565,7 @@ app.whenReady().then(() => { app.setAboutPanelOptions({ applicationName : 'FS Mod Assist', - applicationVersion : mcDetail.version, + applicationVersion : app.getVersion(), copyright : '(c) 2022-present FSG Modding', credits : 'J.T.Sage ', website : 'https://github.com/FSGModding/FSG_Mod_Assistant', diff --git a/package.json b/package.json index dcdc4767..92fe184a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "fsg-mod-assistant", - "version": "1.1.1", + "version": "1.2.0", "description": "FSG Farm Sim Mod Assistant", "main": "modAssist_main.js", "homepage": "https://github.com/FSGModding/FSG_Mod_Assistant#readme", diff --git a/renderer/main.html b/renderer/main.html index b43c4f3f..e8bf711a 100644 --- a/renderer/main.html +++ b/renderer/main.html @@ -97,7 +97,7 @@

-
+
@@ -109,7 +109,7 @@

- +

diff --git a/renderer/renderJS/assist_ui.js b/renderer/renderJS/assist_ui.js index a5e800ab..76916547 100644 --- a/renderer/renderJS/assist_ui.js +++ b/renderer/renderJS/assist_ui.js @@ -137,7 +137,7 @@ window.mods.receive('fromMain_modList', (currLocale, modList, extraL10n, current modTable.push(makeModCollection( collection, - `${modList[collection].name} (${modList[collection].mods.length}) [${fsgUtil.bytesToHR(sizeOfFolder, currLocale)}]`, + `${modList[collection].name} [${modList[collection].mods.length}] [${fsgUtil.bytesToHR(sizeOfFolder, currLocale)}]`, modRows, collWebsite, collDL diff --git a/renderer/renderJS/confirm_multi_ui.js b/renderer/renderJS/confirm_multi_ui.js index 0c100c90..052f02e4 100644 --- a/renderer/renderJS/confirm_multi_ui.js +++ b/renderer/renderJS/confirm_multi_ui.js @@ -56,7 +56,7 @@ const makeRow = (row) => `${row[2]}${row[3]}` const makeCheck = (id, name, dir) => `
- +
` diff --git a/screen_shots/001-main_program.png b/screen_shots/001-main_program.png index 92287c9f..40ca9459 100644 Binary files a/screen_shots/001-main_program.png and b/screen_shots/001-main_program.png differ diff --git a/screen_shots/001-main_program.psd b/screen_shots/001-main_program.psd index e4c3f601..94944a5a 100644 Binary files a/screen_shots/001-main_program.psd and b/screen_shots/001-main_program.psd differ diff --git a/screen_shots/002-main_program_collect.png b/screen_shots/002-main_program_collect.png index 191d6799..78399817 100644 Binary files a/screen_shots/002-main_program_collect.png and b/screen_shots/002-main_program_collect.png differ diff --git a/screen_shots/003-collect_detail.png b/screen_shots/003-collect_detail.png index fcb3e8bd..610f4ab1 100644 Binary files a/screen_shots/003-collect_detail.png and b/screen_shots/003-collect_detail.png differ diff --git a/screen_shots/005-collect_search.png b/screen_shots/005-collect_search.png index dce27fee..97f7af72 100644 Binary files a/screen_shots/005-collect_search.png and b/screen_shots/005-collect_search.png differ diff --git a/screen_shots/008-savegame.png b/screen_shots/008-savegame.png index bab47f3e..5ffe098c 100644 Binary files a/screen_shots/008-savegame.png and b/screen_shots/008-savegame.png differ diff --git a/screen_shots/009-version_overview.png b/screen_shots/009-version_overview.png index 0f17dcb5..d29d62b7 100644 Binary files a/screen_shots/009-version_overview.png and b/screen_shots/009-version_overview.png differ diff --git a/screen_shots/010-version_resolve.png b/screen_shots/010-version_resolve.png index 5e6bdadd..89cbecb8 100644 Binary files a/screen_shots/010-version_resolve.png and b/screen_shots/010-version_resolve.png differ diff --git a/screen_shots/011-folders.png b/screen_shots/011-folders.png index d17f264d..e8474c0a 100644 Binary files a/screen_shots/011-folders.png and b/screen_shots/011-folders.png differ diff --git a/screen_shots/013-detail_top.png b/screen_shots/013-detail_top.png index 4059d128..9eac38fa 100644 Binary files a/screen_shots/013-detail_top.png and b/screen_shots/013-detail_top.png differ diff --git a/screen_shots/015-notes.png b/screen_shots/015-notes.png index 294720de..3db95de0 100644 Binary files a/screen_shots/015-notes.png and b/screen_shots/015-notes.png differ diff --git a/screen_shots/016-copyfavs.png b/screen_shots/016-copyfavs.png new file mode 100644 index 00000000..0217c486 Binary files /dev/null and b/screen_shots/016-copyfavs.png differ