From e54a5d05692f2f5ae852dbd3ed0a247920591418 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Mon, 3 Aug 2020 22:35:51 -0400 Subject: update Content Patcher schema for 1.16 --- docs/release-notes.md | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index c6123bac..c139ac1a 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -7,6 +7,10 @@ * Migrated to Harmony 2.0 (see [_migrate to Harmony 2.0_](https://stardewvalleywiki.com/Modding:Migrate_to_Harmony_2.0) for more info). --> +## Upcoming release +* For the web UI: + * Updated the JSON validator/schema for Content Patcher 1.16. + ## 3.6.2 Released 02 August 2020 for Stardew Valley 1.4.1 or later. -- cgit From c03430ec7eba11462664a043f14e2f2a122674a1 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sun, 9 Aug 2020 11:18:39 -0400 Subject: tweak release docs --- docs/technical/smapi.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'docs') diff --git a/docs/technical/smapi.md b/docs/technical/smapi.md index 3cb450ae..e2832710 100644 --- a/docs/technical/smapi.md +++ b/docs/technical/smapi.md @@ -87,25 +87,24 @@ on the wiki for the first-time setup. build type | format | example :--------- | :----------------------- | :------ dev build | `-alpha.` | `3.0.0-alpha.20171230` - prerelease | `-beta.` | `3.0.0-beta.2` + prerelease | `-beta.` | `3.0.0-beta.20171230` release | `` | `3.0.0` 2. In Windows: - 1. Rebuild the solution in Release mode. - 2. Copy `windows-install.*` from `bin/SMAPI installer` and `bin/SMAPI installer for developers` to - Linux/Mac. + 1. Rebuild the solution with the _release_ solution configuration. + 2. Copy `bin/SMAPI installer` and `bin/SMAPI installer for developers` to Linux/Mac. 3. In Linux/Mac: - 1. Rebuild the solution in Release mode. - 2. Add the `windows-install.*` files to the `bin/SMAPI installer` and - `bin/SMAPI installer for developers` folders. + 1. Rebuild the solution with the _release_ solution configuration. + 2. Add the `windows-install.*` files from Windows to the `bin/SMAPI installer` and + `bin/SMAPI installer for developers` folders compiled on Linux. 3. Rename the folders to `SMAPI installer` and `SMAPI installer for developers`. 4. Zip the two folders. ### Custom Harmony build SMAPI uses [a custom build of Harmony](https://github.com/Pathoschild/Harmony#readme), which is included in the `build` folder. To use a different build, just replace `0Harmony.dll` in that -folder. +folder before compiling. ## Release notes See [release notes](../release-notes.md). -- cgit From 066f1857a145c8b9e80a095d2dee1be6419f957b Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sun, 9 Aug 2020 11:56:40 -0400 Subject: fix error when mods add/remove events asynchronously --- docs/release-notes.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index c139ac1a..7f522ce0 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -8,6 +8,9 @@ --> ## Upcoming release +* For players: + * Fixed rare error when a mod adds/removes event handlers asynchronously. + * For the web UI: * Updated the JSON validator/schema for Content Patcher 1.16. @@ -16,7 +19,7 @@ Released 02 August 2020 for Stardew Valley 1.4.1 or later. * For players: * Improved compatibility with some Linux terminals (thanks to jlaw and Spatterjaaay!). - * Fixed rare crash when a mod adds/removes an event handler from an event handler. + * Fixed rare error when a mod adds/removes an event handler from an event handler. * Fixed string sorting/comparison for some special characters. * For the Console Commands mod: -- cgit From 48eb5e6be02feae26a6e374992cfeed9d60a5757 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sun, 9 Aug 2020 19:10:54 -0400 Subject: add support for read/writing SDate to JSON --- docs/release-notes.md | 3 +++ 1 file changed, 3 insertions(+) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index 7f522ce0..2e1e050e 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -11,6 +11,9 @@ * For players: * Fixed rare error when a mod adds/removes event handlers asynchronously. +* For modders: + * You can now read/write `SDate` values to JSON (e.g. for `config.json`, network mod messages, etc). + * For the web UI: * Updated the JSON validator/schema for Content Patcher 1.16. -- cgit From 544919ad1328c0f8b283941b1c2c5c8864a3a84d Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Thu, 13 Aug 2020 20:01:22 -0400 Subject: remove experimental RewriteInParallel option --- docs/release-notes.md | 1 + 1 file changed, 1 insertion(+) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index 2e1e050e..2ff4ec0a 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,6 +10,7 @@ ## Upcoming release * For players: * Fixed rare error when a mod adds/removes event handlers asynchronously. + * Removed the experimental `RewriteInParallel` option added in SMAPI 3.6 (it was already disabled by default). Unfortunately this caused intermittent unpredictable errors when enabled. * For modders: * You can now read/write `SDate` values to JSON (e.g. for `config.json`, network mod messages, etc). -- cgit From d6a830f7e84ea656f9967e83d82a568bfd4a2400 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sat, 15 Aug 2020 13:05:32 -0400 Subject: fix broken URL in update alerts for unofficial versions --- docs/release-notes.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index 2ff4ec0a..73b66a12 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -9,8 +9,9 @@ ## Upcoming release * For players: - * Fixed rare error when a mod adds/removes event handlers asynchronously. * Removed the experimental `RewriteInParallel` option added in SMAPI 3.6 (it was already disabled by default). Unfortunately this caused intermittent unpredictable errors when enabled. + * Fixed broken URL in update alerts for unofficial versions. + * Fixed rare error when a mod adds/removes event handlers asynchronously. * For modders: * You can now read/write `SDate` values to JSON (e.g. for `config.json`, network mod messages, etc). -- cgit From 497192fab2a4310f345bbd473fa42649bb264c57 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sat, 15 Aug 2020 13:17:42 -0400 Subject: tweak update alert rules --- docs/release-notes.md | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index 73b66a12..5735e388 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,6 +10,7 @@ ## Upcoming release * For players: * Removed the experimental `RewriteInParallel` option added in SMAPI 3.6 (it was already disabled by default). Unfortunately this caused intermittent unpredictable errors when enabled. + * Tweaked the rules for showing update alerts (see _for SMAPI developers_ below for details). * Fixed broken URL in update alerts for unofficial versions. * Fixed rare error when a mod adds/removes event handlers asynchronously. @@ -19,6 +20,9 @@ * For the web UI: * Updated the JSON validator/schema for Content Patcher 1.16. +* For SMAPI developers: + * The web API now returns an update alert in two new cases: any newer unofficial update (previously only shown if the mod was incompatible), and a newer prerelease version if the installed non-prerelease version is broken (previously only shown if the installed version was prerelease). + ## 3.6.2 Released 02 August 2020 for Stardew Valley 1.4.1 or later. -- cgit From d6dc1364bed4eb93bb8d376f9c1dec364ab82881 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sun, 16 Aug 2020 11:28:13 -0400 Subject: update schema for Content Patcher 1.17 --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index 5735e388..e6679a5e 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -18,7 +18,7 @@ * You can now read/write `SDate` values to JSON (e.g. for `config.json`, network mod messages, etc). * For the web UI: - * Updated the JSON validator/schema for Content Patcher 1.16. + * Updated the JSON validator/schema for Content Patcher 1.16 and 1.17. * For SMAPI developers: * The web API now returns an update alert in two new cases: any newer unofficial update (previously only shown if the mod was incompatible), and a newer prerelease version if the installed non-prerelease version is broken (previously only shown if the installed version was prerelease). -- cgit From 58fd6c71a2f9ad92879b04554b7443584eb7a267 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Mon, 17 Aug 2020 20:36:03 -0400 Subject: update release notes --- docs/release-notes.md | 1 + 1 file changed, 1 insertion(+) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index e6679a5e..2282bc3d 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -11,6 +11,7 @@ * For players: * Removed the experimental `RewriteInParallel` option added in SMAPI 3.6 (it was already disabled by default). Unfortunately this caused intermittent unpredictable errors when enabled. * Tweaked the rules for showing update alerts (see _for SMAPI developers_ below for details). + * Fixed crossplatform compatibility for mods which use the `[HarmonyPatch(type)]` attribute (thanks to spacechase0!). * Fixed broken URL in update alerts for unofficial versions. * Fixed rare error when a mod adds/removes event handlers asynchronously. -- cgit From 046deb2d56b6d4665280cc5478d9e683ec1d777d Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Mon, 24 Aug 2020 19:25:57 -0400 Subject: simplify console interception flow The console interceptor now uses a marker in the string (instead of a state field) to track whether the message should intercepted. This makes each write more atomic, so it's less affected by multithreading in some cases. --- docs/release-notes.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index 2282bc3d..a65db68c 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -9,11 +9,12 @@ ## Upcoming release * For players: - * Removed the experimental `RewriteInParallel` option added in SMAPI 3.6 (it was already disabled by default). Unfortunately this caused intermittent unpredictable errors when enabled. + * Removed the experimental `RewriteInParallel` option added in SMAPI 3.6 (it was already disabled by default). Unfortunately this caused intermittent and unpredictable errors when enabled. * Tweaked the rules for showing update alerts (see _for SMAPI developers_ below for details). * Fixed crossplatform compatibility for mods which use the `[HarmonyPatch(type)]` attribute (thanks to spacechase0!). * Fixed broken URL in update alerts for unofficial versions. * Fixed rare error when a mod adds/removes event handlers asynchronously. + * Fixed rare issue where the console showed incorrect colors when mods wrote to it asynchronously. * For modders: * You can now read/write `SDate` values to JSON (e.g. for `config.json`, network mod messages, etc). @@ -23,6 +24,7 @@ * For SMAPI developers: * The web API now returns an update alert in two new cases: any newer unofficial update (previously only shown if the mod was incompatible), and a newer prerelease version if the installed non-prerelease version is broken (previously only shown if the installed version was prerelease). + * Internal refactoring to simplify future game updates. ## 3.6.2 Released 02 August 2020 for Stardew Valley 1.4.1 or later. -- cgit From 94b8262692d2452e77d57fa22046dded231cdb0a Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Mon, 24 Aug 2020 20:11:56 -0400 Subject: add heuristic field-to-property rewriter --- docs/release-notes.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index a65db68c..3f7d5198 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -9,12 +9,13 @@ ## Upcoming release * For players: - * Removed the experimental `RewriteInParallel` option added in SMAPI 3.6 (it was already disabled by default). Unfortunately this caused intermittent and unpredictable errors when enabled. + * Added heuristic compatibility rewrites for some common cases. That fixes some mods which previously broke on Android or in newer game versions. * Tweaked the rules for showing update alerts (see _for SMAPI developers_ below for details). * Fixed crossplatform compatibility for mods which use the `[HarmonyPatch(type)]` attribute (thanks to spacechase0!). * Fixed broken URL in update alerts for unofficial versions. * Fixed rare error when a mod adds/removes event handlers asynchronously. * Fixed rare issue where the console showed incorrect colors when mods wrote to it asynchronously. + * Removed the experimental `RewriteInParallel` option added in SMAPI 3.6 (it was already disabled by default). Unfortunately this caused intermittent and unpredictable errors when enabled. * For modders: * You can now read/write `SDate` values to JSON (e.g. for `config.json`, network mod messages, etc). -- cgit From 1bd67baae116b0307b351222b056a0615107eb3c Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Mon, 24 Aug 2020 21:39:50 -0400 Subject: support mapping fields to a different type in FieldReplaceRewriter --- docs/release-notes.md | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index 3f7d5198..efab21d5 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -25,6 +25,10 @@ * For SMAPI developers: * The web API now returns an update alert in two new cases: any newer unofficial update (previously only shown if the mod was incompatible), and a newer prerelease version if the installed non-prerelease version is broken (previously only shown if the installed version was prerelease). + * Internal refactoring to simplify game updates: + * Reorganised SMAPI core to reduce coupling to `Game1` and make it easier to navigate. + * `FieldToPropertyRewriter` now auto-rewrites broken field references into properties if possible, so we no longer need to map fields manually. + * `FieldReplaceRewriter` now supports mapping to a different target type. * Internal refactoring to simplify future game updates. ## 3.6.2 -- cgit From 3a890408760d0d38a418d9830374262043e2ba13 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Mon, 24 Aug 2020 22:16:48 -0400 Subject: add rewriter for method references with missing optional parameters --- docs/release-notes.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index efab21d5..7e928aed 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -9,7 +9,7 @@ ## Upcoming release * For players: - * Added heuristic compatibility rewrites for some common cases. That fixes some mods which previously broke on Android or in newer game versions. + * Added heuristic compatibility rewrites, which fix some mods previously incompatible with Android or newer game versions. * Tweaked the rules for showing update alerts (see _for SMAPI developers_ below for details). * Fixed crossplatform compatibility for mods which use the `[HarmonyPatch(type)]` attribute (thanks to spacechase0!). * Fixed broken URL in update alerts for unofficial versions. @@ -27,7 +27,8 @@ * The web API now returns an update alert in two new cases: any newer unofficial update (previously only shown if the mod was incompatible), and a newer prerelease version if the installed non-prerelease version is broken (previously only shown if the installed version was prerelease). * Internal refactoring to simplify game updates: * Reorganised SMAPI core to reduce coupling to `Game1` and make it easier to navigate. - * `FieldToPropertyRewriter` now auto-rewrites broken field references into properties if possible, so we no longer need to map fields manually. + * Added rewriter for any method broken due to new optional parameters. + * Added rewriter for any field which was replaced by a property. * `FieldReplaceRewriter` now supports mapping to a different target type. * Internal refactoring to simplify future game updates. -- cgit From 54e7fb7a0bcd994f6d49348c879cb96902dbe07b Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Wed, 26 Aug 2020 22:32:59 -0400 Subject: fix some broken field references not detected --- docs/release-notes.md | 1 + 1 file changed, 1 insertion(+) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index 7e928aed..21f9d213 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -15,6 +15,7 @@ * Fixed broken URL in update alerts for unofficial versions. * Fixed rare error when a mod adds/removes event handlers asynchronously. * Fixed rare issue where the console showed incorrect colors when mods wrote to it asynchronously. + * Fixed SMAPI not always detecting broken field references in mod code. * Removed the experimental `RewriteInParallel` option added in SMAPI 3.6 (it was already disabled by default). Unfortunately this caused intermittent and unpredictable errors when enabled. * For modders: -- cgit From 0bf692addc3e309a8448de9ffb2a41cb701cfddf Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Wed, 26 Aug 2020 23:11:41 -0400 Subject: add heuristic rewrite for field => const changes --- docs/release-notes.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index 21f9d213..554b9518 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -26,12 +26,12 @@ * For SMAPI developers: * The web API now returns an update alert in two new cases: any newer unofficial update (previously only shown if the mod was incompatible), and a newer prerelease version if the installed non-prerelease version is broken (previously only shown if the installed version was prerelease). - * Internal refactoring to simplify game updates: - * Reorganised SMAPI core to reduce coupling to `Game1` and make it easier to navigate. - * Added rewriter for any method broken due to new optional parameters. - * Added rewriter for any field which was replaced by a property. - * `FieldReplaceRewriter` now supports mapping to a different target type. - * Internal refactoring to simplify future game updates. + * Reorganised SMAPI core to reduce coupling to `Game1`, make it easier to navigate, and simplify future game updates. + * SMAPI now automatically fixes code broken by these changes in game code, so manual rewriters are no longer needed: + * reference to a method with new optional parameters; + * reference to a field replaced by a property; + * reference to a field replaced by a `const` field. + * `FieldReplaceRewriter` now supports mapping to a different target type. ## 3.6.2 Released 02 August 2020 for Stardew Valley 1.4.1 or later. -- cgit From a1e1b7d10393dc23fa306ef03e392aa03e0b9ee1 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Fri, 28 Aug 2020 20:03:12 -0400 Subject: fix map tile rotation broken when you return to title --- docs/release-notes.md | 1 + 1 file changed, 1 insertion(+) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index 554b9518..6e531dbd 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -12,6 +12,7 @@ * Added heuristic compatibility rewrites, which fix some mods previously incompatible with Android or newer game versions. * Tweaked the rules for showing update alerts (see _for SMAPI developers_ below for details). * Fixed crossplatform compatibility for mods which use the `[HarmonyPatch(type)]` attribute (thanks to spacechase0!). + * Fixed map tile rotation broken when you return to the title screen and reload a save. * Fixed broken URL in update alerts for unofficial versions. * Fixed rare error when a mod adds/removes event handlers asynchronously. * Fixed rare issue where the console showed incorrect colors when mods wrote to it asynchronously. -- cgit From f57feb7319725513fadde8b14d55f4e8e4b82c24 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Fri, 4 Sep 2020 20:56:27 -0400 Subject: extend game's input logic instead of replacing it --- docs/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index 6e531dbd..ae636153 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -9,7 +9,7 @@ ## Upcoming release * For players: - * Added heuristic compatibility rewrites, which fix some mods previously incompatible with Android or newer game versions. + * Added heuristic compatibility rewrites. (This fixes some mods previously broken on Android, and improves compatibility with future game updates.) * Tweaked the rules for showing update alerts (see _for SMAPI developers_ below for details). * Fixed crossplatform compatibility for mods which use the `[HarmonyPatch(type)]` attribute (thanks to spacechase0!). * Fixed map tile rotation broken when you return to the title screen and reload a save. -- cgit From 4088f4cb2bfe777cf6f86ac5fbf64f7d67565057 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Fri, 4 Sep 2020 22:02:59 -0400 Subject: simplify error shown for duplicate mods --- docs/release-notes.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index ae636153..297d8394 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -9,8 +9,9 @@ ## Upcoming release * For players: - * Added heuristic compatibility rewrites. (This fixes some mods previously broken on Android, and improves compatibility with future game updates.) + * Added heuristic compatibility rewrites. (This improves mod compatibility with Android and future game updates.) * Tweaked the rules for showing update alerts (see _for SMAPI developers_ below for details). + * Simplified error shown for duplicate mods. * Fixed crossplatform compatibility for mods which use the `[HarmonyPatch(type)]` attribute (thanks to spacechase0!). * Fixed map tile rotation broken when you return to the title screen and reload a save. * Fixed broken URL in update alerts for unofficial versions. -- cgit From e40e8dd42bf547fd6f04543cef01b5d685c3ba56 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Fri, 4 Sep 2020 23:40:16 -0400 Subject: reorganize mod build package readme for readability --- docs/technical/mod-package.md | 382 ++++++++++++++++++++++++------------------ 1 file changed, 223 insertions(+), 159 deletions(-) (limited to 'docs') diff --git a/docs/technical/mod-package.md b/docs/technical/mod-package.md index e771d7a9..0f3afe9e 100644 --- a/docs/technical/mod-package.md +++ b/docs/technical/mod-package.md @@ -6,16 +6,12 @@ for SMAPI mods and related tools. The package is fully compatible with Linux, Ma ## Contents * [Use](#use) * [Features](#features) - * [Detect game path](#detect-game-path) - * [Add assembly references](#add-assembly-references) - * [Copy files into the `Mods` folder and create release zip](#copy-files-into-the-mods-folder-and-create-release-zip) - * [Launch or debug game](#launch-or-debug-game) - * [Preconfigure common settings](#preconfigure-common-settings) - * [Add code warnings](#add-code-warnings) +* [Configure](#configure) * [Code warnings](#code-warnings) -* [Special cases](#special-cases) - * [Custom game path](#custom-game-path) - * [Non-mod projects](#non-mod-projects) +* [FAQs](#faqs) + * [How do I set the game path?](#custom-game-path) + * [How do I change which files are included in the mod deploy/zip?](#how-do-i-change-which-files-are-included-in-the-mod-deployzip) + * [Can I use the package for non-mod projects?](#can-i-use-the-package-for-non-mod-projects) * [For SMAPI developers](#for-smapi-developers) * [Release notes](#release-notes) @@ -27,133 +23,218 @@ for SMAPI mods and related tools. The package is fully compatible with Linux, Ma 5. Run the game to play with your mod. ## Features -The package automatically makes the changes listed below. In some cases you can configure how it -works by editing your mod's `.csproj` file, and adding the given properties between the first -`` and `` tags. - -### Detect game path -The package finds your game folder by scanning the default install paths and Windows registry. It -adds two MSBuild properties for use in your `.csproj` file if needed: - -property | description --------- | ----------- -`$(GamePath)` | The absolute path to the detected game folder. -`$(GameExecutableName)` | The game's executable name for the current OS (`Stardew Valley` on Windows, or `StardewValley` on Linux/Mac). - -If you get a build error saying it can't find your game, see [_custom game path_](#custom-game-path). - -### Add assembly references -The package adds assembly references to SMAPI, Stardew Valley, xTile, and MonoGame (Linux/Mac) or XNA -Framework (Windows). It automatically adjusts depending on which OS you're compiling it on. - -The assemblies aren't copied to the build output, since mods loaded by SMAPI won't need them. For -non-mod projects like unit tests, you can set this property: +The package includes several features to simplify mod development (see [_configure_](#configure) to +change how these work): + +* **Detect game path:** + The package automatically finds your game folder by scanning the default install paths and + Windows registry. It adds two MSBuild properties for use in your `.csproj` file if needed: + $(GamePath)` and `$(GameExecutableName)`. + +* **Add assembly references:** + The package adds assembly references to SMAPI, Stardew Valley, xTile, and MonoGame (Linux/Mac) or + XNA Framework (Windows). It automatically adjusts depending on which OS you're compiling it on. + If you use [Harmony](https://github.com/pardeike/Harmony), it can optionally add a reference to + that too. + +* **Copy files into the `Mods` folder:** + The package automatically copies your mod's DLL and PDB files, `manifest.json`, [`i18n` + files](https://stardewvalleywiki.com/Modding:Translations) (if any), the `assets` folder (if + any), and [build output](https://stackoverflow.com/a/10828462/262123) into your game's `Mods` + folder when you rebuild the code, with a subfolder matching the mod's project name. That lets you + try the mod in-game right after building it. + +* **Create release zip:** + The package adds a zip file in your project's `bin` folder when you rebuild the code, in the + format recommended for uploading to mod sites like Nexus Mods. This includes the same files and + options as the previous feature. + +* **Launch or debug mod:** + On Windows only, the package configures Visual Studio so you can launch the game and attach a + debugger using _Debug > Start Debugging_ or _Debug > Start Without Debugging_. This lets you [set + breakpoints](https://docs.microsoft.com/en-us/visualstudio/debugger/using-breakpoints?view=vs-2019) + in your code while the game is running, or [make simple changes to the mod code without needing to + restart the game](https://docs.microsoft.com/en-us/visualstudio/debugger/edit-and-continue?view=vs-2019). + + This is disabled on Linux/Mac due to limitations with the Mono wrapper. + +* **Preconfigure common settings:** + The package automatically enables `.pdb` files (so error logs show line numbers to simplify + debugging), and enables support for the simplified `.csproj` format. + +* **Add code warnings:** + The package runs code analysis on your mod and raises warnings for some common errors or + pitfalls. See [_code warnings_](#code-warnings) for more info. + +## Configure +### How to set options +You can configure the package by setting build properties, which are essentially tags like this: ```xml -true + + CustomModName + false + ``` -If your mod uses [Harmony](https://github.com/pardeike/Harmony) (not recommended for most mods), -the package can add a reference to SMAPI's Harmony DLL for you: -```xml -true -``` +There are two places you can put them: -### Copy files into the `Mods` folder and create release zip -
-
Files considered part of your mod
-
+* **Global properties** apply to every mod project you open on your computer. That's recommended + for properties you want to set for all mods (e.g. a custom game path). Here's where to put them: -These files are selected by default: `manifest.json`, -[`i18n` files](https://stardewvalleywiki.com/Modding:Translations) (if any), the `assets` folder -(if any), and all files in the build output. You can select custom files by [adding them to the -build output](https://stackoverflow.com/a/10828462/262123). (If your project references another mod, -make sure the reference is [_not_ marked 'copy local'](https://msdn.microsoft.com/en-us/library/t1zz5y8c(v=vs.100).aspx).) - -You can deselect a file by removing it from the build output. For a default file, you can set the -property below to a comma-delimited list of regex patterns to ignore. For crossplatform -compatibility, you should replace path delimiters with `[/\\]`. + 1. Open the home folder on your computer (see instructions for + [Linux](https://superuser.com/questions/409218/where-is-my-users-home-folder-in-ubuntu), + [MacOS](https://www.cnet.com/how-to/how-to-find-your-macs-home-folder-and-add-it-to-finder/), + or [Windows](https://www.computerhope.com/issues/ch000109.htm)). + 2. Create a `stardewvalley.targets` file with this content: + ```xml + + + + + ``` + 3. Add the properties between the `` and ``. + +* **Project properties** apply to a specific project. This is mainly useful for mod-specific + options like the mod name. Here's where to put them: + + 1. Open the folder containing your mod's source code. + 2. Open the `.csproj` file in a text editor (Notepad is fine). + 3. Add the properties between the first `` and `` tags you find. + +### Available properties +These are the options you can set: + +
    +
  • Game properties: + + + + + + + + + + + + + +
    propertyeffect
    GamePath + +The absolute path to the Stardew Valley folder. This is auto-detected, so you shouldn't need to +change it in most cases. + +
    GameExecutableName + +The name of the game's executable file (i.e. `StardewValley.exe` on Linux/Mac or +`Stardew Valley.exe` on Windows). This is auto-detected, and you should almost never change this. + +
    +
  • + +
  • Mod build properties: + + + + + + + + + + + + + + + + + + + + + + + + + +
    propertyeffect
    EnableHarmony + +Whether to add a reference to [Harmony](https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Harmony) +(default `false`). This is only needed if you use Harmony. + +
    ModFolderName + +The mod name for its folder under `Mods` and its release zip (defaults to the project name). + +
    EnableModDeploy + +Whether to copy the mod files into your game's `Mods` folder (default `true`). + +
    ModZipPath + +The folder path where the release zip is created (defaults to the project's `bin` folder). + +
    EnableModZip + +Whether to create a release-ready `.zip` file in the mod project's `bin` folder (default `true`). + +
    +
  • + +
  • Specialized properties: + + + + + + + + + + + + + + + + + +
    propertyeffect
    CopyModReferencesToBuildOutput + +Whether to copy game and framework DLLs into the mod folder (default `false`). This is useful for +unit test projects, but not needed for mods that'll be run through SMAPI. + +
    IgnoreModFilePatterns + +A comma-delimited list of regex patterns matching files to ignore when deploying or zipping the mod +files (default empty). For crossplatform compatibility, you should replace path delimiters with `[/\\]`. + +For example, this excludes all `.txt` and `.pdf` files, as well as the `assets/paths.png` file: ```xml \.txt$, \.pdf$, assets[/\\]paths.png ``` - -
    Copy files into the `Mods` folder
    -
    - -The package copies the selected files into your game's `Mods` folder when you rebuild the code, -with a subfolder matching the mod's project name. - -You can change the folder name: -```xml -YourModName -``` - -Or disable deploying the files: -```xml -false -``` - -
    -
    Create release zip
    -
    - -The package adds a zip file in your project's `bin` folder when you rebuild the code, in the format -recommended for sites like Nexus Mods. The zip filename can be changed using `ModFolderName` above. - -You can change the folder path where the zip is created: -```xml -$(SolutionDir)\_releases -``` - -Or disable zip creation: -```xml -false -``` - -
    - - -### Launch or debug game -On Windows only, the package configures Visual Studio so you can launch the game and attach a -debugger using _Debug > Start Debugging_ or _Debug > Start Without Debugging_. This lets you [set -breakpoints](https://docs.microsoft.com/en-us/visualstudio/debugger/using-breakpoints?view=vs-2019) -in your code while the game is running, or [make simple changes to the mod code without needing to -restart the game](https://docs.microsoft.com/en-us/visualstudio/debugger/edit-and-continue?view=vs-2019). +
    EnableGameDebugging -This is disabled on Linux/Mac due to limitations with the Mono wrapper. +Whether to configure the project so you can launch or debug the game through the _Debug_ menu in +Visual Studio (default `true`). There's usually no reason to change this, unless it's a unit test +project. -To disable game debugging (only needed for some non-mod projects): - -```xml -false -``` - -### Preconfigure common settings -The package also automatically enables PDB files (so error logs show line numbers for simpler -debugging), and enables support for the simplified `.csproj` format. - -### Add code warnings -The package runs code analysis on your mod and raises warnings for some common errors or pitfalls. -See [_code warnings_](#code-warnings) for more info. +
    +
  • +
## Code warnings ### Overview The NuGet package adds code warnings in Visual Studio specific to Stardew Valley. For example: ![](screenshots/code-analyzer-example.png) -You can hide the warnings using the warning ID (shown under 'code' in the Error List). See... -* [for specific code](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-pragma-warning); -* for a method using this attribute: - ```cs - [System.Diagnostics.CodeAnalysis.SuppressMessage("SMAPI.CommonErrors", "AvoidNetField")] - ``` -* for an entire project: - 1. Expand the _References_ node for the project in Visual Studio. - 2. Right-click on _Analyzers_ and choose _Open Active Rule Set_. - 4. Expand _StardewModdingAPI.ModBuildConfig.Analyzer_ and uncheck the warnings you want to hide. +You can [hide the warnings](https://visualstudiomagazine.com/articles/2017/09/01/hide-compiler-warnings.aspx) +if needed using the warning ID (shown under 'code' in the Error List). -See below for help with each specific warning. +See below for help with specific warnings. ### Avoid implicit net field cast Warning text: @@ -202,57 +283,37 @@ Warning text: Your code accesses a field which is obsolete or no longer works. Use the suggested field instead. -## Special cases -### Custom game path -The package usually detects where your game is installed automatically. If it can't find your game -or you have multiple installs, you can specify the path yourself. There's two ways to do that: +## FAQs +### How do I set the game path? +The package detects where your game is installed automatically, so you usually don't need to set it +manually. If it can't find your game or you have multiple installs, you can specify the path +yourself. -* **Option 1: global game path (recommended).** - _This will apply to every project that uses the package._ +To do that: - 1. Get the full folder path containing the Stardew Valley executable. - 2. Create this file: - - platform | path - --------- | ---- - Linux/Mac | `~/stardewvalley.targets` - Windows | `%USERPROFILE%\stardewvalley.targets` - - 3. Save the file with this content: - - ```xml - - - PATH_HERE - - - ``` - - 4. Replace `PATH_HERE` with your game's folder path. - -* **Option 2: path in the project file.** - _You'll need to do this for each project that uses the package._ - - 1. Get the folder path containing the Stardew Valley `.exe` file. - 2. Add this to your `.csproj` file under the ` +1. Get the full path containing the Stardew Valley executable. +2. See [_configure_](#configure) to add this property: + ```xml + PATH_HERE - - ``` - - 3. Replace `PATH_HERE` with your custom game install path. + + ``` +3. Replace `PATH_HERE` with your game's folder path. The configuration will check your custom path first, then fall back to the default paths (so it'll still compile on a different computer). -You access the game path via `$(GamePath)` in MSBuild properties, if you need to reference another -file in the game folder. +### How do I change which files are included in the mod deploy/zip? +For custom files, you can [add/remove them in the build output](https://stackoverflow.com/a/10828462/262123). +(If your project references another mod, make sure the reference is [_not_ marked 'copy +local'](https://msdn.microsoft.com/en-us/library/t1zz5y8c(v=vs.100).aspx).) + +To exclude a file the package copies by default, see `IgnoreModFilePatterns` under +[_configure_](#configure). -### Non-mod projects +### Can I use the package for non-mod projects? You can use the package in non-mod projects too (e.g. unit tests or framework DLLs). Just disable -the mod-related package features: +the mod-related package features (see [_configure_](#configure)): ```xml false @@ -287,6 +348,9 @@ That will create a `Pathoschild.Stardew.ModBuildConfig-.nupkg` file in which can be uploaded to NuGet or referenced directly. ## Release notes +### Upcoming release +* Rewrote documentation to make it easier to read. + ### 3.1 * Added support for semantic versioning 2.0. * `0Harmony.dll` is now ignored if the mod references Harmony directly (it's bundled with SMAPI). -- cgit From 4ce572fca6b37851b6070d82f1f0a2b94a04df44 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sat, 5 Sep 2020 00:14:13 -0400 Subject: add mod build package option to change the Mods path --- docs/technical/mod-package.md | 50 ++++++++++++++++++++++++++----------------- 1 file changed, 30 insertions(+), 20 deletions(-) (limited to 'docs') diff --git a/docs/technical/mod-package.md b/docs/technical/mod-package.md index 0f3afe9e..5ac22167 100644 --- a/docs/technical/mod-package.md +++ b/docs/technical/mod-package.md @@ -115,8 +115,17 @@ These are the options you can set: GamePath -The absolute path to the Stardew Valley folder. This is auto-detected, so you shouldn't need to -change it in most cases. +The absolute path to the Stardew Valley folder. This is auto-detected, so you usually shouldn't +need to change it. + + + + +GameModsPath + + +The absolute path to the folder containing the game's installed mods (defaults to +`$(GamePath)/Mods`), used when deploying the mod files. @@ -148,34 +157,34 @@ Whether to add a reference to [Harmony](https://stardewvalleywiki.com/Modding:Mo -ModFolderName +EnableModDeploy -The mod name for its folder under `Mods` and its release zip (defaults to the project name). +Whether to copy the mod files into your game's `Mods` folder (default `true`). -EnableModDeploy +EnableModZip -Whether to copy the mod files into your game's `Mods` folder (default `true`). +Whether to create a release-ready `.zip` file in the mod project's `bin` folder (default `true`). -ModZipPath +ModFolderName -The folder path where the release zip is created (defaults to the project's `bin` folder). +The mod name for its folder under `Mods` and its release zip (defaults to the project name). -EnableModZip +ModZipPath -Whether to create a release-ready `.zip` file in the mod project's `bin` folder (default `true`). +The folder path where the release zip is created (defaults to the project's `bin` folder). @@ -195,6 +204,16 @@ Whether to create a release-ready `.zip` file in the mod project's `bin` folder Whether to copy game and framework DLLs into the mod folder (default `false`). This is useful for unit test projects, but not needed for mods that'll be run through SMAPI. + + + +EnableGameDebugging + + +Whether to configure the project so you can launch or debug the game through the _Debug_ menu in +Visual Studio (default `true`). There's usually no reason to change this, unless it's a unit test +project. + @@ -210,16 +229,6 @@ For example, this excludes all `.txt` and `.pdf` files, as well as the `assets/p \.txt$, \.pdf$, assets[/\\]paths.png ``` - - - -EnableGameDebugging - - -Whether to configure the project so you can launch or debug the game through the _Debug_ menu in -Visual Studio (default `true`). There's usually no reason to change this, unless it's a unit test -project. - @@ -349,6 +358,7 @@ which can be uploaded to NuGet or referenced directly. ## Release notes ### Upcoming release +* Added option to change `Mods` folder path. * Rewrote documentation to make it easier to read. ### 3.1 -- cgit From 220f3bc578399412ecff0ab350b3b94ebe1d7ea0 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sat, 5 Sep 2020 00:51:32 -0400 Subject: set max game version to prepare for upcoming SDV 1.5 update --- docs/release-notes.md | 1 + 1 file changed, 1 insertion(+) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index 297d8394..e335990b 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -19,6 +19,7 @@ * Fixed rare issue where the console showed incorrect colors when mods wrote to it asynchronously. * Fixed SMAPI not always detecting broken field references in mod code. * Removed the experimental `RewriteInParallel` option added in SMAPI 3.6 (it was already disabled by default). Unfortunately this caused intermittent and unpredictable errors when enabled. + * Internal changes to prepare for upcoming game updates. * For modders: * You can now read/write `SDate` values to JSON (e.g. for `config.json`, network mod messages, etc). -- cgit From 9ff6126a662791f511829ca7df0cc0cd96700761 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sat, 5 Sep 2020 11:31:15 -0400 Subject: add dates to package release notes, add missing notes --- docs/technical/mod-package.md | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'docs') diff --git a/docs/technical/mod-package.md b/docs/technical/mod-package.md index 5ac22167..460b5ef7 100644 --- a/docs/technical/mod-package.md +++ b/docs/technical/mod-package.md @@ -362,10 +362,14 @@ which can be uploaded to NuGet or referenced directly. * Rewrote documentation to make it easier to read. ### 3.1 +Released 01 February 2020. + * Added support for semantic versioning 2.0. * `0Harmony.dll` is now ignored if the mod references Harmony directly (it's bundled with SMAPI). ### 3.0 +Released 26 November 2019. + * Updated for SMAPI 3.0 and Stardew Valley 1.4. * Added automatic support for `assets` folders. * Added `$(GameExecutableName)` MSBuild variable. @@ -379,11 +383,15 @@ which can be uploaded to NuGet or referenced directly. * Migrated package icon to NuGet's new format. ### 2.2 +Released 28 October 2018. + * Added support for SMAPI 2.8+ (still compatible with earlier versions). * Added default game paths for 32-bit Windows. * Fixed valid manifests marked invalid in some cases. ### 2.1 +Released 27 July 2018. + * Added support for Stardew Valley 1.3. * Added support for non-mod projects. * Added C# analyzers to warn about implicit conversions of Netcode fields in Stardew Valley 1.3. @@ -392,12 +400,18 @@ which can be uploaded to NuGet or referenced directly. * Fixed some game paths not detected by NuGet package. ### 2.0.2 +Released 01 November 2017. + * Fixed compatibility issue on Linux. ### 2.0.1 +Released 11 October 2017. + * Fixed mod deploy failing to create subfolders if they don't already exist. ### 2.0 +Released 11 October 2017. + * Added: mods are now copied into the `Mods` folder automatically (configurable). * Added: release zips are now created automatically in your build output folder (configurable). * Added: mod deploy and release zips now exclude Json.NET automatically, since it's provided by SMAPI. @@ -407,38 +421,67 @@ which can be uploaded to NuGet or referenced directly. * Fixed release zip failing if mod name contains characters that aren't valid in a filename. ### 1.7.1 +Released 28 July 2017. + * Fixed issue where i18n folders were flattened. * The manifest/i18n files in the project now take precedence over those in the build output if both are present. ### 1.7 +Released 28 July 2017. + * Added option to create release zips on build. * Added reference to XNA's XACT library for audio-related mods. +### 1.6.2 +Released 10 July 2017. + +* Further improved crossplatform game path detection. +* Removed undocumented `GamePlatform` build property. + +### 1.6.1 +Released 09 July 2017. + +* Improved crossplatform game path detection. + ### 1.6 +Released 05 June 2017. + * Added support for deploying mod files into `Mods` automatically. * Added a build error if a game folder is found, but doesn't contain Stardew Valley or SMAPI. ### 1.5 +Released 23 January 2017. + * Added support for setting a custom game path globally. * Added default GOG path on Mac. ### 1.4 +Released 11 January 2017. + * Fixed detection of non-default game paths on 32-bit Windows. * Removed support for SilVerPLuM (discontinued). * Removed support for overriding the target platform (no longer needed since SMAPI crossplatforms mods automatically). ### 1.3 +Released 31 December 2016. + * Added support for non-default game paths on Windows. ### 1.2 +Released 24 October 2016. + * Exclude game binaries from mod build output. ### 1.1 +Released 21 October 2016. + * Added support for overriding the target platform. ### 1.0 +Released 21 October 2016. + * Initial release. * Added support for detecting the game path automatically. * Added support for injecting XNA/MonoGame references automatically based on the OS. -- cgit From a9ec5a6e9165fe18cc6fca60b81a330bce0e1904 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sat, 5 Sep 2020 14:55:40 -0400 Subject: copyedit package readme --- docs/technical/mod-package.md | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) (limited to 'docs') diff --git a/docs/technical/mod-package.md b/docs/technical/mod-package.md index 460b5ef7..0547b3ff 100644 --- a/docs/technical/mod-package.md +++ b/docs/technical/mod-package.md @@ -29,13 +29,13 @@ change how these work): * **Detect game path:** The package automatically finds your game folder by scanning the default install paths and Windows registry. It adds two MSBuild properties for use in your `.csproj` file if needed: - $(GamePath)` and `$(GameExecutableName)`. + `$(GamePath)` and `$(GameExecutableName)`. * **Add assembly references:** - The package adds assembly references to SMAPI, Stardew Valley, xTile, and MonoGame (Linux/Mac) or - XNA Framework (Windows). It automatically adjusts depending on which OS you're compiling it on. - If you use [Harmony](https://github.com/pardeike/Harmony), it can optionally add a reference to - that too. + The package adds assembly references to SMAPI, Stardew Valley, xTile, and the game framework + (MonoGame on Linux/Mac, XNA Framework on Windows). It automatically adjusts depending on which OS + you're compiling it on. If you use [Harmony](https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Harmony), + it can optionally add a reference to that too. * **Copy files into the `Mods` folder:** The package automatically copies your mod's DLL and PDB files, `manifest.json`, [`i18n` @@ -46,8 +46,8 @@ change how these work): * **Create release zip:** The package adds a zip file in your project's `bin` folder when you rebuild the code, in the - format recommended for uploading to mod sites like Nexus Mods. This includes the same files and - options as the previous feature. + format recommended for uploading to mod sites like Nexus Mods. This includes the same files as + the previous feature. * **Launch or debug mod:** On Windows only, the package configures Visual Studio so you can launch the game and attach a @@ -55,12 +55,11 @@ change how these work): breakpoints](https://docs.microsoft.com/en-us/visualstudio/debugger/using-breakpoints?view=vs-2019) in your code while the game is running, or [make simple changes to the mod code without needing to restart the game](https://docs.microsoft.com/en-us/visualstudio/debugger/edit-and-continue?view=vs-2019). - This is disabled on Linux/Mac due to limitations with the Mono wrapper. * **Preconfigure common settings:** The package automatically enables `.pdb` files (so error logs show line numbers to simplify - debugging), and enables support for the simplified `.csproj` format. + debugging), and enables support for the simplified SDK-style `.csproj` format. * **Add code warnings:** The package runs code analysis on your mod and raises warnings for some common errors or @@ -115,8 +114,8 @@ These are the options you can set: GamePath -The absolute path to the Stardew Valley folder. This is auto-detected, so you usually shouldn't -need to change it. +The absolute path to the Stardew Valley folder. This is auto-detected, so you usually don't need to +change it. @@ -133,7 +132,7 @@ The absolute path to the folder containing the game's installed mods (defaults t GameExecutableName -The name of the game's executable file (i.e. `StardewValley.exe` on Linux/Mac or +The filename for the game's executable (i.e. `StardewValley.exe` on Linux/Mac or `Stardew Valley.exe` on Windows). This is auto-detected, and you should almost never change this. @@ -300,7 +299,7 @@ yourself. To do that: -1. Get the full path containing the Stardew Valley executable. +1. Get the full folder path containing the Stardew Valley executable. 2. See [_configure_](#configure) to add this property: ```xml @@ -348,7 +347,7 @@ To prepare a build of the NuGet package: 1. Install the [NuGet CLI](https://docs.microsoft.com/en-us/nuget/install-nuget-client-tools#nugetexe-cli). 1. Change the version and release notes in `package.nuspec`. 2. Rebuild the solution in _Release_ mode. -3. Open a terminal in the `bin/Pathoschild.Stardew.ModBuildConfig` package and run this command: +3. Open a terminal in the `bin/Pathoschild.Stardew.ModBuildConfig` folder and run this command: ```bash nuget.exe pack ``` -- cgit From 4f3d7eaafc056a7a2b17b1657e069eb456f60f52 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sat, 5 Sep 2020 15:00:38 -0400 Subject: make PathUtilities available to mods --- docs/release-notes.md | 1 + 1 file changed, 1 insertion(+) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index e335990b..cdd141c3 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -22,6 +22,7 @@ * Internal changes to prepare for upcoming game updates. * For modders: + * Added `PathUtilities` to simplify working with file/asset names. * You can now read/write `SDate` values to JSON (e.g. for `config.json`, network mod messages, etc). * For the web UI: -- cgit From 0b21357e37c900774668fdaf3e83e1e7f7df0c38 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sun, 6 Sep 2020 16:40:32 -0400 Subject: fix asset propagation for title menu buttons --- docs/release-notes.md | 1 + 1 file changed, 1 insertion(+) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index cdd141c3..b43489d3 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -24,6 +24,7 @@ * For modders: * Added `PathUtilities` to simplify working with file/asset names. * You can now read/write `SDate` values to JSON (e.g. for `config.json`, network mod messages, etc). + * Fixed asset propagation not updating title menu buttons immediately on Linux/Mac. * For the web UI: * Updated the JSON validator/schema for Content Patcher 1.16 and 1.17. -- cgit From 2022836b819241842acae1d20c61895025bf364b Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sun, 6 Sep 2020 20:59:19 -0400 Subject: prepare for release --- docs/release-notes.md | 8 +++++--- docs/technical/mod-package.md | 4 +++- 2 files changed, 8 insertions(+), 4 deletions(-) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index b43489d3..3b8b0f8b 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -7,11 +7,13 @@ * Migrated to Harmony 2.0 (see [_migrate to Harmony 2.0_](https://stardewvalleywiki.com/Modding:Migrate_to_Harmony_2.0) for more info). --> -## Upcoming release +## 3.7 +Released 07 September 2020 for Stardew Valley 1.4.1 or later. + * For players: * Added heuristic compatibility rewrites. (This improves mod compatibility with Android and future game updates.) * Tweaked the rules for showing update alerts (see _for SMAPI developers_ below for details). - * Simplified error shown for duplicate mods. + * Simplified the error shown for duplicate mods. * Fixed crossplatform compatibility for mods which use the `[HarmonyPatch(type)]` attribute (thanks to spacechase0!). * Fixed map tile rotation broken when you return to the title screen and reload a save. * Fixed broken URL in update alerts for unofficial versions. @@ -31,7 +33,7 @@ * For SMAPI developers: * The web API now returns an update alert in two new cases: any newer unofficial update (previously only shown if the mod was incompatible), and a newer prerelease version if the installed non-prerelease version is broken (previously only shown if the installed version was prerelease). - * Reorganised SMAPI core to reduce coupling to `Game1`, make it easier to navigate, and simplify future game updates. + * Reorganised the SMAPI core to reduce coupling to game types like `Game1`, make it easier to navigate, and simplify future game updates. * SMAPI now automatically fixes code broken by these changes in game code, so manual rewriters are no longer needed: * reference to a method with new optional parameters; * reference to a field replaced by a property; diff --git a/docs/technical/mod-package.md b/docs/technical/mod-package.md index 0547b3ff..26ef019f 100644 --- a/docs/technical/mod-package.md +++ b/docs/technical/mod-package.md @@ -356,7 +356,9 @@ That will create a `Pathoschild.Stardew.ModBuildConfig-.nupkg` file in which can be uploaded to NuGet or referenced directly. ## Release notes -### Upcoming release +### 3.2 +Released 07 September 2020. + * Added option to change `Mods` folder path. * Rewrote documentation to make it easier to read. -- cgit From f9fac11028354f15d786d5b854608edb10716f79 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Mon, 7 Sep 2020 13:05:34 -0400 Subject: Add 'release highlights' links to release notes --- docs/release-notes.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index 3b8b0f8b..4671ba95 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -8,7 +8,7 @@ --> ## 3.7 -Released 07 September 2020 for Stardew Valley 1.4.1 or later. +Released 07 September 2020 for Stardew Valley 1.4.1 or later. See [release highlights](https://www.patreon.com/posts/41341767). * For players: * Added heuristic compatibility rewrites. (This improves mod compatibility with Android and future game updates.) @@ -64,7 +64,7 @@ Released 21 June 2020 for Stardew Valley 1.4.1 or later. * Fixed event priority sorting. ## 3.6 -Released 20 June 2020 for Stardew Valley 1.4.1 or later. +Released 20 June 2020 for Stardew Valley 1.4.1 or later. See [release highlights](https://www.patreon.com/posts/38441800). * For players: * Added crossplatform compatibility for mods which use the `[HarmonyPatch(type)]` attribute. @@ -106,7 +106,7 @@ Released 20 June 2020 for Stardew Valley 1.4.1 or later. * Changed SMAPI's Harmony ID from `io.smapi` to `SMAPI` for readability in Harmony summaries. ## 3.5 -Released 27 April 2020 for Stardew Valley 1.4.1 or later. +Released 27 April 2020 for Stardew Valley 1.4.1 or later. See [release highlights](https://www.patreon.com/posts/36471055). * For players: * SMAPI now prevents more game errors due to broken items, so you no longer need save editing to remove them. @@ -140,7 +140,7 @@ Released 24 March 2020 for Stardew Valley 1.4.1 or later. * Fixed mouse input suppression not working in SMAPI 3.4. ## 3.4 -Released 22 March 2020 for Stardew Valley 1.4.1 or later. +Released 22 March 2020 for Stardew Valley 1.4.1 or later. See [release highlights](https://www.patreon.com/posts/35161371). * For players: * Fixed semi-transparency issues on Linux/Mac in recent versions of Mono (e.g. pink shadows). @@ -173,7 +173,7 @@ Released 22 February 2020 for Stardew Valley 1.4.1 or later. * Fixed errors with custom spouse room mods in SMAPI 3.3. ## 3.3 -Released 22 February 2020 for Stardew Valley 1.4.1 or later. +Released 22 February 2020 for Stardew Valley 1.4.1 or later. See [release highlights](https://www.patreon.com/posts/34248719). * For players: * Improved performance for mods which load many images. @@ -207,7 +207,7 @@ Released 22 February 2020 for Stardew Valley 1.4.1 or later. * The SMAPI log now prefixes the OS name with `Android` on Android. ## 3.2 -Released 01 February 2020 for Stardew Valley 1.4.1 or later. +Released 01 February 2020 for Stardew Valley 1.4.1 or later. See [release highlights](https://www.patreon.com/posts/33659728). * For players: * SMAPI now prevents crashes due to invalid schedule data. @@ -248,7 +248,7 @@ Released 01 February 2020 for Stardew Valley 1.4.1 or later. * Dropped API support for the pre-3.0 update-check format. ## 3.1 -Released 05 January 2019 for Stardew Valley 1.4.1 or later. +Released 05 January 2019 for Stardew Valley 1.4.1 or later. See [release highlights](https://www.patreon.com/posts/32904041). * For players: * Added separate group in 'skipped mods' list for broken dependencies, so it's easier to see what to fix first. -- cgit