Commit Graph

58 Commits

Author SHA1 Message Date
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
Jesse Plamondon-Willard 0dcbf90ec2 restore obsolete interfaces for backwards compatibility with EntoFramework 2016-11-09 11:43:41 -05:00
Jesse Plamondon-Willard 69ffdb91b2 simplify debugging 2016-11-09 11:11:40 -05:00
Jesse Plamondon-Willard 956e477edb add developer mode which shows all deprecation warnings, update release process (#165) 2016-11-06 11:15:46 -05:00
Jesse Plamondon-Willard f9aa76e41f use more nuanced deprecation warnings (#165) 2016-11-06 10:30:25 -05:00
Jesse Plamondon-Willard 4b52245ad1 restore removed extensions for backwards compatibility 2016-11-05 16:22:11 -04:00
Jesse Plamondon-Willard 8d8b640779 add deprecation warnings (#165) 2016-11-05 16:20:31 -04:00
Jesse Plamondon-Willard e092417b9e add new config system, mark previous methods obsolete (#159) 2016-11-05 01:46:52 -04:00
Jesse Plamondon-Willard 4c7329d75e make log writer internal (not meant for use outside SMAPI) 2016-11-04 20:01:45 -04:00
Jesse Plamondon-Willard 78e8a6a4a0 remove extensions from public interface, refactor & document 2016-11-04 18:24:10 -04:00
Jesse Plamondon-Willard 69bb8178d2 normalise inconsistent line endings 2016-11-04 00:10:10 -04:00
Jesse Plamondon-Willard 0b5a05ba91 add crossplatform installer (#155) 2016-11-03 21:03:03 -04:00
Jesse Plamondon-Willard 59c900a9ac add update check (#154) 2016-11-03 00:43:41 -04:00
Jesse Plamondon-Willard 4cda3ec5bf remove undocumented and unused APIs 2016-10-31 19:28:59 -04:00
Jesse Plamondon-Willard b6568f8d9d remove unused deserialisation logic per discussion 2016-10-31 17:15:27 -04:00
Jesse Plamondon-Willard d9adaf7386 split combined class files per .NET conventions 2016-10-31 12:05:02 -04:00
Jesse Plamondon-Willard 1c15738233 remove disabled and unfinished code 2016-10-31 11:50:31 -04:00
Jesse Plamondon-Willard 0340a3daab fix code being optimised in debug mode 2016-10-31 11:34:41 -04:00
Jesse Plamondon-Willard 58c026285a add System.Numerics to mod package for Mac (#126) 2016-10-27 14:32:28 -04:00
Jesse Plamondon-Willard f44eb6d66f only hook into WinForms on Windows for Mac compatibility (#126) 2016-10-27 13:40:42 -04:00
Jesse Plamondon-Willard 2ea2068486 include pdb for release build 2016-10-27 12:23:00 -04:00