Commit Graph

93 Commits

Author SHA1 Message Date
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