Jesse Plamondon-Willard
615c89bc0b
override content manager ( #173 )
2017-02-24 18:52:53 -05:00
Jesse Plamondon-Willard
6a18dd6fad
merge config files
2017-02-23 22:58:23 -05:00
Jesse Plamondon-Willard
41ee8990f8
write XNA input enums to JSON as strings automatically
...
Mods often reference Json.NET to do this, so this lets many mods remove Json.NET as a dependency.
2017-02-17 11:33:22 -05:00
Jesse Plamondon-Willard
176eddbf7b
make SMAPI core non-static, eliminate direct access between core components
2017-02-16 00:54:41 -05:00
Jesse Plamondon-Willard
548cbcecc4
mark two internal classes internal
2017-02-14 13:07:30 -05:00
Jesse Plamondon-Willard
0441d0843c
add new console command API with backward compatibility ( #199 )
2017-02-13 00:40:33 -05:00
Jesse Plamondon-Willard
d1080a8b2b
move core JSON logic out of mod helper ( #199 )
...
This lets SMAPI parse manifest.json files without a mod helper, so we can pass the mod name into the helper.
2017-02-13 00:13:29 -05:00
Jesse Plamondon-Willard
46b7d7a400
redirect the game's debug messages into trace logs ( #233 )
...
The game writes debug messages directly to the console, which shows up for SMAPI users. This commit redirects direct console messages to a monitor.
2017-02-11 01:15:56 -05:00
Jesse Plamondon-Willard
c357013156
tweak debug build config, update release notes
2017-02-10 19:22:22 -05:00
James Stine
8f678d13c1
Mac and Linux debug run works! 🙃
2017-02-10 19:17:05 -05:00
Jesse Plamondon-Willard
a6977878d5
remove leftover references to Mono.Cecil.Rocks ( #231 )
2017-02-10 02:55:27 -05:00
Jesse Plamondon-Willard
a13003de8b
remove Mono.Cecil.Rocks ( #231 )
...
It's not needed since we're not injecting new instructions, and causes the field rewriters to fail unexpectedly.
2017-02-09 22:38:10 -05:00
Jesse Plamondon-Willard
2b7abc3af5
clean up more obsolete code ( #231 )
2017-02-07 23:34:52 -05:00
Jesse Plamondon-Willard
8efa5f32c1
add reflectionHelper.GetPrivateProperty<T> ( #231 )
2017-02-07 21:07:57 -05:00
Jesse Plamondon-Willard
95a93a05b3
remove oldest deprecated code ( #231 )
...
Since Stardew Valley 1.2 breaks most mods anyway, this commits removes the oldest deprecations and fixes the issues that are easiest for mods to update. See documentation for details.
2017-02-07 20:50:41 -05:00
Jesse Plamondon-Willard
6ee14ecfbf
rewrite mod assembly loading ( #229 )
...
This greatly simplifies mod loading, eliminates the .cache folders by loading assemblies in memory, ensures DLLs are loaded in leaf-to-root order, and reduces log verbosity. These changes should address a range of issues, notably #221 and #226 .
2017-02-02 23:22:54 -05:00
Jesse Plamondon-Willard
ba590b20a6
add public mod registry ( #220 )
2017-01-19 11:07:48 -05:00
Jesse Plamondon-Willard
0c73b02d58
add save events ( #215 )
2017-01-15 18:23:09 -05:00
Jesse Plamondon-Willard
fdae87d340
skip mods known to be incompatible and display error with update links ( #192 )
2016-12-22 12:47:12 -05:00
Jesse Plamondon-Willard
3fd16a65f1
move models into namespace ( #192 )
2016-12-22 12:45:42 -05:00
Jesse Plamondon-Willard
f7eda265d9
track loaded mod instances & manifests via mod registry ( #201 )
2016-12-22 10:48:05 -05:00
Jesse Plamondon-Willard
c257d70575
rename SMAPI config file for consistency ( #192 , #202 )
2016-12-21 13:27:56 -05:00
Jesse Plamondon-Willard
23988a3c33
migrate manifest & version to interfaces with backwards compatibility ( #197 )
2016-12-18 15:37:23 -05:00
Jesse Plamondon-Willard
d9e87399bf
format code ( #193 )
2016-12-18 12:27:44 -05:00
Jesse Plamondon-Willard
c24294c3dd
fix System.Runtime.Caching not available on Mac
2016-12-12 21:43:35 -05:00
Jesse Plamondon-Willard
df7d41fc37
move interfaces into root ( #185 )
2016-12-11 21:03:57 -05:00
Jesse Plamondon-Willard
1fbe6be43d
remove redundant output paths
2016-12-09 18:43:15 -05:00
Jesse Plamondon-Willard
80b6e20841
cache reflection lookups with sliding expiry ( #185 )
2016-12-09 14:15:14 -05:00
Jesse Plamondon-Willard
cd0e5961d4
add reflection API for mods ( #185 )
2016-12-09 12:25:53 -05:00
Jesse Plamondon-Willard
7af722ec1f
rename .targets file to better reflect contents, add to installer project
2016-12-07 23:38:22 -05:00
Jesse Plamondon-Willard
3159436145
reimplement assembly caching ( #187 )
...
This commit ensures DLLs are copied to the cache directory only if they changed, to avoid breaking debugging support unless necessary. To support this change, the assembly hash file has been replaced with a more detailed JSON structure, which is used to determine whether the cache is up-to-date and whether to use the cached or original assembly. Some mods contain multiple DLLs, which must be kept together to prevent assembly resolution issues; to simplify that (and avoid orphaned cache entries), each mod now has its own separate cache.
2016-12-05 23:51:09 -05:00
Jesse Plamondon-Willard
67feb7e9a9
remove Costura assembly weaving ( #166 )
...
This didn't work on Linux or Mac, caused assembly resolution problems when rewritten mods referenced Json.NET, complicated debugging, and wasn't really needed since players use the installer to cleanly add or remove SMAPI.
2016-12-01 01:48:39 -05:00
Jesse Plamondon-Willard
0fcf29d428
fix local deployment on Linux/Mac
2016-11-30 14:04:06 -05:00
Jesse Plamondon-Willard
df8f44c704
Merge branch 'feature/rewrite-mod-assemblies' into develop
2016-11-29 19:27:10 -05:00
Jesse Plamondon-Willard
d5932a0d77
enable local SMAPI deployment on Linux/Mac
2016-11-29 19:25:51 -05:00
Jesse Plamondon-Willard
cc4d3c1cf8
add framework for rewriting incompatible methods ( #166 )
2016-11-29 14:03:14 -05:00
Jesse Plamondon-Willard
5470e95bf5
add separate project to support upcoming IL rewriting ( #166 )
2016-11-29 14:02:59 -05:00
Jesse Plamondon-Willard
b425e32055
move dependencies into targets file for reuse ( #166 )
2016-11-29 12:56:03 -05:00
Jesse Plamondon-Willard
f7b8879011
supplement assembly resolution for Mono ( #166 )
2016-11-27 15:56:47 -05:00
Jesse Plamondon-Willard
b06aed66c4
rewrite type references in mod assemblies to match target platform ( #166 )
2016-11-26 16:12:21 -05:00
Jesse Plamondon-Willard
4df1999855
move cache struct into its own file ( #166 )
2016-11-26 16:10:41 -05:00
Jesse Plamondon-Willard
1de8dc1b0f
pass target platform to assembly rewriter for later use ( #166 )
2016-11-26 16:07:21 -05:00
Jesse Plamondon-Willard
517a9d82fc
preprocess mods through Mono.Cecil to allow rewriting later ( #166 )
2016-11-25 23:41:19 -05:00
Jesse Plamondon-Willard
9bf1ad71b4
intercept event handler exceptions ( #179 )
2016-11-21 22:09:02 -05:00
Jesse Plamondon-Willard
1a5eb12cc6
restore obsolete SPlayer for backwards compatibility, mark deprecated
2016-11-19 18:56:35 -05:00
Jesse Plamondon-Willard
59c35862ca
add global assembly info
2016-11-17 22:23:45 -05:00
Jesse Plamondon-Willard
eb39f3d5ea
use interface for IModHelper
2016-11-16 17:52:49 -05:00
Jesse Plamondon-Willard
e2aa78fda4
add new logging framework ( #168 )
2016-11-14 17:42:27 -05:00
Jesse Plamondon-Willard
be9d624112
split mod registry out of deprecation manager for reuse ( #168 )
2016-11-13 12:17:05 -05:00
Jesse Plamondon-Willard
f9983a4bca
fix Windows-only build configuration not properly marked as such
2016-11-09 12:21:44 -05:00