Commit Graph

1096 Commits

Author SHA1 Message Date
Jesse Plamondon-Willard d813c4e2c8
fix log parsing for invalid content packs (#860) 2022-08-08 22:27:07 -04:00
Jesse Plamondon-Willard e376386d25
set error code on exit (#868) 2022-08-08 21:43:46 -04:00
Jesse Plamondon-Willard 352fa4759e
fix error when a mod is both duplicated and missing the DLL 2022-08-08 19:54:07 -04:00
Jesse Plamondon-Willard 1749a82947
update release notes 2022-08-08 19:50:29 -04:00
Jesse Plamondon-Willard 3da5917eed
update Pintail 2022-07-17 11:29:50 -04:00
Jesse Plamondon-Willard 1b7dfb28f2
update release notes 2022-07-17 11:07:53 -04:00
Jesse Plamondon-Willard 830d2c57cc
update log parser for new update alert format 2022-07-09 01:06:32 -04:00
Jesse Plamondon-Willard 521129ad21
raise deprecation levels 2022-07-09 00:53:11 -04:00
Jesse Plamondon-Willard 9435711216
update release notes 2022-07-08 19:40:54 -04:00
Jesse Plamondon-Willard 1b25710cf2
fix installer partly applying color theme before it's selected 2022-07-08 17:48:01 -04:00
Jesse Plamondon-Willard dcb3a97727
add log parser warning for PyTK compatibility mode 2022-07-08 17:44:27 -04:00
Jesse Plamondon-Willard bcb9e25d86
prepare for release 2022-07-06 22:25:45 -04:00
Jesse Plamondon-Willard 2347644a1f
update compatibility list for broken CFAutomate unofficial update 2022-07-06 18:36:29 -04:00
Jesse Plamondon-Willard 60b4a10d0f
update release notes 2022-07-05 23:30:09 -04:00
Jesse Plamondon-Willard 454f3a45ba
fix trace logs not tracking reloaded map tilesheets as asset propagation 2022-07-05 23:19:53 -04:00
Jesse Plamondon-Willard 42099f24ee
improve log parser's 'suggested fixes' styles 2022-07-05 22:36:02 -04:00
Jesse Plamondon-Willard 0ba4fd1785
detect missing/outdated Error Handler for 'suggested fixes' section 2022-07-05 22:09:46 -04:00
Jesse Plamondon-Willard f3a4b316b7
fix PyTK compatibility mode not handling some edge cases 2022-07-05 19:01:28 -04:00
Jesse Plamondon-Willard 6d11c41fac
migrate update checks to FluentHttpClient
WebClient isn't needed for compatibility with macOS after the .NET 5 update in Stardew Valley 1.5.5, and causes noticeable lag for some players even when running on a background thread.
2022-06-28 18:17:27 -04:00
Jesse Plamondon-Willard 5e1212e99a
update schema for Content Patcher 1.27.0 2022-06-28 01:13:11 -04:00
Jesse Plamondon-Willard 525ca7c9c9
fix config.user.json overrides no longer applied 2022-06-24 02:06:25 -04:00
Jesse Plamondon-Willard be086cf005
avoid unneeded overhead of ConcurrentQueue 2022-06-22 01:53:37 -04:00
Jesse Plamondon-Willard c91fbc82f8
deprecate support for updating ancient versions of SMAPI 2022-06-20 18:02:41 -04:00
Jesse Plamondon-Willard e0ef8a20a5
fix mod count in log parser metadata 2022-06-19 17:21:53 -04:00
Jesse Plamondon-Willard 011aa4c9d0
prepare for release 2022-06-16 22:14:09 -04:00
Jesse Plamondon-Willard 525351e905
fix case-sensitive mod ID check 2022-06-16 19:21:38 -04:00
Jesse Plamondon-Willard e8bcbf7e5a
update compatibility list 2022-06-12 20:29:56 -04:00
Jesse Plamondon-Willard 11a497c1f6
update Pintail 2022-06-10 00:05:23 -04:00
Jesse Plamondon-Willard 0bb9fc4293
update Newtonsoft.Json 2022-06-10 00:05:22 -04:00
Jesse Plamondon-Willard 62328e4384
tweak new code, update release notes 2022-06-10 00:04:26 -04:00
Jesse Plamondon-Willard 2134cef74f
link to SMAPI 3.15 release highlights 2022-06-10 00:04:24 -04:00
Jesse Plamondon-Willard b6a8dcdd46
update to Harmony 2.2.1 2022-06-10 00:04:24 -04:00
Jesse Plamondon-Willard db578c389e
drop support for pre-Pintail proxying 2022-06-10 00:04:23 -04:00
Jesse Plamondon-Willard 769475166a
enable raw image loading by default, rename setting 2022-06-10 00:04:23 -04:00
Jesse Plamondon-Willard 4708385f69
add IRawTextureData asset type 2022-06-10 00:04:23 -04:00
Jesse Plamondon-Willard a546fd113f
add experimental image load rewrite 2022-06-10 00:04:22 -04:00
Jesse Plamondon-Willard cb6fcb0450
rework VerboseLogging option to allow enabling for specific mods 2022-06-10 00:04:22 -04:00
Jesse Plamondon-Willard 8713914a1a
avoid NPC pathfinding rebuild if reachable locations didn't change 2022-06-08 23:33:09 -04:00
Jesse Plamondon-Willard 1cded44f7a
prepare for release 2022-06-01 19:58:35 -04:00
Jesse Plamondon-Willard 9992915f56
replace MemoryCache with custom cache
This was causing significant frame stutters for some players since the migration to .NET 5 in Stardew Valley 1.5.5.
2022-05-31 18:32:23 -04:00
Jesse Plamondon-Willard 9ef3f7edb1
remove `System.Reflection.Metadata.MetadataUpdater.IsSupported: false` in runtime config
This doesn't seem to be needed, and was probably added as part of the early experimenting with self-contained .NET.
2022-05-31 18:25:12 -04:00
Jesse Plamondon-Willard e4cd7c8eb0
prepare for release 2022-05-27 18:08:30 -04:00
Jesse Plamondon-Willard 064346594d
fix split-screen error when a mod provides a localized asset in one screen but not another 2022-05-24 18:12:06 -04:00
Jesse Plamondon-Willard 336cc1cc0f
prepare for release 2022-05-22 14:38:33 -04:00
Jesse Plamondon-Willard 7e7ac459a5
fix error when mod localizes an unlocalizable asset and then stops doing so 2022-05-21 18:06:23 -04:00
Jesse Plamondon-Willard 7332879351
defer asset reload during propagation when possible 2022-05-19 21:04:32 -04:00
Jesse Plamondon-Willard 3a161a30a7
update for the new CurseForge API 2022-05-18 19:23:26 -04:00
Jesse Plamondon-Willard cd843dc10b
prepare for release 2022-05-15 19:14:28 -04:00
Jesse Plamondon-Willard 048f41244f
reduce performance impact of deprecation warnings
Creating a stack is *very* slow, so it should be avoided if possible until after the duplicate-warning check.
2022-05-15 01:54:01 -04:00
Jesse Plamondon-Willard 3a4758dfa6
remove warning for mods which use `dynamic` 2022-05-14 13:32:13 -04:00
Jesse Plamondon-Willard e943ae8413
prepare for release 2022-05-12 00:21:46 -04:00
Jesse Plamondon-Willard 5a7422b312
log time change in verbose mode 2022-05-11 22:32:33 -04:00
Jesse Plamondon-Willard bbe5983acd
rewrite asset operations to reduce allocations
• When raising AssetRequested, SMAPI now creates a single event args model and reuses it for each handler.
• There's now a single AssetOperationGroup per asset, which tracks the loaders/editors registered by every mod for that asset.
• The operation group's loader/editor lists are now used directly instead of querying them.
2022-05-11 21:36:45 -04:00
Jesse Plamondon-Willard 45f6743034
optimize raising events for the most common cases 2022-05-11 17:59:44 -04:00
Jesse Plamondon-Willard d097825c84
fix error when mod loads XNB mod file without extension 2022-05-11 17:25:06 -04:00
Jesse Plamondon-Willard eb01aa275b
fix asset propagation for player sprite recolor masks 2022-05-10 18:51:37 -04:00
Jesse Plamondon-Willard 7a91cf1cd8
update schema for Content Patcher 1.26.0 2022-05-09 00:18:37 -04:00
Jesse Plamondon-Willard cbe8b597cb
prepare for release 2022-05-08 20:11:02 -04:00
Jesse Plamondon-Willard 26f95bca63
optimize case where there's no legacy IAssetLoader/IAssetEditor instances 2022-05-08 18:22:35 -04:00
Jesse Plamondon-Willard e286e5591b
enable case-insensitive file paths by default for Android/Linux players 2022-05-07 23:26:34 -04:00
Jesse Plamondon-Willard 3db0353126
simplify and rewrite case-insensitive file path feature 2022-05-07 23:12:33 -04:00
Jesse Plamondon-Willard d4ff9f3f5c
log fake content packs created by mods 2022-05-07 21:53:18 -04:00
Jesse Plamondon-Willard 709638f197
fix assets loaded through fake content pack using parent mod's path info 2022-05-07 21:21:02 -04:00
Jesse Plamondon-Willard b45f50b57e
prepare for release 2022-05-06 19:40:13 -04:00
Jesse Plamondon-Willard a969828e93
cache asset operation instances created legacy interceptors 2022-05-06 18:26:35 -04:00
Jesse Plamondon-Willard b834ed7ef5
fix errors reading empty JSON files 2022-05-06 18:06:47 -04:00
Jesse Plamondon-Willard 87d5288287
fix content managers' LoadBaseString not recognizing localized mod assets 2022-05-06 18:05:40 -04:00
Jesse Plamondon-Willard 295ad29b8d
remove aggressive memory optimizations option 2022-05-04 21:02:41 -04:00
Jesse Plamondon-Willard c1342bd4cd
disable case-insensitive paths by default pending performance rework 2022-05-04 20:35:08 -04:00
Jesse Plamondon-Willard 42bf82d870
update compatibility list 2022-05-01 22:46:56 -04:00
Jesse Plamondon-Willard f78093bdb5
prepare for release 2022-05-01 17:39:57 -04:00
Jesse Plamondon-Willard 6a43171e92
re-enable Pintail by default 2022-04-26 23:38:16 -04:00
Jesse Plamondon-Willard d486d940ba
temporarily disable Pintail by default pending out parameter fix 2022-04-16 19:17:16 -04:00
Jesse Plamondon-Willard e7fd95aafd
update release notes 2022-04-16 13:04:16 -04:00
Jesse Plamondon-Willard 9ba0670407
fix Nexus API key needed to launch web project locally 2022-04-16 11:21:44 -04:00
Jesse Plamondon-Willard c0d0ad0282
show simplified stack trace for deprecation notices 2022-04-14 23:55:08 -04:00
Jesse Plamondon-Willard 3a777a511d
update release notes 2022-04-14 18:15:02 -04:00
Jesse Plamondon-Willard 045e4ddf2d
update release notes (#837) 2022-04-13 22:58:47 -04:00
Jesse Plamondon-Willard 1e61309d3d
add IAssetDataForMap.ExtendMap 2022-04-11 22:56:14 -04:00
Jesse Plamondon-Willard 85c769d2a2
update release notes 2022-04-09 16:57:41 -04:00
Jesse Plamondon-Willard 288ef5dc07
add environment variable form of new CLI args, update docs 2022-04-09 12:03:30 -04:00
Jesse Plamondon-Willard 3f9b412bed
expand & reorganize 3.14.0 release notes 2022-04-07 00:26:28 -04:00
Jesse Plamondon-Willard d1a7194bf6
allow null values in ISemanticVersion compare methods (#837) 2022-04-06 23:47:12 -04:00
Jesse Plamondon-Willard 215a863945
drop update checks for Stardew64Installer 2022-04-06 18:34:58 -04:00
Jesse Plamondon-Willard 4e2d7f2550
make mod file paths case-insensitive in all SMAPI APIs 2022-04-01 23:42:37 -04:00
Jesse Plamondon-Willard 1d3c99cc25
split helper.Content API into game/mod content APIs 2022-03-27 13:42:14 -04:00
Jesse Plamondon-Willard bacb851d7b
add IContentHelper.ParseAssetName (#766) 2022-03-26 17:44:48 -04:00
Jesse Plamondon-Willard 8d70415376
add deprecation notices for SMAPI 4.0.0 (#766) 2022-03-26 15:02:11 -04:00
Jesse Plamondon-Willard 4c64f9f644
rewrite content loading to allow handling locale variants (#766, #786, #812)
The game's content pipeline automatically loads localized variants if present. For example, it will try to load "Maps/cave.fr-FR", then "Maps/cave_international", then "Maps/cave". The old content API obfuscates this logic and treats them as interchangeable, which causes edge cases like bundle corruption (#812). This commit rewrites the loading logic to match the game logic when using the new content events, while maintaining the legacy behavior for the old IAssetLoader/IAssetEditor interfaces that'll be removed in SMAPI 4.0.0.
2022-03-26 14:07:16 -04:00
Jesse Plamondon-Willard ad8912047b
add asset edit priority (#766) 2022-03-26 01:43:40 -04:00
Jesse Plamondon-Willard 021891ff0c
add load conflict resolution option (#766) 2022-03-25 22:49:14 -04:00
Jesse Plamondon-Willard 9025b0dcc5
fix asset load conflict always showing multiple-mod form 2022-03-25 22:16:49 -04:00
Jesse Plamondon-Willard e1fc566e0a
add content pack labels (#766) 2022-03-25 21:46:37 -04:00
Jesse Plamondon-Willard 2b0ce2bb4d
add AssetInvalidated content event (#766) 2022-03-24 22:55:55 -04:00
Jesse Plamondon-Willard 584725bb8e
add initial AssetRequested content event (#766) 2022-03-23 01:06:11 -04:00
Jesse Plamondon-Willard b07d2340a9
encapsulate & cache asset operation groups (#766)
This is needed for the upcoming Stardew Valley 1.6 to avoid duplicate checks between DoesAssetExist and Load calls, and to make sure the answer doesn't change between them.
2022-03-22 23:00:18 -04:00
Jesse Plamondon-Willard d96cec88e4
fix set_farm_type not updating warps 2022-03-10 23:24:01 -05:00
Jesse Plamondon-Willard 2216e37726
rework launch script argument parsing (#832)
This commit...

* replaces the internal `--no-reopen-terminal` arg with a documented `--use-current-shell` arg that works on Linux too;
* replaces the new SKIP_TERMINAL environment variable with the existing SMAPI_NO_TERMINAL one;
* moves argument parsing out of the 'initial setup' section (so it's easier for players to edit if needed);
* simplfies argument parsing (no need to support short opt names or add arguments for the default behavior);
* fixes arguments not parsed after the first unrecognized argument, so `--unknown --no-terminal` would still open a terminal.
2022-03-06 19:55:32 -05:00
Jesse Plamondon-Willard 8429485e69
update schema for Content Patcher 1.25.0 2022-02-27 20:40:49 -05:00
Jesse Plamondon-Willard f36b4e06ef
update release notes 2022-02-25 23:50:52 -05:00