Jesse Plamondon-Willard
85ed488090
merge CIL finders & rewriters into one interface ( #254 )
2017-03-26 19:01:35 -04:00
Jesse Plamondon-Willard
104aa31412
let players override SMAPI incompatible-code detection if needed
2017-03-14 20:48:02 -04:00
Jesse Plamondon-Willard
307304a03e
revert all projects except installer to .NET Framework 4.5
...
This caused obscure invalid-IL crashes when compiled through MonoDevelop on Linux.
2017-03-14 18:16:44 -04:00
Jesse Plamondon-Willard
6f37e43a9b
use default C# version instead of specifying version
2017-03-14 15:18:57 -04:00
Jesse Plamondon-Willard
da630efc1d
downgrade to .NET Framework 4.0 for better compatibility on Windows 7–8.1
2017-03-14 14:15:50 -04:00
Jesse Plamondon-Willard
183fb9ff6e
remove unused IConfigFile ( #238 )
2017-03-12 20:12:47 -04:00
Jesse Plamondon-Willard
6d2d90b768
add logic to detect incompatible mod instructions & reject mod load ( #247 )
2017-03-12 01:31:15 -05:00
Jesse Plamondon-Willard
e3522edddd
extend base content helper to support null content ( #173 )
2017-03-10 12:00:11 -05:00
Jesse Plamondon-Willard
ff39e9b171
move generic content properties & methods into separate interface ( #173 )
2017-03-10 11:05:17 -05:00
Jesse Plamondon-Willard
b2e88bccf6
add dictionary/image content helpers for more intuitive usage ( #173 )
2017-03-08 15:25:30 -05:00
Jesse Plamondon-Willard
4991a25d46
add content language changed event ( #243 )
2017-03-03 20:57:52 -05:00
Jesse Plamondon-Willard
043508ed42
add texture patching to content events ( #173 )
2017-03-03 20:22:30 -05:00
Jesse Plamondon-Willard
6f07801b04
only use WMI on Windows
2017-03-02 22:03:23 -05:00
Jesse Plamondon-Willard
5cdf75b463
show OS caption (like "Windows 10") instead of internal version when available
2017-03-01 19:32:14 -05:00
Jesse Plamondon-Willard
9c53a254d5
add prototype content event + helper to manipulate XNB data ( #173 )
2017-02-25 15:22:45 -05:00
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