From a3ade7a5126642f42794281057349fa5ff737cdd Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Fri, 13 Apr 2018 22:41:34 -0400 Subject: split mod DB into a separate file The mod metadata has grown over time, and there's no need to keep it in memory after mod loading. This lets us load the config earlier (since it has a smaller impact on memory usage which affects the game's audio code), and lets us discard the mod metadata when we're done with it. --- 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 e68720da..f0202ee1 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -15,6 +15,7 @@ * For SMAPI developers: * Added prerelease versions to the mod update-check API response where available (GitHub only). * Added support for beta releases on the home page. + * Split mod DB out of `StardewModdingAPI.config.json`, so we can load config earlier and reduce unnecessary memory usage later. --> ## 2.5.5 -- cgit From 504733dec7d629335b83841af38cd5da91d5231f Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Fri, 13 Apr 2018 23:00:49 -0400 Subject: fix console color scheme for PowerShell, and make it configurable --- 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 f0202ee1..817fcd47 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -5,6 +5,7 @@ * Added support for Stardew Valley 1.3+; no longer compatible with earlier versions. * Added `Context.IsMultiplayer` and `Context.IsMainPlayer` flags. * Fixed SMAPI update checks not showing newer beta versions when using a beta version. + * Fixed console color scheme for PowerShell and added override option to `StardewModdingAPI.config.json`. * For modders: * Added code analysis to mod build config package to flag common issues as warnings. -- cgit From 45f4f85b7e74e0cffd345310d6aabc95c12dac26 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Fri, 13 Apr 2018 23:47:24 -0400 Subject: add MacOS detection --- 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 817fcd47..40f404d3 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -14,6 +14,7 @@ * Fixed issue where assets didn't reload correctly when the player switches language. * For SMAPI developers: + * Added MacOS detection to `Constants.Platform`. * Added prerelease versions to the mod update-check API response where available (GitHub only). * Added support for beta releases on the home page. * Split mod DB out of `StardewModdingAPI.config.json`, so we can load config earlier and reduce unnecessary memory usage later. -- cgit From 0d5278a270a0d51baefe99cf908f532a66489602 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Fri, 13 Apr 2018 23:54:44 -0400 Subject: use light-background color scheme on Mac by default --- 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 40f404d3..9ae1d2c4 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -5,7 +5,7 @@ * Added support for Stardew Valley 1.3+; no longer compatible with earlier versions. * Added `Context.IsMultiplayer` and `Context.IsMainPlayer` flags. * Fixed SMAPI update checks not showing newer beta versions when using a beta version. - * Fixed console color scheme for PowerShell and added override option to `StardewModdingAPI.config.json`. + * Fixed console color scheme on Mac or PowerShell, and added override option to `StardewModdingAPI.config.json`. * For modders: * Added code analysis to mod build config package to flag common issues as warnings. -- cgit From 6d269621b28240a0da6de5fd5faa4c35553c15bb Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sat, 14 Apr 2018 00:18:19 -0400 Subject: make crossplatform handling more consistent --- 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 9ae1d2c4..f3e9af6f 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -14,7 +14,8 @@ * Fixed issue where assets didn't reload correctly when the player switches language. * For SMAPI developers: - * Added MacOS detection to `Constants.Platform`. + * Added more consistent crossplatform handling using a new `EnvironmentUtility`. + * Added MacOS detection. * Added prerelease versions to the mod update-check API response where available (GitHub only). * Added support for beta releases on the home page. * Split mod DB out of `StardewModdingAPI.config.json`, so we can load config earlier and reduce unnecessary memory usage later. -- cgit From 6616c87c1806159ce6e751d4ccd54b5500d8b903 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sat, 14 Apr 2018 00:24:24 -0400 Subject: fix world_settime command sometimes breaking NPC schedules --- 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 f3e9af6f..e524ea65 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -6,6 +6,7 @@ * Added `Context.IsMultiplayer` and `Context.IsMainPlayer` flags. * Fixed SMAPI update checks not showing newer beta versions when using a beta version. * Fixed console color scheme on Mac or PowerShell, and added override option to `StardewModdingAPI.config.json`. + * Fixed `world_settime` console command sometimes breaking NPC schedules (e.g. so they stay in bed). * For modders: * Added code analysis to mod build config package to flag common issues as warnings. -- cgit From c2cb76b79919261c4d7eab107c5cb77ec6c6a81c Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sat, 14 Apr 2018 17:53:58 -0400 Subject: rewrite analyzers to match more cases, use readable warning IDs (#471) --- docs/mod-build-config.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'docs') diff --git a/docs/mod-build-config.md b/docs/mod-build-config.md index 99a567f2..d942beeb 100644 --- a/docs/mod-build-config.md +++ b/docs/mod-build-config.md @@ -153,8 +153,8 @@ You can hide the warnings... See below for help with each specific warning. -### SMAPI001 -**Implicit net field conversion:** +### Avoid implicit net field cast +Warning text: > This implicitly converts '{{expression}}' from {{net type}} to {{other type}}, but > {{net type}} has unintuitive implicit conversion rules. Consider comparing against the actual > value instead to avoid bugs. @@ -185,8 +185,8 @@ Suggested fix: if (item != null && item.category.Value == 0) ``` -### SMAPI002 -**Avoid net fields when possible:** +### Avoid net field +Warning text: > '{{expression}}' is a {{net type}} field; consider using the {{property name}} property instead. Your code accesses a net field, which has some unusual behavior (see [SMAPI001](#smapi001)). This @@ -194,8 +194,8 @@ field has an equivalent non-net property that avoids those issues. Suggested fix: access the suggested property name instead. -### SMAPI003 -**Avoid obsolete fields:** +### Avoid obsolete field +Warning text: > The '{{old field}}' field is obsolete and should be replaced with '{{new field}}'. Your code accesses a field which is obsolete or no longer works. Use the suggested field instead. -- cgit From 97120c6df2f59a12eef0129f13d773bdde305184 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sat, 14 Apr 2018 20:33:43 -0400 Subject: update references to old warning IDs (#471) --- docs/mod-build-config.md | 12 ++++++------ docs/screenshots/code-analyzer-example.png | Bin 4022 -> 3473 bytes 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'docs') diff --git a/docs/mod-build-config.md b/docs/mod-build-config.md index d942beeb..74ee34e4 100644 --- a/docs/mod-build-config.md +++ b/docs/mod-build-config.md @@ -140,11 +140,11 @@ To enable it, add this above the first `` in your `.csproj`: 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... +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", "SMAPI001")] // implicit net field conversion + [System.Diagnostics.CodeAnalysis.SuppressMessage("SMAPI.CommonErrors", "AvoidNetField")] ``` * for an entire project: 1. Expand the _References_ node for the project in Visual Studio. @@ -163,11 +163,11 @@ Stardew Valley uses net types (like `NetBool` and `NetInt`) to handle multiplaye can implicitly convert to their equivalent normal values (like `bool x = new NetBool()`), but their conversion rules are unintuitive and error-prone. For example, `item?.category == null && item?.category != null` can both be true at once, and -`building.indoors != null` will be true for a null value in some cases. +`building.indoors != null` can be true for a null value. Suggested fix: * Some net fields have an equivalent non-net property like `monster.Health` (`int`) instead of - `monster.health` (`NetInt`). The package will add a separate [SMAPI002](#smapi002) warning for + `monster.health` (`NetInt`). The package will add a separate [AvoidNetField](#avoid-net-field) warning for these. Use the suggested property instead. * For a reference type (i.e. one that can contain `null`), you can use the `.Value` property: ```c# @@ -189,8 +189,8 @@ Suggested fix: Warning text: > '{{expression}}' is a {{net type}} field; consider using the {{property name}} property instead. -Your code accesses a net field, which has some unusual behavior (see [SMAPI001](#smapi001)). This -field has an equivalent non-net property that avoids those issues. +Your code accesses a net field, which has some unusual behavior (see [AvoidImplicitNetFieldCast](#avoid-implicit-net-field-cast)). +This field has an equivalent non-net property that avoids those issues. Suggested fix: access the suggested property name instead. diff --git a/docs/screenshots/code-analyzer-example.png b/docs/screenshots/code-analyzer-example.png index 3b930dc5..de38f643 100644 Binary files a/docs/screenshots/code-analyzer-example.png and b/docs/screenshots/code-analyzer-example.png differ -- cgit From 4af998024cf47ed90a2177c42b77217208685f50 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Tue, 17 Apr 2018 21:12:03 -0400 Subject: add warning in developer mode for mods with no update keys --- 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 e524ea65..cde7847e 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,6 +10,7 @@ * For modders: * Added code analysis to mod build config package to flag common issues as warnings. + * Added warning when a mod doesn't have update keys (currently only shown in developer mode). * Dropped some deprecated APIs. * Fixed assets loaded by temporary content managers not being editable. * Fixed issue where assets didn't reload correctly when the player switches language. -- cgit From b346d28d3858b79c6c4cde55faac34ecdedeaff1 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Thu, 19 Apr 2018 20:35:16 -0400 Subject: fix GetApi interface validation errors not naming interface --- 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 cde7847e..d0b6d332 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -14,6 +14,7 @@ * Dropped some deprecated APIs. * Fixed assets loaded by temporary content managers not being editable. * Fixed issue where assets didn't reload correctly when the player switches language. + * Fixed `helper.ModRegistry.GetApi` interface validation errors not mentioning which interface caused the issue. * For SMAPI developers: * Added more consistent crossplatform handling using a new `EnvironmentUtility`. -- cgit From eead352af26d0fcc5cac147d0eb5ec384854d931 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sat, 21 Apr 2018 20:37:17 -0400 Subject: rewrite world/player state tracking (#453) --- docs/release-notes.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index d0b6d332..73fe0710 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -1,5 +1,4 @@ # Release notes - + * Overhauled world/player state tracking: + * much more efficient than previous method; + * uses net field events where available; + * lays groundwork for tracking events for multiple players. ## 2.5.5 * For players: -- cgit From 902814d308289f169750a615ae573edc348893d3 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sun, 22 Apr 2018 15:05:08 -0400 Subject: don't send chatbox input to mods (#453) --- 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 73fe0710..ee2d0aa1 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,10 +10,11 @@ * For modders: * Added code analysis to mod build config package to flag common issues as warnings. * Added warning when a mod doesn't have update keys (currently only shown in developer mode). - * Dropped some deprecated APIs. * Fixed assets loaded by temporary content managers not being editable. * Fixed issue where assets didn't reload correctly when the player switches language. * Fixed `helper.ModRegistry.GetApi` interface validation errors not mentioning which interface caused the issue. + * **Breaking change**: dropped some deprecated APIs. + * **Breaking change**: mods can't intercept chatbox input, including the game's hotkey to toggle the chatbox (default `T`). * For SMAPI developers: * Added more consistent crossplatform handling using a new `EnvironmentUtility`. -- cgit From 5e7eaf9f75d72d8cbb338c35b43f2974440b3456 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sun, 22 Apr 2018 19:59:03 -0400 Subject: rewrite input suppression (#453) This lets SMAPI intercept all input using the new Game1.hooks in SDV 1.3.0.32. However, intercepting mouse clicks needs a few more changes in the game code. --- 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 ee2d0aa1..565ed58c 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -22,7 +22,8 @@ * Added prerelease versions to the mod update-check API response where available (GitHub only). * Added support for beta releases on the home page. * Split mod DB out of `StardewModdingAPI.config.json`, so we can load config earlier and reduce unnecessary memory usage later. - * Overhauled world/player state tracking: + * Rewrote input suppression using new SDV 1.3 APIs. + * Rewrote world/player state tracking: * much more efficient than previous method; * uses net field events where available; * lays groundwork for tracking events for multiple players. -- cgit From 9cebd83cb968a61e809bd721056fd9fc17f3b5fe Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Mon, 23 Apr 2018 18:15:58 -0400 Subject: show update-key warnings before checking mod status, enable in non-dev mode --- 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 565ed58c..3cb048cd 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -3,13 +3,13 @@ * For players: * Added support for Stardew Valley 1.3+; no longer compatible with earlier versions. * Added `Context.IsMultiplayer` and `Context.IsMainPlayer` flags. + * Added warning for mods which don't have update checks configured. * Fixed SMAPI update checks not showing newer beta versions when using a beta version. * Fixed console color scheme on Mac or PowerShell, and added override option to `StardewModdingAPI.config.json`. * Fixed `world_settime` console command sometimes breaking NPC schedules (e.g. so they stay in bed). * For modders: * Added code analysis to mod build config package to flag common issues as warnings. - * Added warning when a mod doesn't have update keys (currently only shown in developer mode). * Fixed assets loaded by temporary content managers not being editable. * Fixed issue where assets didn't reload correctly when the player switches language. * Fixed `helper.ModRegistry.GetApi` interface validation errors not mentioning which interface caused the issue. -- cgit From f1b7585e50b1a3a732787eec2fa9b6d7bd04a554 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Wed, 25 Apr 2018 00:26:13 -0400 Subject: fix misplaced release notes (#453) --- 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 3cb048cd..4fec0c3d 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -2,7 +2,6 @@ ## 2.6 alpha * For players: * Added support for Stardew Valley 1.3+; no longer compatible with earlier versions. - * Added `Context.IsMultiplayer` and `Context.IsMainPlayer` flags. * Added warning for mods which don't have update checks configured. * Fixed SMAPI update checks not showing newer beta versions when using a beta version. * Fixed console color scheme on Mac or PowerShell, and added override option to `StardewModdingAPI.config.json`. @@ -10,6 +9,7 @@ * For modders: * Added code analysis to mod build config package to flag common issues as warnings. + * Added `Context.IsMultiplayer` and `Context.IsMainPlayer` flags. * Fixed assets loaded by temporary content managers not being editable. * Fixed issue where assets didn't reload correctly when the player switches language. * Fixed `helper.ModRegistry.GetApi` interface validation errors not mentioning which interface caused the issue. -- cgit From 151789caa98025632048a1a2d7feb3b64c70829e Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Wed, 25 Apr 2018 11:39:35 -0400 Subject: add default GOG install path --- 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 4fec0c3d..624891eb 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -3,6 +3,7 @@ * For players: * Added support for Stardew Valley 1.3+; no longer compatible with earlier versions. * Added warning for mods which don't have update checks configured. + * Fixed detection of GOG install path in rare cases. * Fixed SMAPI update checks not showing newer beta versions when using a beta version. * Fixed console color scheme on Mac or PowerShell, and added override option to `StardewModdingAPI.config.json`. * Fixed `world_settime` console command sometimes breaking NPC schedules (e.g. so they stay in bed). -- cgit From bd146e74e8970156da82684a821e5d29ad054b97 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Wed, 25 Apr 2018 12:04:14 -0400 Subject: update release notes, minor tweaks (#475) --- 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 624891eb..38a8b00d 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -13,6 +13,7 @@ * Added `Context.IsMultiplayer` and `Context.IsMainPlayer` flags. * Fixed assets loaded by temporary content managers not being editable. * Fixed issue where assets didn't reload correctly when the player switches language. + * Fixed user command input not saved to log file. * Fixed `helper.ModRegistry.GetApi` interface validation errors not mentioning which interface caused the issue. * **Breaking change**: dropped some deprecated APIs. * **Breaking change**: mods can't intercept chatbox input, including the game's hotkey to toggle the chatbox (default `T`). -- cgit From cd3dbc47aa6e112d8695bcb9ed81f0b422f21e5c Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Wed, 25 Apr 2018 12:11:28 -0400 Subject: update release notes, tweak formatting (#477) --- 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 38a8b00d..308007bb 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -18,6 +18,9 @@ * **Breaking change**: dropped some deprecated APIs. * **Breaking change**: mods can't intercept chatbox input, including the game's hotkey to toggle the chatbox (default `T`). +* For the log parser: + * The pufferchick is now more stylish. + * For SMAPI developers: * Added more consistent crossplatform handling using a new `EnvironmentUtility`. * Added MacOS detection. -- cgit From 0134f0b28d355766a17b1c9da89b8173f978d195 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Wed, 25 Apr 2018 13:16:25 -0400 Subject: update release notes, refactor a bit (#474) --- 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 308007bb..6842c941 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -11,6 +11,7 @@ * For modders: * Added code analysis to mod build config package to flag common issues as warnings. * Added `Context.IsMultiplayer` and `Context.IsMainPlayer` flags. + * Added `player_add name` console command, which lets you add items to your inventory by name instead of ID. * Fixed assets loaded by temporary content managers not being editable. * Fixed issue where assets didn't reload correctly when the player switches language. * Fixed user command input not saved to log file. -- cgit From 05369f2b317c8e32ff4dec3ffe7aaf06d38d1c32 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Wed, 25 Apr 2018 13:29:08 -0400 Subject: add friendly error when game can't load audio (#472) --- 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 6842c941..86475d6e 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -3,6 +3,7 @@ * For players: * Added support for Stardew Valley 1.3+; no longer compatible with earlier versions. * Added warning for mods which don't have update checks configured. + * Added friendly error when game can't start audio. * Fixed detection of GOG install path in rare cases. * Fixed SMAPI update checks not showing newer beta versions when using a beta version. * Fixed console color scheme on Mac or PowerShell, and added override option to `StardewModdingAPI.config.json`. -- cgit From 230099692635a7ca53edfebf4ed9225b5b1d5779 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Wed, 25 Apr 2018 20:41:52 -0400 Subject: simplify beta channel logic (#457) --- 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 86475d6e..5e14f34d 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -4,8 +4,8 @@ * Added support for Stardew Valley 1.3+; no longer compatible with earlier versions. * Added warning for mods which don't have update checks configured. * Added friendly error when game can't start audio. + * Added beta update channel. * Fixed detection of GOG install path in rare cases. - * Fixed SMAPI update checks not showing newer beta versions when using a beta version. * Fixed console color scheme on Mac or PowerShell, and added override option to `StardewModdingAPI.config.json`. * Fixed `world_settime` console command sometimes breaking NPC schedules (e.g. so they stay in bed). -- cgit From efff9723609d66134ca7bc91ecf04436be3c4e05 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Wed, 25 Apr 2018 20:49:37 -0400 Subject: update for upcoming 2.6 beta release --- docs/release-notes.md | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index 5e14f34d..93855ba9 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -1,34 +1,32 @@ # Release notes -## 2.6 alpha +## 2.6 beta * For players: - * Added support for Stardew Valley 1.3+; no longer compatible with earlier versions. - * Added warning for mods which don't have update checks configured. - * Added friendly error when game can't start audio. + * Updated for Stardew Valley 1.3 (no longer compatible with earlier versions). * Added beta update channel. - * Fixed detection of GOG install path in rare cases. - * Fixed console color scheme on Mac or PowerShell, and added override option to `StardewModdingAPI.config.json`. - * Fixed `world_settime` console command sometimes breaking NPC schedules (e.g. so they stay in bed). + * Added friendly error when game can't start audio. + * Added console warning for mods which don't have update checks configured. + * Fixed console color scheme on Mac or in PowerShell, configurable via `StardewModdingAPI.config.json`. + * Fixed detection of GOG Galaxy install path in rare cases. * For modders: * Added code analysis to mod build config package to flag common issues as warnings. * Added `Context.IsMultiplayer` and `Context.IsMainPlayer` flags. - * Added `player_add name` console command, which lets you add items to your inventory by name instead of ID. - * Fixed assets loaded by temporary content managers not being editable. - * Fixed issue where assets didn't reload correctly when the player switches language. - * Fixed user command input not saved to log file. + * Fixed assets loaded by temporary content managers not being editable by mods. + * Fixed assets not reloaded consistently when the player switches language. + * Fixed console command input not saved to the log. * Fixed `helper.ModRegistry.GetApi` interface validation errors not mentioning which interface caused the issue. * **Breaking change**: dropped some deprecated APIs. - * **Breaking change**: mods can't intercept chatbox input, including the game's hotkey to toggle the chatbox (default `T`). + * **Breaking change**: mods can't intercept chatbox input, including the game's hotkeys to toggle the chatbox (default `T` and `?`). -* For the log parser: - * The pufferchick is now more stylish. +* In console commands: + * Added `player_add name`, which lets you add items to your inventory by name instead of ID. + * Fixed `world_settime` sometimes breaking NPC schedules (e.g. so they stay in bed). * For SMAPI developers: - * Added more consistent crossplatform handling using a new `EnvironmentUtility`. - * Added MacOS detection. - * Added prerelease versions to the mod update-check API response where available (GitHub only). - * Added support for beta releases on the home page. - * Split mod DB out of `StardewModdingAPI.config.json`, so we can load config earlier and reduce unnecessary memory usage later. + * Added more consistent crossplatform handling using a new `EnvironmentUtility`, including MacOS detection. + * Added beta update channel to SMAPI, the web API, and home page. + * Added more stylish pufferchick on the home page. + * Split mod DB out of `StardewModdingAPI.config.json` into its own file. * Rewrote input suppression using new SDV 1.3 APIs. * Rewrote world/player state tracking: * much more efficient than previous method; -- cgit From 6257fdf57def0f07a7970f9fb232879ed4c524f6 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sat, 28 Apr 2018 22:39:29 -0400 Subject: update wiki links --- docs/README.md | 2 +- docs/release-notes.md | 8 ++++---- docs/technical-docs.md | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) (limited to 'docs') diff --git a/docs/README.md b/docs/README.md index bdfc5c9d..3112c023 100644 --- a/docs/README.md +++ b/docs/README.md @@ -34,7 +34,7 @@ Have questions? Come [chat on Discord](https://discord.gg/KCJHWhX) with SMAPI de modders! ### For players -* [Modding guides](https://stardewvalleywiki.com/Modding:Index#For_players) +* [Player guide](https://stardewvalleywiki.com/Modding:Player_Guide) ### For modders * [Modding documentation](https://stardewvalleywiki.com/Modding:Index) diff --git a/docs/release-notes.md b/docs/release-notes.md index 93855ba9..8064a34e 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -354,8 +354,8 @@ For players: * Updated mod compatibility list. For modders: -* Added `SDate` utility for in-game date calculations (see [API reference](http://stardewvalleywiki.com/Modding:SMAPI_APIs#Dates)). -* Added support for minimum dependency versions in `manifest.json` (see [API reference](http://stardewvalleywiki.com/Modding:SMAPI_APIs#Manifest)). +* Added `SDate` utility for in-game date calculations (see [API reference](https://stardewvalleywiki.com/Modding:SMAPI_APIs#Dates)). +* Added support for minimum dependency versions in `manifest.json` (see [API reference](https://stardewvalleywiki.com/Modding:SMAPI_APIs#Manifest)). * Added more useful logging when loading mods. * Added a `ModID` property to all mod helpers for extension methods. * Changed `manifest.MinimumApiVersion` from string to `ISemanticVersion`. This shouldn't affect mods unless they referenced that field in code. @@ -387,8 +387,8 @@ For players: * Updated mod compatibility list. For modders: -* You can now add dependencies to `manifest.json` (see [API reference](http://stardewvalleywiki.com/Modding:SMAPI_APIs#Manifest)). -* You can now translate your mod (see [API reference](http://stardewvalleywiki.com/Modding:SMAPI_APIs#Translation)). +* You can now add dependencies to `manifest.json` (see [API reference](https://stardewvalleywiki.com/Modding:SMAPI_APIs#Manifest)). +* You can now translate your mod (see [API reference](https://stardewvalleywiki.com/Modding:SMAPI_APIs#Translation)). * You can now load unpacked `.tbin` files from your mod folder through the content API. * SMAPI now automatically fixes tilesheet references for maps loaded from the mod folder. _When loading a map from the mod folder, SMAPI will automatically use tilesheets relative to the map file if they exists. Otherwise it will default to tilesheets in the game content._ diff --git a/docs/technical-docs.md b/docs/technical-docs.md index 9e1a49e7..52c3f96d 100644 --- a/docs/technical-docs.md +++ b/docs/technical-docs.md @@ -44,7 +44,7 @@ executed. This doesn't work in MonoDevelop on Linux, unfortunately. ### Preparing a release To prepare a crossplatform SMAPI release, you'll need to compile it on two platforms. See -[crossplatforming info](http://stardewvalleywiki.com/Modding:Creating_a_SMAPI_mod#Test_on_all_platforms) +[crossplatforming info](https://stardewvalleywiki.com/Modding:Creating_a_SMAPI_mod#Test_on_all_platforms) on the wiki for the first-time setup. 1. Update the version number in `GlobalAssemblyInfo.cs` and `Constants::Version`. Make sure you use a -- cgit From 009a387526ee10b18d0ed3030d6e8868edf17203 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Tue, 1 May 2018 18:44:39 -0400 Subject: unify SMAPI.AssemblyRewriters and SMAPI.Common projects --- docs/technical-docs.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/technical-docs.md b/docs/technical-docs.md index 52c3f96d..a988eefc 100644 --- a/docs/technical-docs.md +++ b/docs/technical-docs.md @@ -78,8 +78,9 @@ on the wiki for the first-time setup. Mono.Cecil.dll Newtonsoft.Json.dll StardewModdingAPI - StardewModdingAPI.AssemblyRewriters.dll StardewModdingAPI.config.json + StardewModdingAPI.Internal.dll + StardewModdingAPI.metadata.json StardewModdingAPI.exe StardewModdingAPI.pdb StardewModdingAPI.xml @@ -91,8 +92,9 @@ on the wiki for the first-time setup. Mods/* Mono.Cecil.dll Newtonsoft.Json.dll - StardewModdingAPI.AssemblyRewriters.dll StardewModdingAPI.config.json + StardewModdingAPI.Internal.dll + StardewModdingAPI.metadata.json StardewModdingAPI.exe StardewModdingAPI.pdb StardewModdingAPI.xml -- cgit From b1a24452eef782332d699ef8193c01e0da8ffa01 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Tue, 1 May 2018 19:15:56 -0400 Subject: add public platform constant for 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 8064a34e..cde9cbc2 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -11,6 +11,7 @@ * For modders: * Added code analysis to mod build config package to flag common issues as warnings. * Added `Context.IsMultiplayer` and `Context.IsMainPlayer` flags. + * Added `Constants.TargetPlatform` which says whether the game is running on Linux, Mac, or Windows. * Fixed assets loaded by temporary content managers not being editable by mods. * Fixed assets not reloaded consistently when the player switches language. * Fixed console command input not saved to the log. -- cgit From dc47ff15c57b0ba2263ab3b94b49e9906620f648 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Wed, 2 May 2018 17:58:48 -0400 Subject: fix log parser not recognising content packs with no description (#481) --- 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 cde9cbc2..d13d9f8c 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -23,6 +23,9 @@ * Added `player_add name`, which lets you add items to your inventory by name instead of ID. * Fixed `world_settime` sometimes breaking NPC schedules (e.g. so they stay in bed). +* For the log parser: + * Fixed issue parsing content packs with no description. + * For SMAPI developers: * Added more consistent crossplatform handling using a new `EnvironmentUtility`, including MacOS detection. * Added beta update channel to SMAPI, the web API, and home page. -- cgit From 6a6001c7e6a03ff6fb0da992a87c6ef30d6bc952 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Thu, 3 May 2018 00:14:35 -0400 Subject: add semanticVersion.IsPrerelease() --- 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 d13d9f8c..e913618a 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -12,6 +12,7 @@ * Added code analysis to mod build config package to flag common issues as warnings. * Added `Context.IsMultiplayer` and `Context.IsMainPlayer` flags. * Added `Constants.TargetPlatform` which says whether the game is running on Linux, Mac, or Windows. + * Added `semanticVersion.IsPrerelease()` method. * Fixed assets loaded by temporary content managers not being editable by mods. * Fixed assets not reloaded consistently when the player switches language. * Fixed console command input not saved to the log. -- cgit From 4bee6311c4f6bf654d8b9c54a53597347de65c4f Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Thu, 3 May 2018 00:23:26 -0400 Subject: add prompt when in beta channel and a new version is found --- 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 e913618a..551dd1d5 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -3,6 +3,7 @@ * For players: * Updated for Stardew Valley 1.3 (no longer compatible with earlier versions). * Added beta update channel. + * Added prompt when in beta channel and a new version is found. * Added friendly error when game can't start audio. * Added console warning for mods which don't have update checks configured. * Fixed console color scheme on Mac or in PowerShell, configurable via `StardewModdingAPI.config.json`. -- cgit From c8ae8c2b0021401783ac38a80db7e676674f623a Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Fri, 4 May 2018 01:27:21 -0400 Subject: load game synchronously to fix asset loader/editor errors --- 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 551dd1d5..85776a06 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -14,6 +14,7 @@ * Added `Context.IsMultiplayer` and `Context.IsMainPlayer` flags. * Added `Constants.TargetPlatform` which says whether the game is running on Linux, Mac, or Windows. * Added `semanticVersion.IsPrerelease()` method. + * Fixed error if a mod loads a PNG while the game is loading (e.g. custom map tilesheets via `IAssetLoader`). * Fixed assets loaded by temporary content managers not being editable by mods. * Fixed assets not reloaded consistently when the player switches language. * Fixed console command input not saved to the log. -- cgit From 8051862c7bd2fe498657eef4bb102b5ca33390a6 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Fri, 4 May 2018 20:44:20 -0400 Subject: add LocationEvents.ObjectsChanged event --- 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 85776a06..558ed004 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -11,6 +11,7 @@ * For modders: * Added code analysis to mod build config package to flag common issues as warnings. + * Added `LocationEvents.ObjectsChanged`, raised when an object is added/removed in any location. * Added `Context.IsMultiplayer` and `Context.IsMainPlayer` flags. * Added `Constants.TargetPlatform` which says whether the game is running on Linux, Mac, or Windows. * Added `semanticVersion.IsPrerelease()` method. -- cgit From a65a49a62201cc897e73c265a0a808ef0baad002 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Fri, 4 May 2018 20:54:15 -0400 Subject: fix install error on Linux/Mac in some cases --- 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 558ed004..00ed6e9c 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -8,6 +8,7 @@ * Added console warning for mods which don't have update checks configured. * Fixed console color scheme on Mac or in PowerShell, configurable via `StardewModdingAPI.config.json`. * Fixed detection of GOG Galaxy install path in rare cases. + * Fixed install error on Linux/Mac in some cases. * For modders: * Added code analysis to mod build config package to flag common issues as warnings. -- cgit From b8fd3aedfe884741bdda8c68398427f875585456 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sat, 5 May 2018 01:31:06 -0400 Subject: rewrite location events for multiplayer --- docs/release-notes.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index 00ed6e9c..ece388c7 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -12,7 +12,11 @@ * For modders: * Added code analysis to mod build config package to flag common issues as warnings. - * Added `LocationEvents.ObjectsChanged`, raised when an object is added/removed in any location. + * Replaced `LocationEvents` with a more powerful set of events for multiplayer: + * now raised for all locations; + * now includes added/removed building interiors; + * each event now provides a list of added/removed values; + * added buildings-changed event. * Added `Context.IsMultiplayer` and `Context.IsMainPlayer` flags. * Added `Constants.TargetPlatform` which says whether the game is running on Linux, Mac, or Windows. * Added `semanticVersion.IsPrerelease()` method. @@ -21,8 +25,10 @@ * Fixed assets not reloaded consistently when the player switches language. * Fixed console command input not saved to the log. * Fixed `helper.ModRegistry.GetApi` interface validation errors not mentioning which interface caused the issue. - * **Breaking change**: dropped some deprecated APIs. - * **Breaking change**: mods can't intercept chatbox input, including the game's hotkeys to toggle the chatbox (default `T` and `?`). + * **Breaking changes** (see [migration guide](https://stardewvalleywiki.com/Modding:Migrate_to_Stardew_Valley_1.3)): + * dropped some deprecated APIs; + * `LocationEvents` have been rewritten (see above); + * mods can't intercept chatbox input, including the game's hotkeys to toggle the chatbox (default `T` and `?`). * In console commands: * Added `player_add name`, which lets you add items to your inventory by name instead of ID. -- cgit From 30bf40ab2b03600b66091a6cbd61515cf0721844 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sat, 5 May 2018 02:27:43 -0400 Subject: fix input suppression not working in some cases --- 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 ece388c7..d1a78aaa 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -23,6 +23,7 @@ * Fixed error if a mod loads a PNG while the game is loading (e.g. custom map tilesheets via `IAssetLoader`). * Fixed assets loaded by temporary content managers not being editable by mods. * Fixed assets not reloaded consistently when the player switches language. + * Fixed input suppression not working consistently for clicks. * Fixed console command input not saved to the log. * Fixed `helper.ModRegistry.GetApi` interface validation errors not mentioning which interface caused the issue. * **Breaking changes** (see [migration guide](https://stardewvalleywiki.com/Modding:Migrate_to_Stardew_Valley_1.3)): -- cgit From 5121ae7b4a0b97b9e227b67903d0c6c88f3a3982 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sat, 5 May 2018 22:18:52 -0400 Subject: enforce mod ID convention (only alphanumeric, hyphen, dot, and underscore) --- docs/release-notes.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index d1a78aaa..e4ae720d 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -27,9 +27,10 @@ * Fixed console command input not saved to the log. * Fixed `helper.ModRegistry.GetApi` interface validation errors not mentioning which interface caused the issue. * **Breaking changes** (see [migration guide](https://stardewvalleywiki.com/Modding:Migrate_to_Stardew_Valley_1.3)): - * dropped some deprecated APIs; - * `LocationEvents` have been rewritten (see above); - * mods can't intercept chatbox input, including the game's hotkeys to toggle the chatbox (default `T` and `?`). + * Dropped some deprecated APIs. + * `LocationEvents` have been rewritten (see above). + * Mods can't intercept chatbox input, including the game's hotkeys to toggle the chatbox (default `T` and `?`). + * Mod IDs should only contain letters, numbers, hyphens, dots, and underscores (so they can be safely used in many contexts like URLs); this restriction is now enforced. * In console commands: * Added `player_add name`, which lets you add items to your inventory by name instead of ID. -- cgit From 1a626b34a03212809880a5c5d034bf3962d4abd7 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Tue, 8 May 2018 12:55:07 -0400 Subject: improve GitHub support guidelines --- docs/CONTRIBUTING.md | 10 ++++++---- docs/SUPPORT.md | 5 +++++ 2 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 docs/SUPPORT.md (limited to 'docs') diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index 52d47a4b..052cec2c 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -1,16 +1,18 @@ Do you want to... * **Ask for help using SMAPI?** - Please post a message in the [SMAPI support thread](http://community.playstarbound.com/threads/108375), - don't create a GitHub issue. + Please post a message in the [SMAPI support thread](http://community.playstarbound.com/threads/108375) + or [ask on Discord](https://stardewvalleywiki.com/Modding:Community#Discord), don't create a + GitHub issue. * **Report a bug?** Please post a message in the [SMAPI support thread](http://community.playstarbound.com/threads/108375) - instead, unless you're sure it's a bug in SMAPI itself. + or [ask on Discord](https://stardewvalleywiki.com/Modding:Community#Discord) instead, unless + you're sure it's a bug in SMAPI itself. * **Submit a pull request?** Pull requests are welcome! If you're submitting a new feature, it's best to discuss first to make - sure it'll be accepted. Feel free to come chat in [#modding on Discord](https://discord.gg/kH55QXP) + sure it'll be accepted. Feel free to come chat in [#modding on Discord](https://stardewvalleywiki.com/Modding:Community#Discord) or post in the [SMAPI support thread](http://community.playstarbound.com/threads/108375). Documenting your code and using the same formatting conventions is appreciated, but don't worry too diff --git a/docs/SUPPORT.md b/docs/SUPPORT.md new file mode 100644 index 00000000..757aadee --- /dev/null +++ b/docs/SUPPORT.md @@ -0,0 +1,5 @@ +GitHub issues are only used for SMAPI development tasks. + +To get help with SMAPI problems, you can... +* [ask on Discord](https://stardewvalleywiki.com/Modding:Community#Discord); +* or post in the [SMAPI support thread](https://community.playstarbound.com/threads/108375). -- cgit From 324d02233dcb459f95befe1393d08d73766b3ece Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Fri, 11 May 2018 12:59:52 -0400 Subject: rename 'install.exe' to 'install on Windows.exe' to avoid confusion --- 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 e4ae720d..03fec40d 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -9,6 +9,7 @@ * Fixed console color scheme on Mac or in PowerShell, configurable via `StardewModdingAPI.config.json`. * Fixed detection of GOG Galaxy install path in rare cases. * Fixed install error on Linux/Mac in some cases. + * Renamed `install.exe` to `install on Windows.exe` to avoid confusion. * For modders: * Added code analysis to mod build config package to flag common issues as warnings. -- cgit From 59775e99c49790cf6632b0b6514f23c8209bece0 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Fri, 11 May 2018 19:11:31 -0400 Subject: link smapi.io/install to install guide --- 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 03fec40d..cf531c57 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -9,6 +9,7 @@ * Fixed console color scheme on Mac or in PowerShell, configurable via `StardewModdingAPI.config.json`. * Fixed detection of GOG Galaxy install path in rare cases. * Fixed install error on Linux/Mac in some cases. + * Fixed `smapi.io/install` not linking to a useful page. * Renamed `install.exe` to `install on Windows.exe` to avoid confusion. * For modders: -- cgit From ccd09eb9143bee60bfdc4182c3a7505fabddbe48 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sat, 12 May 2018 16:04:18 -0400 Subject: fix world_setseason command not running season change logic --- 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 cf531c57..ff9fcdac 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -10,6 +10,7 @@ * Fixed detection of GOG Galaxy install path in rare cases. * Fixed install error on Linux/Mac in some cases. * Fixed `smapi.io/install` not linking to a useful page. + * Fixed `world_setseason` command not running season-change logic. * Renamed `install.exe` to `install on Windows.exe` to avoid confusion. * For modders: -- cgit From 803a36133dc2e68662b16cea713eaa2ceaf2b924 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sat, 12 May 2018 19:27:23 -0400 Subject: update docs (#253) --- docs/README.md | 12 ++++++++++-- docs/release-notes.md | 1 + 2 files changed, 11 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/README.md b/docs/README.md index 3112c023..e7d6d682 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,6 +1,6 @@ **SMAPI** is an open-source modding API for [Stardew Valley](http://stardewvalley.net/) that lets you play the game with mods. It's safely installed alongside the game's executable, and doesn't -change any of your game files. It serves six main purposes: +change any of your game files. It serves eight main purposes: 1. **Load mods into the game.** _SMAPI loads mods when the game is starting up so they can interact with it. (Code mods aren't @@ -25,10 +25,18 @@ change any of your game files. It serves six main purposes: crashing the game, and makes it possible to troubleshoot errors in the game itself that would otherwise show a generic 'program has stopped working' type of message._ -6. **Provide update checks.** +6. **Provide update checks.** _SMAPI automatically checks for new versions of your installed mods, and notifies you when any are available._ +7. **Provide compatibility checks.** + _SMAPI automatically detects outdated or broken code in mods, and safely disables them before + they cause problems._ + +8. **Back up your save files.** + _SMAPI automatically creates a daily backup of your saves and keeps ten backups, in case + something goes wrong. (Via the bundled SaveBackup mod.)_ + ## Documentation Have questions? Come [chat on Discord](https://discord.gg/KCJHWhX) with SMAPI developers and other modders! diff --git a/docs/release-notes.md b/docs/release-notes.md index ff9fcdac..b531d7ec 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -2,6 +2,7 @@ ## 2.6 beta * For players: * Updated for Stardew Valley 1.3 (no longer compatible with earlier versions). + * Added a bundled save backup mod. * Added beta update channel. * Added prompt when in beta channel and a new version is found. * Added friendly error when game can't start audio. -- cgit From b9036f212e7898f9cd13006024d63aec61d50ed6 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sat, 12 May 2018 22:52:28 -0400 Subject: group mod warnings in console --- 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 b531d7ec..b380f11d 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -7,6 +7,7 @@ * Added prompt when in beta channel and a new version is found. * Added friendly error when game can't start audio. * Added console warning for mods which don't have update checks configured. + * Improved how mod warnings are shown in the console. * Fixed console color scheme on Mac or in PowerShell, configurable via `StardewModdingAPI.config.json`. * Fixed detection of GOG Galaxy install path in rare cases. * Fixed install error on Linux/Mac in some cases. -- cgit From 8e2d8b97f047e6d79a3e424ba0dc611388cb65cd Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Thu, 17 May 2018 19:27:16 -0400 Subject: fix mod update checks failing if a mod only has prerelease versions on GitHub --- 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 b380f11d..118cc441 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -13,6 +13,7 @@ * Fixed install error on Linux/Mac in some cases. * Fixed `smapi.io/install` not linking to a useful page. * Fixed `world_setseason` command not running season-change logic. + * Fixed mod update checks failing if a mod only has prerelease versions on GitHub. * Renamed `install.exe` to `install on Windows.exe` to avoid confusion. * For modders: -- cgit From bd04d46dd1d66b30d4f21575bbbd2e541eabcef3 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Tue, 22 May 2018 22:53:44 -0400 Subject: refactor content API to fix load errors with decentralised cache (#524) --- docs/release-notes.md | 2 ++ 1 file changed, 2 insertions(+) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index 118cc441..b053789d 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -32,6 +32,8 @@ * Fixed input suppression not working consistently for clicks. * Fixed console command input not saved to the log. * Fixed `helper.ModRegistry.GetApi` interface validation errors not mentioning which interface caused the issue. + * Fixed mods able to intercept other mods' assets via the internal asset keys. + * Fixed mods able to indirectly change other mods' data through shared content caches. * **Breaking changes** (see [migration guide](https://stardewvalleywiki.com/Modding:Migrate_to_Stardew_Valley_1.3)): * Dropped some deprecated APIs. * `LocationEvents` have been rewritten (see above). -- cgit From d9c6015163a3a20cc7e84c512efe04b6d210ac65 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Wed, 23 May 2018 00:19:22 -0400 Subject: exclude common non-mod files from mod release zips --- 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 118cc441..86ba5e49 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -32,6 +32,7 @@ * Fixed input suppression not working consistently for clicks. * Fixed console command input not saved to the log. * Fixed `helper.ModRegistry.GetApi` interface validation errors not mentioning which interface caused the issue. + * Fixed some common non-mod build output being included in release zip. * **Breaking changes** (see [migration guide](https://stardewvalleywiki.com/Modding:Migrate_to_Stardew_Valley_1.3)): * Dropped some deprecated APIs. * `LocationEvents` have been rewritten (see above). -- cgit From b942c89dcf5b9e150c9aef51edac79d0890b8b9e Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Wed, 23 May 2018 00:35:43 -0400 Subject: fix launch issue for Linux players with some terminals (#489, #526) --- 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 86ba5e49..24665638 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -14,6 +14,7 @@ * Fixed `smapi.io/install` not linking to a useful page. * Fixed `world_setseason` command not running season-change logic. * Fixed mod update checks failing if a mod only has prerelease versions on GitHub. + * Fixed launch issue for Linux players with some terminals. (Thanks to HanFox and kurumushi!) * Renamed `install.exe` to `install on Windows.exe` to avoid confusion. * For modders: -- cgit From 80ff10c5ccbaec29f35dc720e254218469157b6b Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Thu, 24 May 2018 18:33:56 -0400 Subject: add option to locally suppress update checks for a specific mod --- 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 24665638..e4feffd4 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -34,6 +34,7 @@ * Fixed console command input not saved to the log. * Fixed `helper.ModRegistry.GetApi` interface validation errors not mentioning which interface caused the issue. * Fixed some common non-mod build output being included in release zip. + * Added option to suppress update checks for a specific mod in `StardewModdingAPI.config.json`. * **Breaking changes** (see [migration guide](https://stardewvalleywiki.com/Modding:Migrate_to_Stardew_Valley_1.3)): * Dropped some deprecated APIs. * `LocationEvents` have been rewritten (see above). -- cgit From e5f8b1419afa2ad4bece4fde2286b967476c1031 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Thu, 31 May 2018 22:31:19 -0400 Subject: fix Nexus mod update alerts not showing HTTPs links --- 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 2a7835c0..b2a5b22a 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -15,6 +15,7 @@ * Fixed `world_setseason` command not running season-change logic. * Fixed mod update checks failing if a mod only has prerelease versions on GitHub. * Fixed launch issue for Linux players with some terminals. (Thanks to HanFox and kurumushi!) + * Fixed Nexus mod update alerts not showing HTTPS links. * Renamed `install.exe` to `install on Windows.exe` to avoid confusion. * For modders: -- cgit From a2523696fd539621351c178f6ff57ade19dd3e34 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Fri, 1 Jun 2018 21:40:17 -0400 Subject: fix issue where a mod crashing in CanEdit/CanLoad could cause an abort-retry loop --- 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 b2a5b22a..e93c6bff 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -38,6 +38,7 @@ * Added option to suppress update checks for a specific mod in `StardewModdingAPI.config.json`. * Fixed mods able to intercept other mods' assets via the internal asset keys. * Fixed mods able to indirectly change other mods' data through shared content caches. + * Fixed issue where a mod crashing in `CanEdit` or `CanLoad` could cause an abort-retry loop. * **Breaking changes** (see [migration guide](https://stardewvalleywiki.com/Modding:Migrate_to_Stardew_Valley_1.3)): * Dropped some deprecated APIs. * `LocationEvents` have been rewritten (see above). -- cgit From 33db019c621a3f09fcfd5a79141831a63e14dedd Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sat, 2 Jun 2018 15:48:35 -0400 Subject: update various wiki links --- docs/release-notes.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index e93c6bff..750fa37f 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -261,7 +261,7 @@ * **New features for modders** SMAPI 2.0 adds several features to enable new kinds of mods (see - [API documentation](https://stardewvalleywiki.com/Modding:SMAPI_APIs)). + [API documentation](https://stardewvalleywiki.com/Modding:Modder_Guide/APIs)). The **content API** lets you edit, inject, and reload XNB data loaded by the game at any time. This lets SMAPI mods do anything previously only possible with XNB mods, and enables new mod scenarios not possible with XNB mods (e.g. @@ -384,8 +384,8 @@ For players: * Updated mod compatibility list. For modders: -* Added `SDate` utility for in-game date calculations (see [API reference](https://stardewvalleywiki.com/Modding:SMAPI_APIs#Dates)). -* Added support for minimum dependency versions in `manifest.json` (see [API reference](https://stardewvalleywiki.com/Modding:SMAPI_APIs#Manifest)). +* Added `SDate` utility for in-game date calculations (see [API reference](https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Utilities#Dates)). +* Added support for minimum dependency versions in `manifest.json` (see [API reference](https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Manifest)). * Added more useful logging when loading mods. * Added a `ModID` property to all mod helpers for extension methods. * Changed `manifest.MinimumApiVersion` from string to `ISemanticVersion`. This shouldn't affect mods unless they referenced that field in code. @@ -417,8 +417,8 @@ For players: * Updated mod compatibility list. For modders: -* You can now add dependencies to `manifest.json` (see [API reference](https://stardewvalleywiki.com/Modding:SMAPI_APIs#Manifest)). -* You can now translate your mod (see [API reference](https://stardewvalleywiki.com/Modding:SMAPI_APIs#Translation)). +* You can now add dependencies to `manifest.json` (see [API reference](https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Manifest)). +* You can now translate your mod (see [API reference](https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Translation)). * You can now load unpacked `.tbin` files from your mod folder through the content API. * SMAPI now automatically fixes tilesheet references for maps loaded from the mod folder. _When loading a map from the mod folder, SMAPI will automatically use tilesheets relative to the map file if they exists. Otherwise it will default to tilesheets in the game content._ -- cgit From d41fe6ff88b569f991f219c5f348d3688fba956f Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sat, 2 Jun 2018 16:00:16 -0400 Subject: add input API --- 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 750fa37f..8824c0fb 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -19,6 +19,7 @@ * Renamed `install.exe` to `install on Windows.exe` to avoid confusion. * For modders: + * Added [input API](https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Input) for reading and suppressing keyboard, controller, and mouse input. * Added code analysis to mod build config package to flag common issues as warnings. * Replaced `LocationEvents` with a more powerful set of events for multiplayer: * now raised for all locations; -- cgit From a463a05607c89922af7e908b39aa897b8d23bfbf Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sun, 3 Jun 2018 13:54:26 -0400 Subj