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
5083b65c87
fix readme headings for mod build package
2022-05-23 14:33:01 -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
0e4aa65708
fix crossplatform build scripts
2022-05-01 17:33:41 -04:00
Jesse Plamondon-Willard
f507bd0f9c
set SMAPI version from main build script
2022-04-29 22:55:12 -04:00
Jesse Plamondon-Willard
6a43171e92
re-enable Pintail by default
2022-04-26 23:38:16 -04:00
Jesse Plamondon-Willard
9939061615
fix typo
2022-04-19 19:26:12 -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
43c875c4c2
prepare mod build package 4.0.1 for release
2022-04-14 19:21:18 -04:00
Jesse Plamondon-Willard
3a777a511d
update release notes
2022-04-14 18:15:02 -04:00
Jesse Plamondon-Willard
eb125f1994
fix assembly version conflict error in mod build package
2022-04-14 18:14:08 -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
238045ba9c
reverse mod build package migration to .NET 5 ( #837 )
...
The migrated package didn't work consistently in VIsual Studio, so this suppresses nullable annotations in .NET Standard instead.
2022-04-07 22:19:48 -04:00
Jesse Plamondon-Willard
6b05296e71
migrate mod build package to .NET 5 to allow full nullable annotations ( #837 )
2022-04-07 01:51:50 -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
b4e979cc99
fix all warnings to simplify migration to nullable annotations ( #837 )
2022-04-06 22:46:19 -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
Jesse Plamondon-Willard
3c29ae6a1e
add Constants.ContentPath
2022-02-19 11:26:24 -05:00
Jesse Plamondon-Willard
2d52681b10
add Constants.GamePath & deprecate Constants.ExecutionPath
2022-02-19 11:07:26 -05:00
Jesse Plamondon-Willard
a2190df08c
add AssetName to encapsulate asset name handling ( #766 )
2022-02-18 15:39:49 -05:00
Jesse Plamondon-Willard
065859408f
Fix support for custom locale codes in asset names ( #766 )
2022-02-18 12:31:14 -05:00
Jesse Plamondon-Willard
b0cc403098
add data-* attributes to log parser for external tools
2022-02-12 12:07:13 -05:00
Jesse Plamondon-Willard
4a1174cd50
fix thumbstick input overrides
2022-02-11 20:56:25 -05:00
Jesse Plamondon-Willard
25a9f54ecf
fix manifest JSON schema's update key pattern
2022-01-29 20:43:45 -05:00
Jesse Plamondon-Willard
3431f486a2
normalize season names in SDate constructor
2022-01-29 18:15:42 -05:00
Jesse Plamondon-Willard
6dd4a8a12b
fix item repo's handling of Journal Scraps and Secret Notes
2022-01-29 17:46:45 -05:00
Jesse Plamondon-Willard
53ed5f4faa
update release notes
2022-01-24 21:55:30 -05:00
Jesse Plamondon-Willard
dbed0289d7
prepare for release
2022-01-16 22:57:40 -05:00
Jesse Plamondon-Willard
95f4513727
rewrite fallback assembly resolution
...
* SMAPI now also searches the root game folder for unresolved assemblies. This fixes an issue resolving the game DLL when the player's DLL version doesn't match the one used to compile SMAPI.
* The DLL search folders are now scanned once and cached to avoid repeated iterations on startup.
2022-01-16 22:56:48 -05:00
Jesse Plamondon-Willard
85f8631bee
fix typo
2022-01-16 18:54:00 -05:00
Jesse Plamondon-Willard
ad0e6b315d
prepare for release
2022-01-16 17:13:28 -05:00
Jesse Plamondon-Willard
230f119205
merge field rewriters to reduce rewrite iterations
2022-01-16 17:08:08 -05:00
Jesse Plamondon-Willard
00bd9d19a1
bump min game version to 1.5.6
...
That avoids error reports on mods when pirated players have an older 1.5.5 build that break mods, and ensures that the new build number shown in the SMAPI log is available.
2022-01-16 00:15:03 -05:00