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
42a797a012
don't raise events that have no listeners
...
This mainly avoids allocating event arg objects unnecessarily.
2022-05-11 19:56:45 -04:00
Jesse Plamondon-Willard
077c897d53
replace event.HasListeners() with property
2022-05-11 19:29:57 -04:00
Jesse Plamondon-Willard
05b39b7cd9
cache verbose flag in main update method
2022-05-11 19:26:28 -04:00
Jesse Plamondon-Willard
cae1063ad9
move filtering only used in one place out of managed event
2022-05-11 19:15:22 -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
e14916f962
add error code to SContentLoadException
2022-05-11 17:12:58 -04:00
Jesse Plamondon-Willard
8c8ec6a457
remove unused IsPerformanceCritical event field
2022-05-10 23:05:24 -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
f8f8b23799
use records for asset edit operations
2022-05-08 18:50:07 -04:00
Jesse Plamondon-Willard
5f2e83969a
only build AssetWithoutLocale when it's used
2022-05-08 18:37:23 -04:00
Jesse Plamondon-Willard
e2a3fc4f99
avoid [Obsolete] without message for clarity
2022-05-08 18:28: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
b924fbae4b
fix default settings
2022-05-08 12:24:52 -04:00
Jesse Plamondon-Willard
37617e9c26
tweak default settings logic
2022-05-07 23:34:30 -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
ecdda9b077
update filenames for case-insensitive path rewrite
2022-05-07 23:13:59 -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
f973b4c518
move CreateFakeContentPack into its own method
2022-05-07 21:18:09 -04:00
Jesse Plamondon-Willard
b45f50b57e
prepare for release
2022-05-06 19:40:13 -04:00
Jesse Plamondon-Willard
09c52fb3f5
cache legacy asset operations by target type
2022-05-06 19:39:51 -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
ea9324586d
fix warnings for model-binding hack
2022-05-01 17:31:54 -04:00
Jesse Plamondon-Willard
db43fc22a4
update Pintail to fix proxy type name conflict edge case
2022-05-01 01:34:44 -04:00
Jesse Plamondon-Willard
7bb7a7522f
omit stack trace for deprecated code not called directly by the mod
2022-04-30 12:57:28 -04:00
Jesse Plamondon-Willard
ed337ab964
fix model binding for mod update-check API
2022-04-30 12:33:33 -04:00
Jesse Plamondon-Willard
d7d8cdaa5a
add backwards compatibility for loading content assets with .xnb extension
2022-04-27 20:09:43 -04:00
Jesse Plamondon-Willard
8425c82033
fix locale change for legacy IAssetEditor/Loader implementations
2022-04-26 23:54:48 -04:00
Jesse Plamondon-Willard
6a43171e92
re-enable Pintail by default
2022-04-26 23:38:16 -04:00
Jesse Plamondon-Willard
55c254deb8
fix null reference error when implicitly converting null translation to string
2022-04-25 00:15:31 -04:00
Jesse Plamondon-Willard
4a14792e4d
fix ReplaceWith not working for legacy IAssetEditor implementations
2022-04-23 16:47:24 -04:00
Jesse Plamondon-Willard
4fa414c2bd
set page/perPage URL args together
...
Since there's no UI to set the page size, this makes the argument more discoverable.
2022-04-21 20:59:35 -04:00
Jesse Plamondon-Willard
c055056460
update Pintail to fix out parameter issue
2022-04-19 22:11:43 -04:00
Jesse Plamondon-Willard
f0645c5993
fix null reference when adding new layers in a map patch
2022-04-19 22:08:34 -04:00
Jesse Plamondon-Willard
d4d378bff3
don't add default pagination values to log URL
2022-04-19 19:25:10 -04:00
Jesse Plamondon-Willard
5c819662f8
suppress some duplicate deprecation notices
2022-04-19 19:14:53 -04:00
Jesse Plamondon-Willard
e6c696fa6b
add immutable stack trace to cache stack info
2022-04-19 19:11:58 -04:00
Jesse Plamondon-Willard
889004f1eb
move deprecation code into namespace
2022-04-19 19:03:47 -04:00
Jesse Plamondon-Willard
a8a4d314df
simplify ExtendMap usage
2022-04-17 22:12:17 -04:00
Jesse Plamondon-Willard
b25e30a896
fix model binding error
2022-04-17 01:07:18 -04:00
Jesse Plamondon-Willard
7b79703de6
tweak code style
2022-04-16 21:07:34 -04:00
Jesse Plamondon-Willard
36af2cf8ac
Merge pull request #841 from KhloeLeclair/safe-regex
...
[Website] Improve regex safety for the log viewer
2022-04-16 20:15:24 -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
0a69cb4bf7
allow switching between Pintail & original API proxying
2022-04-16 19:15:50 -04:00
Jesse Plamondon-Willard
7dec519234
fix broken unit tests
2022-04-16 18:29:52 -04:00
Jesse Plamondon-Willard
20224d293d
add unit test for proxied out parameters
2022-04-16 16:59:53 -04:00
Jesse Plamondon-Willard
559d763756
remove unused subfolder manifest scanning
...
This isn't needed anymore with the current is-mod-folder scanning.
2022-04-16 14:34:52 -04:00
Jesse Plamondon-Willard
f93c41f55c
make manifest.json filename case-insensitive
2022-04-16 14:28:20 -04:00
Jesse Plamondon-Willard
95d7ba8935
move case-insensitive path lookup into toolkit for reuse
2022-04-16 14:07:09 -04:00
Khloe Leclair
446205c7bd
Add regex error checking, and display a message to the user when their regular expression has a syntax error. Additionally, use a non-capturing group to surround the user input when `Match whole word` is enabled in case alternates are being used. Finally, add a safety check to highlighting to avoid an infinite loop when zero-length matches happen.
2022-04-16 13:55:54 -04:00
Jesse Plamondon-Willard
1974324c43
make EntryDll manifest field case-insensitive
2022-04-16 13:41:37 -04:00
Jesse Plamondon-Willard
c3f6983009
Merge pull request #840 from KhloeLeclair/log-cleanup
...
[Website] Cleanup log filtering a bit more, save state to URL
2022-04-16 12:59:21 -04:00
Jesse Plamondon-Willard
64b9da560f
minor refactoring & code style
2022-04-16 12:56:38 -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
2dc20be5f7
use specified nullability in reflection API ( #837 )
2022-04-16 11:10:13 -04:00
Jesse Plamondon-Willard
c0d0ad0282
show simplified stack trace for deprecation notices
2022-04-14 23:55:08 -04:00
Jesse Plamondon-Willard
fd136d34c5
track full mod & stack metadata in queued deprecation warnings
2022-04-14 23:11:41 -04:00
Jesse Plamondon-Willard
1a3befa93e
track mod metadata reference in APIs for upcoming deprecation changes
2022-04-14 23:00:30 -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
eb125f1994
fix assembly version conflict error in mod build package
2022-04-14 18:14:08 -04:00
Jesse Plamondon-Willard
4de18b516f
fix nullable annotation ( #837 )
2022-04-14 18:13:27 -04:00
Jesse Plamondon-Willard
66272cbe46
fix false-positive deprecation notice ( #837 )
2022-04-13 23:40:47 -04:00
Jesse Plamondon-Willard
ff1b4cd323
remove reflection no longer needed after migration to MonoGame
2022-04-13 22:19:45 -04:00
Jesse Plamondon-Willard
3078ae2a8e
fix typos in recent changes ( #837 )
2022-04-13 22:17:26 -04:00
Jesse Plamondon-Willard
2765e3f9b3
enable nullable annotations in bundled mods ( #837 )
2022-04-13 22:06:07 -04:00
Jesse Plamondon-Willard
aa7b0caf46
fix helpers not disposed if the mod is finalized
2022-04-13 21:08:07 -04:00
Jesse Plamondon-Willard
7c411b29bb
fix spelling warnings
2022-04-13 21:07:58 -04:00
Jesse Plamondon-Willard
4adf861113
enable nullable annotations in the rest of SMAPI core ( #837 )
2022-04-13 21:07:43 -04:00
Jesse Plamondon-Willard
5b24fff477
remove unused code ( #837 )
2022-04-13 20:41:34 -04:00
Jesse Plamondon-Willard
f39da383a1
enable nullable annotations in SMAPI where no logic changes are needed ( #837 )
2022-04-13 20:24:14 -04:00
Jesse Plamondon-Willard
6e9e8aef1e
enable nullable annotations in SMAPI where no changes are needed ( #837 )
2022-04-13 19:00:24 -04:00
Jesse Plamondon-Willard
40aebb74c6
enable nullable annotations in installer ( #837 )
2022-04-12 21:01:13 -04:00
Jesse Plamondon-Willard
5f7a92a745
enable nullable annotations in unit tests ( #837 )
2022-04-12 20:52:01 -04:00
Jesse Plamondon-Willard
c3851ae2e6
enable nullable annotations in shared projects ( #837 )
2022-04-12 19:56:52 -04:00
Jesse Plamondon-Willard
4e0e928c94
remove `#nullable disable` in mod build package ( #837 )
...
Since it targets .NET Standard 2.0, they're not available anyway.
2022-04-12 19:19:37 -04:00
Jesse Plamondon-Willard
0b48c1748b
enable nullable annotations in the web project & related code ( #837 )
2022-04-12 19:15:39 -04:00
Khloe Leclair
4f54f517ce
Use an optional section for rendering quick navigation links on the mod viewer, containing them within the #sidebar element.
2022-04-12 13:50:51 -04:00
Khloe Leclair
0b92275649
Make horizontal scrolling with the quick navigation links less bad. Probably need to move them into the actual sidebar element though for proper sorting.
2022-04-12 02:18:51 -04:00
Khloe Leclair
a21d24f4b7
Replace bitfields for state and just use comma-separated strings. Add a note that numbers may be inaccurate if filtering is used when sections are collapsed. Add quick navigation links.
2022-04-12 02:07:21 -04:00
Jesse Plamondon-Willard
9fbed0fa1f
Merge pull request #839 from nuztalgia/develop
...
Ignore dot-prefixed files when scanning for mods
2022-04-11 23:20:20 -04:00
Jesse Plamondon-Willard
1e61309d3d
add IAssetDataForMap.ExtendMap
2022-04-11 22:56:14 -04:00
Khloe Leclair
94b8507a47
Add more documentation strings. Use shallow equality checking to decide whether to include a filter in the URL or not to avoid unnecessarily large URLs.
2022-04-11 15:01:59 -04:00
Khloe Leclair
0babc3e446
Cleanup log filtering a bit, with a clearer string for the number of total messages. Additionally, save and restore filter state from the URL for better linking.
2022-04-11 14:29:33 -04:00
Nuz / Lovegood
25e0b4b8ad
Make IsRelevant return false for any files starting with "."
2022-04-10 23:34:50 -07:00
Nuz / Lovegood
2a05e28782
Revert "Make ModScanner ignore .gitignore files."
...
This reverts commit c92efc65ce
.
2022-04-10 23:33:32 -07:00
Jesse Plamondon-Willard
761f2d952b
enable nullable annotations in mod data models ( #837 )
2022-04-10 21:34:18 -04:00
Nuz / Lovegood
c92efc65ce
Make ModScanner ignore .gitignore files.
...
This is helpful for cases like this: https://cdn.discordapp.com/attachments/156109690059751424/962879339739885578/unknown.png
2022-04-10 18:20:11 -07:00
Jesse Plamondon-Willard
0336fb2524
add temporary cachebusting queries for log parser
2022-04-09 17:04:39 -04:00
Jesse Plamondon-Willard
376dadd341
fix misplaced attribute ( #837 )
2022-04-09 16:58:52 -04:00
Jesse Plamondon-Willard
0971a10ea4
Merge pull request #838 from KhloeLeclair/clientlog
...
Improve log parser
2022-04-09 16:52:57 -04:00
Jesse Plamondon-Willard
ae7567674d
restore data element unloading
2022-04-09 16:05:34 -04:00
Jesse Plamondon-Willard
07d07c79e0
load raw data from JSON per discussion
...
This avoids loading the data synchronously as a JavaScript snippet, which improves performance when opening the page.
2022-04-09 16:01:32 -04:00
Jesse Plamondon-Willard
26d29a1070
minor refactoring
2022-04-09 15:44:17 -04:00
Jesse Plamondon-Willard
650af7ef1a
enable nullable annotations in log parser ( #837 )
2022-04-09 13:59:56 -04:00
Jesse Plamondon-Willard
ad4d065fe7
simplify code with generic Enum.GetValues
2022-04-09 13:10:54 -04:00
Jesse Plamondon-Willard
ccf760452d
pass data directly to script instead of serializing & deserializing it
2022-04-09 13:08:38 -04:00
Jesse Plamondon-Willard
260dbbf205
standardize quote style
2022-04-09 13:02:25 -04:00
Jesse Plamondon-Willard
b3519f3cc1
rename 'data' to 'state' for upcoming changes
2022-04-09 12:59:21 -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
283e7d1132
Merge pull request #836 from Tondorian/feature/CommandLineArgs
...
Add command-line arguments to toggle developer mode
# Conflicts:
# src/SMAPI/Program.cs
2022-04-09 11:56:48 -04:00
Jesse Plamondon-Willard
6161cc9129
fix config.user.json overriding new CLI arguments
2022-04-09 11:54:23 -04:00
Jesse Plamondon-Willard
092f0aa4ea
simplify format for new CLI arguments
2022-04-09 11:52:20 -04:00
Jesse Plamondon-Willard
5ae87fbc01
fix deprecation warning when a mod uses LoadFromModFile
2022-04-09 11:42:49 -04:00
Khloe Leclair
631d0375c3
Simplify visible section checking by abusing Vue behavior, since the proper way is being buggy.
2022-04-08 15:26:35 -04:00
Khloe Leclair
0beff189d1
Implement client-side log rendering, better filtering, and pagination to improve performance and enhance the user experience with using the log parser.
2022-04-08 14:59:52 -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
df955c0d3e
enable asset caching for GameContentHelper
2022-04-07 18:46:29 -04:00
Jesse Plamondon-Willard
d706a25053
enable nullable annotations for most of the SMAPI toolkit ( #837 )
2022-04-07 02:33:23 -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
e58e8a2283
enable nullable annotations for manifests ( #837 )
2022-04-07 01:38:02 -04:00
Jesse Plamondon-Willard
ab6cf45b03
enable nullable annotations for semantic versions ( #837 )
2022-04-07 00:56:00 -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
2e7c233f6c
enable nullable annotations by default ( #837 )
...
This adds `#nullable disable` to all existing code (except where null is impossible like enum files), so it can be migrated incrementally.
2022-04-06 21:48:55 -04:00
Jesse Plamondon-Willard
215a863945
drop update checks for Stardew64Installer
2022-04-06 18:34:58 -04:00
Jesse Plamondon-Willard
077d8e4f40
remove some unused/redundant code
2022-04-06 18:25:00 -04:00
Jesse Plamondon-Willard
0539bb8f37
simplify with newer pattern features
2022-04-06 18:25:00 -04:00
Jesse Plamondon-Willard
b6c8cfc28b
simplify 'is not' patterns
2022-04-06 18:24:59 -04:00
Jesse Plamondon-Willard
a593eda30f
use target-typed new
2022-04-06 18:24:59 -04:00
Jesse Plamondon-Willard
29f909a8d5
fix asset name truncation when loading XNB mod file without file extension
2022-04-06 00:37:10 -04:00
Jesse Plamondon-Willard
a20413664b
split mod content load method, make error-handling more consistent
2022-04-03 21:17:40 -04:00
Jesse Plamondon-Willard
c9af1c452a
fix incorrect deprecation warnings for helper.Content
2022-04-03 15:44:26 -04:00
Jesse Plamondon-Willard
627472c506
add temporary hack to fix compatibility between old & new APIs for some mods
2022-04-02 21:43:56 -04:00
Jesse Plamondon-Willard
546b58778c
switch to 'processing tick' for tick caching
...
This is incremented on each low-level tick (whether it's a game update, synchronized async operation, etc). That mainly avoids the cache persisting across the entire save loading process while it's being synchronized.
2022-04-02 19:13:27 -04:00
Jesse Plamondon-Willard
f58cdde981
fix errors due to null asset names in asset propagation
2022-04-02 15:12:05 -04:00
Jesse Plamondon-Willard
6292b21f22
fix tick cache using game ticks instead of SMAPI ticks
...
The game ticks aren't incremented consistently in some cases (e.g. while loading a save), which leads to the cache values being kept too long.
2022-04-02 14:59:09 -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
bac1f34f65
fix local file path asset name parsing locale codes in rare cases ( #766 )
...
Mod file paths can't be localized through the content pipeline. Normally the locale would be ignored anyway due to the file extension, but it'd be incorrectly parsed if the file name ended with a locale and no file extension (like "assets/example.fr-FR").
2022-04-01 22:59:50 -04:00
Patrick Müssig
61d857c41f
Added support for `--developer-mode true|false`
...
Minimal changes required to enable/disable developer mode via command
line argument. This commit does not include any error handling for
invalid values how ever they will be ignored and not crash the game.
2022-04-02 04:08:49 +02:00
Jesse Plamondon-Willard
6ad8ca932e
keep old XNB file extension behavior for backwards compatibility ( #766 )
2022-04-01 00:33:35 -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
d864f2ed77
add asset type to AssetRequested event ( #766 )
2022-03-27 12:16:28 -04:00
Jesse Plamondon-Willard
03efea2667
add LocaleChanged content event ( #766 )
2022-03-26 19:08:25 -04:00
Jesse Plamondon-Willard
eebd8d54dc
expand obsolete attributes ( #766 )
2022-03-26 18:34:49 -04:00
Jesse Plamondon-Willard
5683bc9c7d
give Content Patcher internals access
...
This makes some of its low-level logic safer by avoiding unvalidated reflection.
2022-03-26 17:46:10 -04:00
Jesse Plamondon-Willard
bacb851d7b
add IContentHelper.ParseAssetName ( #766 )
2022-03-26 17:44:48 -04:00
Jesse Plamondon-Willard
3a9ea66a20
update asset propagation for new content API ( #766 )
2022-03-26 17:37:01 -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
e40907ab8b
add NameWithoutLocale fields ( #766 )
2022-03-26 01:19:44 -04:00
Jesse Plamondon-Willard
4da38e1317
add missing [Obsolete] tag
2022-03-26 00:52:04 -04:00
Jesse Plamondon-Willard
3707f481a5
extend load conflict resolution into load priority ( #766 )
2022-03-25 23:53:30 -04:00
Jesse Plamondon-Willard
021891ff0c
add load conflict resolution option ( #766 )
2022-03-25 22:49:14 -04:00
Jesse Plamondon-Willard
0e0c135604
add content pack label to more logs ( #766 )
2022-03-25 22:42:22 -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
b0011bf65c
use immutable set for invalidated asset names ( #766 )
2022-03-25 01:02:26 -04:00
Jesse Plamondon-Willard
b77eab6e0a
add AssetReady content event ( #766 )
2022-03-25 00:35:31 -04:00
Jesse Plamondon-Willard
2b0ce2bb4d
add AssetInvalidated content event ( #766 )
2022-03-24 22:55:55 -04:00
Jesse Plamondon-Willard
6a43e6dfad
fix unneeded cloning ( #766 )
2022-03-23 01:16:42 -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
d3fbdf484a
reduce duplicated doc blocks
2022-03-22 20:46:21 -04:00
Jesse Plamondon-Willard
a42926868a
encapsulate editor/loader operations ( #766 )
...
These will be used by the new content API, and allow handling the old one the same way.
2022-03-20 12:53:27 -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
a4bd5cccd5
Merge pull request #832 from Ryhon0/develop
...
Make SKIP_TERMINAL default to false if not set
2022-03-06 18:37:13 -05:00
Jesse Plamondon-Willard
debe177241
handle vanilla assets in DoesAssetExist ( #766 )
2022-03-05 18:12:00 -05:00
Jesse Plamondon-Willard
b68b301b71
add DoesAssetExist to support the upcoming Stardew Valley 1.6 ( #766 )
2022-03-05 15:38:05 -05:00
Jesse Plamondon-Willard
b0d8b23c2c
migrate more internal code to IAssetName ( #766 )
2022-03-05 15:31:06 -05:00
Jesse Plamondon-Willard
e82406a845
fix error loading locale code cache when a mod adds custom languages ( #766 )
2022-03-05 15:30:51 -05:00
Jesse Plamondon-Willard
2f279708b3
fix regression with mod XNB files in the content pipeline ( #766 )
2022-03-05 15:30:17 -05:00
Ryhon
bb31f09977
Command line options
2022-03-05 20:40:01 +01:00
Ryhon
30d63f0a11
Make SKIP_TERMINAL default to false if not set
2022-03-04 19:20:39 +01:00
Jesse Plamondon-Willard
8429485e69
update schema for Content Patcher 1.25.0
2022-02-27 20:40:49 -05:00
Jesse Plamondon-Willard
0f987c0578
restore InterfaceProxyFactory to encapsulate Pintail ( #830 )
2022-02-25 23:40:52 -05:00
Jesse Plamondon-Willard
512c2b9fb7
Merge pull request #830 from Shockah/api-proxy-tryproxy-object
...
API proxy improvements
2022-02-25 23:21:45 -05:00
Shockah
5e3237d000
update Pintail
2022-02-24 12:58:16 +01:00
Jesse Plamondon-Willard
6fc3be52bc
avoid SetData when premultiplying texture with no semi-transparency
2022-02-22 17:38:59 -05:00
Shockah
28f78d1a29
update Pintail
2022-02-20 00:38:42 +01:00
Shockah
e9321ba6f9
change proxy prepare behavior
2022-02-19 22:08:05 +01:00
Shockah
e24c0db7b1
update Pintail
2022-02-19 21:27:13 +01: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
28d7372880
tweak types in content coordinator
2022-02-18 12:13:53 -05:00
Shockah
5706d91dd9
update Pintail
2022-02-18 12:16:02 +01:00
Shockah
e41dbd49ca
update Pintail
2022-02-17 19:59:36 +01:00
Shockah
8ecca56816
update Pintail
2022-02-16 21:10:23 +01:00
Shockah
ba42bb97d1
move proxying to a separate NuGet library
2022-02-16 19:08:40 +01:00
Jesse Plamondon-Willard
315926de25
flip slashes in asset propagator to match MonoGame
...
The game now uses MonoGame on all platforms.
2022-02-13 00:43:35 -05:00
Jesse Plamondon-Willard
f53ace6235
simplify and standardize key comparison in asset propagator
2022-02-13 00:41:44 -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
4da9e954df
use Array.Empty to avoid unneeded array allocations
2022-02-11 00:49:49 -05:00
Jesse Plamondon-Willard
233a7d57e6
Merge pull request #829 from SpriteMaster-Ext/perf-patchimage
...
Simplify and optimize PatchImage
2022-02-11 00:43:52 -05:00
Jesse Plamondon-Willard
3064b58719
add basic unit tests for API interface proxying
2022-02-10 22:03:09 -05:00
Shockah
a54d58d064
add TryProxy for any objects
2022-02-10 16:26:43 +01:00
Shockah
467375a7a3
add reverse API proxying (and unproxying)
2022-02-10 14:15:06 +01:00
Shockah
0725945217
add proxy instance caching
2022-02-10 11:43:35 +01:00
Shockah
61415e41eb
use Call/Callvirt depending on target
2022-02-10 11:21:41 +01:00
Shockah
9557908425
fix code style warning
2022-02-10 10:18:31 +01:00
Shockah
55723f91d2
implement `out` parameter proxying
2022-02-10 10:08:14 +01:00
Ameisen
51b7b9fe06
Cleanup and performance/allocation improvement for AssetDataForImage.PatchImage
2022-02-09 18:00:15 -06:00
Shockah
f920ed59d6
add WIP proxying of methods with `out` parameters
2022-02-09 23:26:26 +01:00
Shockah
d9599a3a0a
simplifies proxy method IL a bit
2022-02-09 21:10:20 +01:00
Shockah
354527bb81
stop proxying nulls
2022-02-09 21:02:41 +01:00
Shockah
688fccc024
add missing documentation
2022-02-09 20:40:54 +01:00
Shockah
ee78ab3c37
fix stack overflow for proxied types referencing each other
2022-02-09 20:38:14 +01:00
Shockah
43ad219b75
support proxying return values in API proxies
2022-02-09 20:07:01 +01:00
Shockah
5a92b0cd35
uses `proxy.Name` instead of `target.Name` (which makes more sense in this context)
2022-02-08 22:36:34 +01:00
Shockah
5b5304403b
oops old code
2022-02-08 22:19:16 +01:00
Shockah
3135925982
allow generic methods and any assignable types in API proxies
2022-02-08 21:54:53 +01:00
Shockah
0ff82c38e7
allow default interface method implementations in API proxies
2022-02-08 20:02:13 +01: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
6b9c9be2b6
move item repo secret note + flavored object logic into methods
2022-01-29 17:33:12 -05:00
Jesse Plamondon-Willard
bca9e599cc
remove unneeded dictionary patch
...
The dictionary errors were improved in .NET 5, so they include the key automatically.
2022-01-29 17:27:42 -05:00
ChulkyBow
d8bbf3c441
Update Ukrainian translation for SMAPI
2022-01-18 16:25:36 +02: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
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
1ea8d75235
improve console interception logic
2022-01-16 14:05:02 -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
Jesse Plamondon-Willard
7e8d11ca3a
add Xbox app log instructions, redesign UI to fit
2022-01-15 23:41:01 -05:00
Jesse Plamondon-Willard
6f05580191
add detection for Xbox app game folders
2022-01-15 20:39:32 -05:00
Jesse Plamondon-Willard
d029dd652f
fix JSON validator not recognizing manifest update subkeys
2022-01-15 18:04:33 -05:00
Jesse Plamondon-Willard
4cffd6c2c0
add save recovery for missing custom farm type
2022-01-15 17:21:11 -05:00
Jesse Plamondon-Willard
8ebb9ce8d4
fix backspaces ignored on Linux/macOS in SDV 1.5.5+
2022-01-15 13:27:23 -05:00
Jesse Plamondon-Willard
a8985e122e
fix suppressed console output not suppressing newlines
2022-01-15 12:21:22 -05:00
Jesse Plamondon-Willard
e30e427628
add download option to log view
2022-01-02 19:59:38 -05:00
Jesse Plamondon-Willard
1fab386ab1
add Ukrainian translations ( #823 )
2022-01-02 13:57:14 -05:00
Jesse Plamondon-Willard
92f35837ad
fix syntax, update release notes
2022-01-02 13:48:53 -05:00
Jesse Plamondon-Willard
adb3926609
Merge pull request #820 from bruce2409/update-launcher-sh
...
Added shell shebang to MacOS Launcher code
2022-01-02 13:45:38 -05:00
Jesse Plamondon-Willard
aad77242f0
fix uninstaller not removing StardewModdingAPI.deps.json file
2021-12-23 23:08:49 -05:00
Jesse Plamondon-Willard
02831503dd
remove content pack from compatibility blacklist
...
It's no longer broken with the auto-fixes in the upcoming SMAPI update.
2021-12-23 18:59:14 -05:00
bruce2409
5712116879
Added shell shebang to MacOS Launcher code
2021-12-22 17:41:11 +00:00
Jesse Plamondon-Willard
52f4df3f30
add new game build number to the SMAPI log
2021-12-21 20:33:08 -05:00
Jesse Plamondon-Willard
0d7d447600
auto-fix maps broken due to missing vanilla tilesheet
2021-12-20 22:18:09 -05:00
Jesse Plamondon-Willard
95f658014e
simplify running SMAPI without a terminal on Linux/macOS
2021-12-18 23:07:33 -05:00
Jesse Plamondon-Willard
beb1acd4f8
update Steam error message
2021-12-18 22:21:31 -05:00
Jesse Plamondon-Willard
e0abac8dfb
update compatibility list
2021-12-18 00:48:55 -05:00
Jesse Plamondon-Willard
aa5d1d4a20
update compatibility list
2021-12-09 19:57:57 -05:00
Jesse Plamondon-Willard
4e17716fa2
fix log parser handling when multiple mods have the exact same name
2021-12-09 19:56:46 -05:00
Jesse Plamondon-Willard
5b5dd47c22
prepare for release
2021-12-05 19:10:28 -05:00
Jesse Plamondon-Willard
f4ca7dd228
add Windows build process to fix application icon until .NET bug is fixed
2021-12-05 18:55:10 -05:00
Jesse Plamondon-Willard
c05fdf65cf
mark UI Info Suite incompatible
2021-12-05 18:39:08 -05:00
Jesse Plamondon-Willard
98d01d522d
improve error when installer is pointed at a compatibility-branch game folder
2021-12-05 00:51:24 -05:00
Jesse Plamondon-Willard
cb9d6ae5ad
improve error when installer is pointed at a SDV 1.5.4 folder
2021-12-04 23:47:27 -05:00
Jesse Plamondon-Willard
0f37c0f92d
update JSON validator for Content Patcher's new .fnt support
2021-12-04 22:41:59 -05:00
Jesse Plamondon-Willard
cc35dbdb3d
fix self-contained install on Windows
2021-12-04 20:25:53 -05:00
Jesse Plamondon-Willard
c80d07fddf
migrate SMAPI to self-contained install
...
This removes the need to have .NET 5 installed to run SMAPI. Note that there's no need to actually bundle the .NET files, since they're already bundled into the game folder.
2021-12-04 15:55:29 -05:00
Jesse Plamondon-Willard
711e17a4f9
suppress non-applicable code warnings
2021-12-04 15:55:16 -05:00
Jesse Plamondon-Willard
1d7340f598
fix code warnings
2021-12-04 15:43:01 -05:00
Jesse Plamondon-Willard
6df3b0b814
update for Stardew Valley 1.5.5 hotfix
2021-12-03 19:53:22 -05:00
Jesse Plamondon-Willard
e4416925f9
add build script to set the release version
2021-12-03 02:16:27 -05:00
Jesse Plamondon-Willard
181508084b
make installer self-contained
...
This lets players run the installer without manually installing .NET 5, which was causing a lot of support requests.
2021-12-03 00:26:46 -05:00
Jesse Plamondon-Willard
bf5a9b8762
switch to scripted release package process
2021-12-02 20:48:00 -05:00
Jesse Plamondon-Willard
25ebcc1ea7
prepare for release
2021-11-30 21:54:29 -05:00
Jesse Plamondon-Willard
05b06e7a9f
improve installer's .NET 5 validation to explain how to fix it
2021-11-30 21:53:09 -05:00
Jesse Plamondon-Willard
f5a0dd1578
fix error running installer from folder paths containing parentheses
2021-11-30 20:18:17 -05:00
Jesse Plamondon-Willard
b294ac1203
prepare for release
2021-11-30 17:13:53 -05:00
Jesse Plamondon-Willard
d1d09ae1df
add support for loading BmFont files for custom languages
2021-11-28 00:01:52 -05:00
Jesse Plamondon-Willard
f87e65caf5
update 'set_farm_type' console command for custom farm types
2021-11-28 00:01:52 -05:00
Jesse Plamondon-Willard
fe675540b5
add map overlay patches
2021-11-28 00:01:51 -05:00
Jesse Plamondon-Willard
cb378a1c55
keep installer window open if it crashes
2021-11-28 00:01:51 -05:00
Jesse Plamondon-Willard
51c6ef9443
fix .NET 5 precheck passing if player has .NET Core installed
2021-11-28 00:01:51 -05:00
Jesse Plamondon-Willard
32ccc8e872
fix installer file precheck failing for some users
2021-11-28 00:01:51 -05:00
Jesse Plamondon-Willard
b791e854c1
fix installer precheck errors showing quotes, tweak readability
2021-11-28 00:01:50 -05:00
Jesse Plamondon-Willard
65046c3c40
remove outdated note in config.json
2021-11-28 00:01:50 -05:00
Jesse Plamondon-Willard
f3626992cf
remove walls_and_floors asset propagation
...
This is now added as a regular map tilesheet, so it'll be handled by the tilesheet asset propagation.
2021-11-28 00:01:50 -05:00
Jesse Plamondon-Willard
50a492f6e9
bump upcoming mod build package version
2021-11-28 00:01:49 -05:00
Jesse Plamondon-Willard
3beb2a9940
remove package workaround no longer needed with MonoGame
2021-11-28 00:01:49 -05:00
Jesse Plamondon-Willard
f5807e22be
add BundleExtraAssemblies package option for new .NET 5 reference model
2021-11-28 00:01:49 -05:00
Jesse Plamondon-Willard
bf10aeef0a
remove GameFramework build property from package
2021-11-28 00:01:48 -05:00
Jesse Plamondon-Willard
4a26c96fbe
remove GameExecutableName build property from package
2021-11-28 00:01:48 -05:00
Jesse Plamondon-Willard
217cc7af21
add IgnoreModFilePaths option to package
2021-11-28 00:01:48 -05:00
Jesse Plamondon-Willard
60c0e4fc31
ignore reference assemblies and *.deps.json when building a mod
...
These aren't useful for mods since they aren't the entry app.
2021-11-28 00:01:47 -05:00
Jesse Plamondon-Willard
32dcdfe18c
tweak assembly ignore logic in mod build package
2021-11-28 00:01:47 -05:00
Jesse Plamondon-Willard
25384ce6bc
update for custom languages
2021-11-28 00:01:47 -05:00
Jesse Plamondon-Willard
1ab0420b6d
update compatibility list
2021-11-28 00:01:46 -05:00
Jesse Plamondon-Willard
294f2a311e
fix error resolving native DLLs like libSkiaSharp
2021-11-28 00:01:46 -05:00
Jesse Plamondon-Willard
89c98223eb
remove path-too-long exception handling
...
The path length limit no longer applies in .NET 5.
2021-11-28 00:01:46 -05:00
Jesse Plamondon-Willard
b349e956c6
remove handling for exception no longer thrown by the game
2021-11-28 00:01:46 -05:00
Jesse Plamondon-Willard
3c6549db3e
remove reference no longer needed in .NET 5
2021-11-28 00:01:45 -05:00
Jesse Plamondon-Willard
33c7a0392c
remove libgdiplus workaround on macOS
...
This is no longer needed after the .NET 5 migration.
2021-11-28 00:01:45 -05:00
Jesse Plamondon-Willard
0f508c755a
reorganize install script
...
This fixes an issue where Steam messes with the PATH, so dotnet isn't available until the terminal window is opened.
2021-11-28 00:01:45 -05:00
Jesse Plamondon-Willard
7c5c63d684
fix SMAPI not working on macOS, improve installer validation
2021-11-28 00:01:44 -05:00
Jesse Plamondon-Willard
f6479ea2b6
restructure installer for .NET 5 changes
2021-11-28 00:01:44 -05:00
Jesse Plamondon-Willard
ce80c68135
fix segfault on Linux/macOS after .NET 5 update
...
Harmony doesn't seem to support tiered compilation on Linux/macOS, but the vanilla game disables that too anyway. The bundled runtimeconfig files match the ones used by the vanilla game. Thanks to 0x0ade for identifying the cause!
2021-11-28 00:01:44 -05:00
Jesse Plamondon-Willard
897edd7ff0
update for accessibility change in Stardew Valley 1.5.5
2021-11-28 00:01:43 -05:00
Jesse Plamondon-Willard
e10a7858a0
fix error reading console title on Linux with .NET 5
...
The console title is now write-only on Linux.
2021-11-28 00:01:43 -05:00