Commit Graph

3308 Commits

Author SHA1 Message Date
Jesse Plamondon-Willard 014014ca0f premultiply alpha when loading PNGs to avoid transparency issues (#257) 2017-04-29 19:51:47 -04:00
Jesse Plamondon-Willard 9b615fadaa add initial content API (#257) 2017-04-29 14:13:55 -04:00
Jesse Plamondon-Willard 6b9372237c fix errors in the game's update causing the game to freeze until the player presses a key in the SMAPI console 2017-04-29 12:23:38 -04:00
Jesse Plamondon-Willard 9fecaa7989 make mod helpers disposable (#257) 2017-04-29 01:30:30 -04:00
Jesse Plamondon-Willard ee5351c38e detect broken ObjectInformation.xnb data 2017-04-28 00:58:54 -04:00
Jesse Plamondon-Willard 40f174b22d simplify exception summary code 2017-04-27 15:46:19 -04:00
Jesse Plamondon-Willard 0cf15d36d9 revamp 'exit immediately' to abort ongoing SMAPI tasks 2017-04-26 18:25:59 -04:00
Jesse Plamondon-Willard 971bfd32d2 detect exceptions logged directly to the console and log them as errors 2017-04-26 16:22:41 -04:00
Jesse Plamondon-Willard afc8ae69fe No longer suppress console output from the log file
Console messages appear in the console (in developer mode only), but weren't saved to the log file based on the argument that they weren't relevant. However, that also suppresses the game's load-game errors in Stardew Valley 1.2, which makes troubleshooting save issues more complicated. To avoid any such issues in the future, they're now always logged to the file. If you need to log a message that isn't shown to the user, use System.Diagnostics.Debug instead.
2017-04-26 16:21:03 -04:00
Jesse Plamondon-Willard 4ef957c191 optimise console interception for the way Stardew Valley logs messages 2017-04-26 16:04:20 -04:00
Jesse Plamondon-Willard e7606884ad handle edge case in JSON file read/write code 2017-04-26 14:40:55 -04:00
Jesse Plamondon-Willard 89221b8b2d add editorconfig, minor style fixes 2017-04-26 14:38:47 -04:00
Jesse Plamondon-Willard fee89a99da remove new manifest field for minimum game version (#264)
This was added to support parallel releases for SDV 1.11 + 1.2-beta, but SDV 1.2 is now out of beta. Mods should specify the minimum SMAPI version instead if needed.
2017-04-24 12:39:06 -04:00
Jesse Plamondon-Willard 4e7733ba2d update for SDV 1.2 non-beta release 2017-04-24 12:36:20 -04:00
Jesse Plamondon-Willard 1de8895642 fixed `Constants.SaveFolderName` not set for a new game until the save is created (#261) 2017-04-23 23:58:08 -04:00
Jesse Plamondon-Willard e3219bd969 dispose resources on Windows Form exit (#268) 2017-04-23 23:10:52 -04:00
Jesse Plamondon-Willard a9c220c0fe minor cleanup 2017-04-23 23:00:51 -04:00
Jesse Plamondon-Willard 8ec607ba3c ensure SMAPI resources are disposed on exit (#268) 2017-04-23 23:00:13 -04:00
Jesse Plamondon-Willard 07197fac9d add support for non-melee weapons to TrainerMod (#259) 2017-04-23 22:46:14 -04:00
Jesse Plamondon-Willard c1926f263c add world_setyear command to TrainerMod 2017-04-23 22:13:49 -04:00
Jesse Plamondon-Willard 085ae07251 add string overloads for version methods (#263) 2017-04-23 22:04:56 -04:00
Jesse Plamondon-Willard 5ff3184c30 add version.IsBetween method (#263) 2017-04-23 21:59:54 -04:00
Jesse Plamondon-Willard 01917e70a2 fix rare issue where installer crashes trying to delete a bundled mod from %appdata% (#266) 2017-04-23 21:55:01 -04:00
Jesse Plamondon-Willard 86ef70feec revamp startup process (#265)
This revamps SMAPI's startup process to simplify mod development by ensuring that core components are ready by the time mods are loaded (which is also needed for the upcoming content API), and eliminate or reduce SEHExceptions some players experience.
2017-04-23 21:51:49 -04:00
Jesse Plamondon-Willard 5f595d8a46 let mods specify a minimum game version in their manifest.json (#264) 2017-04-23 20:34:47 -04:00
Jesse Plamondon-Willard 6f43a3dae5 unify SMAPI versions for SDV 1.11 and 1.2 using compile switches where needed (#264) 2017-04-23 20:27:55 -04:00
Jesse Plamondon-Willard ceabb05a84 Merge branch for Stardew Valley 1.2 beta into develop
# Conflicts:
#	src/StardewModdingAPI/Framework/SGame.cs
2017-04-23 19:56:07 -04:00
Jesse Plamondon-Willard a35fe47447 fix monitor.ExitGameImmediately not working correctly 2017-04-23 19:21:48 -04:00
Jesse Plamondon-Willard 489cacca5e minor cleanup 2017-04-23 19:12:48 -04:00
Jesse Plamondon-Willard bcaf5b21c1 remove Initialize/LoadContent overrides & deprecate related events (#265) 2017-04-23 18:57:43 -04:00
Jesse Plamondon-Willard 7f8d738e86 tweak installer to suggest common fix for file permission issues 2017-04-23 00:03:12 -04:00
Jesse Plamondon-Willard 4f87a2b478 fix mouse-changed event never updating prior mouse position 2017-04-22 23:59:38 -04:00
Jesse Plamondon-Willard 780c3335e8 rewrite references to Game1.currentMinigame broken by SDV 1.2 2017-04-05 15:00:14 -04:00
Jesse Plamondon-Willard 37d5390ed0 unbackport for SDV 1.2 branch (#258) 2017-04-05 15:00:14 -04:00
Jesse Plamondon-Willard 4675da0600 add --log-path argument to specify SMAPI log path during testing 2017-04-01 16:08:31 -04:00
Jesse Plamondon-Willard c023118356 always show friendly game version 2017-03-30 20:21:15 -04:00
Jesse Plamondon-Willard b4b4689f00 remove old error logs when installing a new version to avoid confusion 2017-03-30 19:48:01 -04:00
Jesse Plamondon-Willard 7175e9f8ee add upper version check (#258) 2017-03-30 19:43:10 -04:00
Jesse Plamondon-Willard df1e748629 backport SMAPI 1.9 to Stardew Valley 1.11 (#258) 2017-03-30 18:59:01 -04:00
Jesse Plamondon-Willard 04cae4ef46 fix SMAPI not recognising Mod instances that don't subclass Mod directly (#252) 2017-03-26 20:15:48 -04:00
Jesse Plamondon-Willard 3530f6f67c rewrite ItemStackChange references to correct namespace (#254) 2017-03-26 20:09:46 -04:00
Jesse Plamondon-Willard 5c253b7bae add type reference rewriter (#254) 2017-03-26 20:08:26 -04:00
Jesse Plamondon-Willard 911957d582 fix type finder not matching generic type parameters (#254) 2017-03-26 19:21:24 -04:00
Jesse Plamondon-Willard 8bf3ef118a add support for rewriting method definitions (#254) 2017-03-26 19:17:48 -04:00
Jesse Plamondon-Willard 85ed488090 merge CIL finders & rewriters into one interface (#254) 2017-03-26 19:01:35 -04:00
Jesse Plamondon-Willard 23443721cd allow multiple rewriters to change the same CIL instruction (#254) 2017-03-26 19:01:13 -04:00
Jesse Plamondon-Willard 06f5e92b88 minor cleanup 2017-03-25 22:08:48 -04:00
Jesse Plamondon-Willard 7b641d8164 simplify CIL rewriter hierarchy 2017-03-25 15:17:26 -04:00
Jesse Plamondon-Willard 267e2469da rewrite removed font references for compatibility 2017-03-25 14:06:36 -04:00
Jesse Plamondon-Willard 4d48bdfe7c drop 'generic' prefix for rewriters since they're all generic now 2017-03-25 13:50:01 -04:00
Jesse Plamondon-Willard 2e58f853d2 replace field-to-property rewriters with a generic rewriter 2017-03-25 13:40:37 -04:00
Jesse Plamondon-Willard d724f54f32 replace SpriteBatch rewriter with a generic method mapper 2017-03-25 12:55:06 -04:00
Jesse Plamondon-Willard 45d2ed7054 add another default game path for Linux
Thanks to ShneekeyTheLost on the Stardew Valley forums.
2017-03-16 19:01:22 -04:00
Jesse Plamondon-Willard 0e67440e63 add inline documentation to StardewModdingAPI.config.json file 2017-03-16 17:07:50 -04:00
Jesse Plamondon-Willard abfa2022aa validate XNA 4.0+ is installed on Windows in SMAPI installer 2017-03-16 17:06:53 -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 33df1e8c94 remove unofficial patch for Chest Label System (no longer available) 2017-03-14 19:50:08 -04:00
Jesse Plamondon-Willard 79e63fde9a validate .NET Framework 4.5+ is installed on Windows in SMAPI installer 2017-03-14 19:36:18 -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 06871a0603 avoid C# 7 until MonoDevelop supports it 2017-03-14 16:17:02 -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 02a4c40814 simplify TrainerMod int parsing with C# 7 out variables 2017-03-14 13:44:41 -04:00
Jesse Plamondon-Willard 8bd265fed6 refactor SGame a bit now that it's internal 2017-03-14 13:30:29 -04:00
Jesse Plamondon-Willard ab89e42201 bump minimum game version 2017-03-12 20:31:46 -04:00
Jesse Plamondon-Willard 7bab161834 disable experimental content event for upcoming 1.9 release (#173) 2017-03-12 20:15:36 -04:00
Jesse Plamondon-Willard 183fb9ff6e remove unused IConfigFile (#238) 2017-03-12 20:12:47 -04:00
Jesse Plamondon-Willard 6a87f3566f update incompatibility record for Better Sprinklers 2017-03-12 19:15:55 -04:00
Jesse Plamondon-Willard ac19a1a85a add incompatibility finders for events removed in SMAPI 1.9 (#247) 2017-03-12 19:05:31 -04:00
Jesse Plamondon-Willard a93f1e2042 add several incompatibility finders for SMAPI 1.9 and SDV 1.2 (#247) 2017-03-12 18:38:01 -04:00
Jesse Plamondon-Willard ccc57935de replace individual instruction finders with generic implementations (#247) 2017-03-12 18:25:29 -04:00
Jesse Plamondon-Willard a6ed67a9f7 simplify & optimise instruction searching a bit (#247) 2017-03-12 17:51:59 -04:00
Jesse Plamondon-Willard a12bcf3b78 reject mods which reference obsolete SGame class (#247) 2017-03-12 17:48:53 -04:00
Jesse Plamondon-Willard 003a9586b2 simplify access to game's Program class
Stardew Valley 1.2.15 made the class public, so we no longer need reflection to access it.
2017-03-12 16:56:16 -04:00
Jesse Plamondon-Willard fae362723f reject mods which reference obsolete Game1.borderFont and Game1.smoothFont fields (#247) 2017-03-12 03:23:20 -04:00
Jesse Plamondon-Willard 9fab0bf58f reject mods which reference obsolete StardewModdingAPI.Extensions class (#247) 2017-03-12 01:32:30 -05: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 b0fab4a076 log rewritten instructions (#247) 2017-03-12 01:15:01 -05:00
Jesse Plamondon-Willard 3663f70603 split IInstructionFinder from IInstructionRewriter (#247) 2017-03-12 01:01:52 -05:00
Jesse Plamondon-Willard 95e5197967 fix SaveEvents.AfterLoad being raised during the new-game intro before the player is initialised 2017-03-11 17:28:39 -05:00
Jesse Plamondon-Willard d881f56856 fix SMAPI not correctly detecting cached assets if they were translated (#173) 2017-03-10 20:49:04 -05:00
Jesse Plamondon-Willard 363f5aeef2 rename content event for consistency, simplify usage (#173) 2017-03-10 20:48:54 -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 edbbb7cff4 update old instructions about resetting config file 2017-03-08 15:51:00 -05:00
Jesse Plamondon-Willard d47cf433f3 use consistent dict helper method naming (#173) 2017-03-08 15:34:38 -05:00
Jesse Plamondon-Willard 28c78e8f25 add dict content helper method to replace values based on a lambda (#173) 2017-03-08 15:30:27 -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 dfaed472b0 fix game window no longer showing SMAPI version 2017-03-04 14:43:23 -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 5d32b98029 fix mods running code concurrently with a SDV 1.2+ background task 2017-03-03 17:13:33 -05:00
Jesse Plamondon-Willard 6f07801b04 only use WMI on Windows 2017-03-02 22:03:23 -05:00
Jesse Plamondon-Willard 1485d98b24 update draw code for SDV 1.2.13 (#231) 2017-03-01 21:30:24 -05:00
Jesse Plamondon-Willard b7180c47d4 bump minimum game version 2017-03-01 21:06:59 -05:00
Jesse Plamondon-Willard ade1a692a3 deprecate `IConfigFile` (#238) 2017-03-01 20:20:58 -05:00
Jesse Plamondon-Willard c23f70d602 update content manager code for SDV 1.2.11 (#173) 2017-03-01 20:09:51 -05:00
Jesse Plamondon-Willard 5ed6eb0986 fix `world_downminelevel` command not working, prevent invalid `world_setminelevel` value 2017-03-01 20:06:03 -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 5270240c01 update TrainerMod manifest 2017-03-01 19:21:58 -05:00
Jesse Plamondon-Willard 51ac0127e8 fix TrainerMod letting player add invalid items 2017-03-01 19:20:11 -05:00
Jesse Plamondon-Willard 035f94f7cb remove unneeded 'types' TrainerMod command 2017-03-01 19:19:09 -05:00
Jesse Plamondon-Willard 696bdab3cd fix errors in console command handlers crashing the game 2017-03-01 19:18:21 -05:00
Jesse Plamondon-Willard 6de4888a1b improve TrainerMod feedback to user, standardise color/colour spelling 2017-03-01 19:17:34 -05:00
Efreak aba50aba45 Update <> to [] for changed commands 2017-03-01 17:28:52 -05:00
Efreak 3863c159ae Return current values for max/current health/stamina/immunity instead of errors when no value given 2017-03-01 17:28:52 -05:00
Efreak 49a801b2b0 toggle timefreeze when no value given 2017-03-01 17:28:52 -05:00
Efreak d956a7b223 typo
fix a typo preventing usage of player_setstamina
2017-02-27 18:49:32 -05:00
Jesse Plamondon-Willard 529e0dbb84 fix handling of localised XNB files (#173) 2017-02-25 19:08:21 -05:00
Jesse Plamondon-Willard 614cdc6fdd improve asset key normalisation (#173) 2017-02-25 18:26:43 -05:00
Jesse Plamondon-Willard ac5bcce02d fix current path not being normalised in path checks (#173) 2017-02-25 17:52:56 -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 2151625898 add release note, fix docblock 2017-02-24 20:55:19 -05:00
Jesse Plamondon-Willard 89cb791cae fix content manager compatibility with MonoGame (#173) 2017-02-24 19:44:19 -05:00
Jesse Plamondon-Willard 615c89bc0b override content manager (#173) 2017-02-24 18:52:53 -05:00
Jesse Plamondon-Willard 60f31b0fc6 clean up program properties 2017-02-24 15:10:02 -05:00
Jesse Plamondon-Willard ba55ed34ca fix 'please update your game' error not pausing before exit 2017-02-24 15:06:38 -05:00
Jesse Plamondon-Willard fd2d7d714d fix game version checks not using semantic versioning
This caused an issue where SMAPI didn't consider SDV 1.2.10 to pass the minimum game version of 1.2.9. This requires some workarounds for SDV 1.11's non-semantic version.
2017-02-24 15:04:28 -05:00
Jesse Plamondon-Willard 6a07a1cbaf clean up constants, avoid regenerating values unnecessarily 2017-02-24 14:46:24 -05:00
Jesse Plamondon-Willard be0aa19f30 fix game version always being detected as 1.2.9 because Game1.version is a const now 2017-02-24 00:15:45 -05:00
Jesse Plamondon-Willard 2ed3b25b6b further group deprecation warnings during mod loading 2017-02-23 23:54:50 -05:00
Jesse Plamondon-Willard 12cb2d272d minor cleanup 2017-02-23 23:51:52 -05:00
Jesse Plamondon-Willard 9bbd0a4459 make skipped-mod messages more user-friendly 2017-02-23 23:36:48 -05:00
Jesse Plamondon-Willard 6b26eceb57 move incompatible mod logic into mod registry 2017-02-23 23:36:14 -05:00
Jesse Plamondon-Willard 3005270437 shorten mod path in error messages 2017-02-23 23:05:46 -05:00
Jesse Plamondon-Willard 6a18dd6fad merge config files 2017-02-23 22:58:23 -05:00
Jesse Plamondon-Willard 96c7010c1b update for Stardew Valley 1.9 (#231) 2017-02-22 19:48:25 -05:00
Jesse Plamondon-Willard b30d93d0ff add rationale notes to incompatible-mods list (#231) 2017-02-22 19:36:10 -05:00
Jesse Plamondon-Willard 703f5f89a8 fix new error when entering an empty command in SMAPI console 2017-02-21 15:54:48 -05:00
Jesse Plamondon-Willard 7521570341 make mod-not-compatible messages shorter 2017-02-19 20:12:15 -05:00
Jesse Plamondon-Willard 5bbebcb46b mark another incompatible mod (#231) 2017-02-19 19:55:00 -05:00
Jesse Plamondon-Willard 69ed617e56 fix installer not recognising Linux/Mac paths starting with ~ or containing an escaped space 2017-02-19 01:29:30 -05:00
Jesse Plamondon-Willard c72adcd119 use more robust crossplatform path checks in installer 2017-02-19 01:28:00 -05:00
Jesse Plamondon-Willard a893cd9eea fix installer not ignoring potential game folders that don't contain a Stardew Valley exe 2017-02-19 01:07:04 -05:00
Jesse Plamondon-Willard b2efd34fec fix on-post-render graphics event being raised after screen is rendered
This causes mods to draw on top of the rendered screen instead of within it, which leads to strange bugs like cursor coordinates not lining up with the cursor and transparency issues.
2017-02-19 01:02:07 -05:00
Jesse Plamondon-Willard e321362378 fix nullable enums not being written to JSON as string 2017-02-17 13:59:31 -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 1dfedd2d1a fix issue where mod dependencies overrode SMAPI dependencies 2017-02-17 01:44:19 -05:00
Jesse Plamondon-Willard 16c362f4c5 increase all notice deprecations to info, tweak deprecation message format 2017-02-16 13:59:13 -05:00
Jesse Plamondon-Willard f8866ac4a8 remove unneeded property for number of mods loaded 2017-02-16 01:10:07 -05:00
Jesse Plamondon-Willard a0c94752c0 remove unneeded property for game exe path 2017-02-16 01:07:11 -05:00
Jesse Plamondon-Willard 960507879e remove unneeded property for game exe path 2017-02-16 01:03:50 -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 2c6ab6805d mark more incompatible mods (#231) 2017-02-15 16:27:40 -05:00
Jesse Plamondon-Willard 153c04535f fix typo 2017-02-14 23:37:26 -05:00
Jesse Plamondon-Willard f140e844ed streamline startup a bit 2017-02-14 22:06:06 -05:00
Jesse Plamondon-Willard e804ed5479 mark one constant internal 2017-02-14 13:11:43 -05:00
Jesse Plamondon-Willard 548cbcecc4 mark two internal classes internal 2017-02-14 13:07:30 -05:00
Jesse Plamondon-Willard 8d1b7cbfb8 mark more incompatible mods (#231) 2017-02-14 11:46:41 -05:00
Jesse Plamondon-Willard 32d919a1c3 update draw logic for Stardew Valley 1.2.6 (#231) 2017-02-13 17:40:59 -05:00
Jesse Plamondon-Willard 253a4306cf mark Entoarox Framework incompatible up to 1.6.5 (#231) 2017-02-13 16:50:54 -05:00
Jesse Plamondon-Willard 1038f4e704 mark all Command methods deprecated (#199) 2017-02-13 02:10:55 -05:00
Jesse Plamondon-Willard 845fbaab12 migrate TrainerMod to new API (#199) 2017-02-13 01:19:02 -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 e5324e170c handle permissions & delays in installer's file/folder deletion code (#237) 2017-02-12 19:39:38 -05:00
Jesse Plamondon-Willard 96c21b1acc avoid special case in error printing (#237) 2017-02-12 19:11:00 -05:00
Jesse Plamondon-Willard 95786e9e44 encapsulate file & folder deletion (#237) 2017-02-12 18:43:21 -05:00
Jesse Plamondon-Willard 59ff0a3266 mark another incompatible mod (#231) 2017-02-12 18:26:51 -05:00
Jesse Plamondon-Willard e712336861 mark more incompatible mods (#231) 2017-02-11 14:38:12 -05:00
Jesse Plamondon-Willard 36c831f4c9 fix world-ready events being raised before the game finishes loading the save in SDV 1.2 (#231) 2017-02-11 14:35:25 -05:00
Jesse Plamondon-Willard e393a2aad9 add TimeEvents.AfterDayStarted event (#236) 2017-02-11 12:38:32 -05:00
Jesse Plamondon-Willard 1f332c5f4d remove esoteric & undocumented debug message queue & DrawDebug event 2017-02-11 12:11:45 -05:00
Jesse Plamondon-Willard 693f16f99e don't write direct console output to log file (#233)
Per discussion with mod developers.
2017-02-11 02:08:21 -05:00
Jesse Plamondon-Willard 824ca7174a delve into mod folders that only contain another folder (#208)
This fixes a common issue when users unpack mods into a nested folder (e.g. "SomeMod-1.0.0\SomeMod\manifest.json"), which previously wouldn't be recognised as a mod. SMAPI will not do this if the folder contains files or more than one folder, to prevent backup folders and the like from being loaded.
2017-02-11 02:04:01 -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 3e91af6b06 mark several mods incompatible with Stardew Valley 1.2+ (#231) 2017-02-10 22:52:16 -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 56d28ef0d4 make some constants internal (#231) 2017-02-09 23:27:08 -05:00
Jesse Plamondon-Willard 25a3d9773c add field rewriter for the `Game1.gameMode` change in SDV 1.2 (#231) 2017-02-09 23:24:54 -05:00
Jesse Plamondon-Willard 2b336faa1b add field rewriter for the `Game1.player` change in SDV 1.2 (#231) 2017-02-09 23:03:36 -05:00
Jesse Plamondon-Willard 388ef0a012 reorganise rewriters (#231) 2017-02-09 22:56:42 -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 3668b0902d fix field rewriter not added to config (#231) 2017-02-09 20:34:34 -05:00
Jesse Plamondon-Willard 5f9c03a8a9 add field rewriter for the `Game1.activeClickableMenu` change in SDV 1.2 (#231) 2017-02-09 14:28:44 -05:00
Jesse Plamondon-Willard 74a56a7b3b further generalise CIL rewriters for reuse (#231) 2017-02-09 14:02:43 -05:00
Jesse Plamondon-Willard 40a9014742 generalise CIL rewriters for reuse (#231) 2017-02-09 13:45:34 -05:00
Jesse Plamondon-Willard 036595cc71 remove old log file to avoid confusion (#231) 2017-02-08 00:53:53 -05:00
Jesse Plamondon-Willard e440d9042e bump minimum game version to 1.2 (#231) 2017-02-08 00:26:32 -05:00
Jesse Plamondon-Willard 6092f9ea00 always use \r\n line endings in log file for crossplatform compatibility (#230) 2017-02-08 00:22:27 -05:00
Jesse Plamondon-Willard d52b3572f3 simplify log filename 2017-02-08 00:17:00 -05:00
Jesse Plamondon-Willard 366769e8a2 add SaveEvents.AfterReturnToTitle event (#231) 2017-02-08 00:11:46 -05:00
Jesse Plamondon-Willard 2b7abc3af5 clean up more obsolete code (#231) 2017-02-07 23:34:52 -05:00
Jesse Plamondon-Willard 84bc32c3f1 reimplement graphics events (#231) 2017-02-07 23:04:16 -05:00
Jesse Plamondon-Willard 8b0e54a777 ignore code analysis warnings in game code (#231) 2017-02-07 22:10:00 -05:00
Jesse Plamondon-Willard 98cf6a2766 update SGame.Draw with base code (#231) 2017-02-07 21:54:29 -05:00
Jesse Plamondon-Willard 8efa5f32c1 add reflectionHelper.GetPrivateProperty<T> (#231) 2017-02-07 21:07:57 -05:00
Jesse Plamondon-Willard cec7469786 disambiguate references to Farmer (#231) 2017-02-07 20:51:22 -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 99d0450b2c fix install error when the mods folder doesn't exist (#229) 2017-02-04 16:50:09 -05:00
Jesse Plamondon-Willard 3919ab7a4a update for 1.8 release 2017-02-04 15:30:26 -05:00
Jesse Plamondon-Willard 57a99803f0 update deprecation level for Extensions class 2017-02-04 15:27:13 -05:00
Jesse Plamondon-Willard 0b8396cc53 rm cruft 2017-02-03 22:26:48 -05:00
Jesse Plamondon-Willard 8d3e6048b8 simplify installer text 2017-02-03 22:05:06 -05:00
Jesse Plamondon-Willard 4504ddcd98 remove mod .cache folders during (un)install process (#229) 2017-02-03 22:04:43 -05:00
Jesse Plamondon-Willard 85ff940e68 move install package's Mono/Windows folders out of root
This will hopefully reduce confusion among players who go into "Windows" instead of running install.exe.
2017-02-03 22:02:54 -05:00
Jesse Plamondon-Willard 9689bb9484 expand & prettify installer readme 2017-02-03 21:21:35 -05:00
Jesse Plamondon-Willard 3eb8110c45 move build task which prepares install package into a .targets file 2017-02-03 20:18:00 -05:00
Jesse Plamondon-Willard 5e68400c43 only read assembly from memory if it was rewritten (#229)
This fixes an issue where you can't debug into mod code because SMAPI isn't loading the actual DLL.
2017-02-03 20:12:42 -05:00
Jesse Plamondon-Willard 4fff06cce1 fix documentation issues 2017-02-03 01:40:47 -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 ae7d9d6bc4 fix error when SMAPI tries to load Mac metadata files for DLLs 2017-02-02 20:48:29 -05:00
Bpendragon (David Camp) 8c6dca95da Corrected CurrentLocationChanged's "NewLocation" and "PriorLocation" descriptors, they displayed in Intellisense as the opposite of what they were. 2017-02-02 16:08:06 -05:00
Jesse Plamondon-Willard 8db280d874 expose SemanticVersion constructor that parses a string 2017-01-25 22:30:07 -05:00
Jesse Plamondon-Willard 08e9cd1263 Add GOG Mac path
Thanks to LeonBlade for the path.
2017-01-22 22:31:00 -05:00
Jesse Plamondon-Willard b90387668d update for 1.7 release 2017-01-19 12:22:32 -05:00
Jesse Plamondon-Willard 5ccd5b5df7 log deprecation warnings after list of loaded mods (#220) 2017-01-19 11:43:32 -05:00
Jesse Plamondon-Willard 1cf8a628dc only call mod.Entry() once all mods have been loaded (#220) 2017-01-19 11:34:24 -05:00
Jesse Plamondon-Willard ba590b20a6 add public mod registry (#220) 2017-01-19 11:07:48 -05:00
Jesse Plamondon-Willard 4fe123350c bump several deprecations 2017-01-19 01:41:55 -05:00
Jesse Plamondon-Willard 6c07b5f395 tweak error text when starting game throws an exception 2017-01-19 01:18:53 -05:00
Jesse Plamondon-Willard 698e012cd2 simplify overridden game version 2017-01-19 01:18:37 -05:00
Jesse Plamondon-Willard f681f618c1 add mod folder path to console 2017-01-19 01:10:13 -05:00
Jesse Plamondon-Willard f4846173a9 fix before/after save events not triggering on days when the player shipped an item (#218) 2017-01-19 00:54:59 -05:00
Jesse Plamondon-Willard 602227eae8 fix some world events being fired during game startup (#217) 2017-01-18 22:14:50 -05:00
Jesse Plamondon-Willard b3ff004572 fix PlayerEvents.LoadedGame and SaveEvents.AfterLoad being fired before the world finishes loading (#216) 2017-01-18 21:32:38 -05:00
Jesse Plamondon-Willard 1f3d3c8c93 bump version, update release steps in readme 2017-01-16 16:04:56 -05:00
Jesse Plamondon-Willard 64a72c45e3 deprecate events replaced by save events (#215) 2017-01-15 19:21:26 -05:00
Jesse Plamondon-Willard 0c73b02d58 add save events (#215) 2017-01-15 18:23:09 -05:00
Jesse Plamondon-Willard 5c8e7f5d93 mark NPC Locations Map 1.42 incompatible due to update-check bug 2017-01-15 18:20:50 -05:00
Jesse Plamondon-Willard 525172e831 remove redundant TrainerMod build config (#214) 2017-01-14 22:49:50 -05:00
Patrick Müssig 6e04cbca3a TrainerMod uses crossplatform.targets 2017-01-14 22:49:50 -05:00
Jesse Plamondon-Willard f957af71d1 fix console color support check (#206) 2017-01-14 15:53:28 -05:00
Jesse Plamondon-Willard 82dd5b3068 fix TrainerMod project not being built by default 2017-01-14 15:14:23 -05:00
Jesse Plamondon-Willard 90e92ef61f fix error when the console doesn't support colour (#206) 2017-01-14 15:05:38 -05:00
Jesse Plamondon-Willard 2d824b34e4 add console commands to open game & date folders (#172) 2017-01-14 13:46:00 -05:00
Jesse Plamondon-Willard 9d1b6a1af2 fix issue where default ICollection<T> values in config.json were duplicated on each load (#209) 2017-01-14 13:03:57 -05:00
Jesse Plamondon-Willard 83bdcd2838 fix error loading mods if they have a .cache folder created on a different platform (#211) 2017-01-14 12:43:50 -05:00
Jesse Plamondon-Willard 34bf9c5eca tweak JSON read error-handling, update release notes 2017-01-14 12:26:59 -05:00
mytigio 482dd42d3d Add a catch for DirectoryNotFoundException in ModHelper.ReadJsonFile method. 2017-01-14 12:13:27 -05:00
Jesse Plamondon-Willard 8e8cda87fb mark NPC Map Locations 1.43 incompatible due to update error 2017-01-14 01:11:57 -05:00
Jesse Plamondon-Willard 0ac9e47ea2 add support for custom incompatible-mod-version error text 2017-01-14 01:11:42 -05:00
Jesse Plamondon-Willard 40bc8f57c7 add support for incompatible mod version ranges 2017-01-14 00:59:19 -05:00
Jesse Plamondon-Willard 481a43d807 update game install path detection to match mod build config package 2017-01-11 13:56:12 -05:00
Jesse Plamondon-Willard 43a4194a5c remove unofficial patch links for officially-updated CJB mods 2017-01-06 14:59:55 -05:00
Jesse Plamondon-Willard a432477ea3 fallback to launching SMAPI without a terminal on Linux if the terminal is unavailable (#198) 2016-12-30 12:04:27 -05:00
Jesse Plamondon-Willard a7d3930d88 encapsulate repeated monitor construction 2016-12-30 11:47:23 -05:00
Jesse Plamondon-Willard b75d86e7cc update for SMAPI 1.5 release 2016-12-23 12:43:42 -05:00
Jesse Plamondon-Willard 8416c9009e increase deprecation levels for less-used deprecated code 2016-12-23 12:36:03 -05:00
Jesse Plamondon-Willard 1fdc0c0b35 catch errors when reading metadata file just in case (#192) 2016-12-23 11:20:06 -05:00
Jesse Plamondon-Willard c7a08d08db add support for unofficial updates which suffix the official version number with a pre-release label (#192) 2016-12-22 22:34:49 -05:00
Jesse Plamondon-Willard f6f52b653e add known incompatible mods, update release notes (#192) 2016-12-22 13:08:45 -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 90f5233cc7 add config setting to disable update checks (#202) 2016-12-22 11:27:48 -05:00
Jesse Plamondon-Willard ca3cf89000 autogenerate SMAPI config (#202) 2016-12-22 11:20:01 -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 fa71bdd6c7 make SemanticVersion constructor from version string public 2016-12-21 13:43:04 -05:00
Jesse Plamondon-Willard 444364f418 fix version pre-release tags not consistently normalised (#195) 2016-12-21 13:33:59 -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 ea65b2b7df correct semantic version pre-release label precedence (#195) 2016-12-21 11:45:52 -05:00
Jesse Plamondon-Willard 45ee74219e fix issue where changing the active menu inside a menu change handler didn't trigger a new event (#194) 2016-12-18 17:42:51 -05:00
Jesse Plamondon-Willard a8cc363699 fix legacy version wrapper not implementing ToString method (#197) 2016-12-18 16:58:47 -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 487ae1dce9 add version.IsOlderThan(other) method for convenience 2016-12-18 13:52:09 -05:00
Jesse Plamondon-Willard d9e87399bf format code (#193) 2016-12-18 12:27:44 -05:00
Tyler Staples cd93d59eaf Added a struct to wrap cache entries for the sake of tracking invalid lookups. This fixes the issue where a null reference exception would be thrown when trying to look up non-existant or non-private members.
Added a null check to GetPrivateValue and it's overloads to fix the issue where it would throw a null reference exception when required was false and the field was null.
2016-12-18 11:42:04 -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 a3376e2a62 update for 1.4 release 2016-12-12 11:20:31 -05:00
Jesse Plamondon-Willard df7d41fc37 move interfaces into root (#185) 2016-12-11 21:03:57 -05:00
Jesse Plamondon-Willard dccd73e4fb detect which Linux command detects whether a command exists (#183) 2016-12-10 13:01:58 -05:00
Jesse Plamondon-Willard 7511db4c83 open terminal on most Linux distros (#183) 2016-12-10 00:11:50 -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 25d2eb4777 intercept mod errors in menu draw code so they don't crash the game 2016-12-08 12:18:56 -05:00
Jesse Plamondon-Willard 22a2e2e853 add registry paths to build configuration (#189) 2016-12-07 23:55:32 -05:00
Jesse Plamondon-Willard 7e76d90c55 refactor registry checks for crossplatform compatibility (#189) 2016-12-07 23:52:56 -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
Patrick Müssig 47d5aef404 SMAPI installer is able to read SDV install path from registry key 2016-12-07 23:27:53 -05:00
Jesse Plamondon-Willard acbd33fb02 open a terminal for SMAPI output on Mac (#183) 2016-12-07 23:15:37 -05:00
Jesse Plamondon-Willard ae44f17205 fix installer not moving mods out of appdata if the game isn't installed on the same Windows partition (#184) 2016-12-07 22:43:05 -05:00
Jesse Plamondon-Willard 860ccb90f7 fix the installer not removing TrainerMod from appdata if it's already in the game mods folder 2016-12-07 22:17:38 -05:00
Jesse Plamondon-Willard 2c11ce1bff add TypeLoadException details when intercepted by SMAPI 2016-12-07 22:05:14 -05:00
Jesse Plamondon-Willard b019dd4f69 replace out_items, out_melee, and out_rings commands with a searchable list_items command 2016-12-07 20:36:28 -05:00
Jesse Plamondon-Willard f0433e5a41 tweak installer wording to avoid confusion 2016-12-06 22:19:38 -05:00
Jesse Plamondon-Willard b751e7dd2e skip mod folder with a warning if it has no manifest (#186) 2016-12-06 17:29:38 -05:00
Jesse Plamondon-Willard 748e45aefb add dependencies.targets to project 2016-12-06 17:13:57 -05:00
Jesse Plamondon-Willard 8304227cea remove obsolete mods/.cache directory on install (#187, #188) 2016-12-06 00:41:12 -05:00
Jesse Plamondon-Willard f625fd51a0 always clean up files during install (#188) 2016-12-06 00:37:12 -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 31301988e9 deploy trainer mod when building SMAPI in debug mode 2016-12-05 02:14:25 -05:00
Jesse Plamondon-Willard 48adbe2492 update for 1.3 release 2016-12-04 09:40:34 -05:00
Jesse Plamondon-Willard feb2d89ff6 fix comment headers 2016-12-04 00:57:32 -05:00
Jesse Plamondon-Willard ba32511fc2 update repository 2016-12-04 00:56:08 -05:00
Jesse Plamondon-Willard 788a90674f reduce logging levels (#166) 2016-12-02 17:46:07 -05:00
Jesse Plamondon-Willard ad773a947a fix assembly resolution when mods try to load types from other mods (#166) 2016-12-02 17:15:52 -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 33f46d26f4 invalidate assembly rewrite cache on new SMAPI version (#166) 2016-11-30 22:51:50 -05:00
Jesse Plamondon-Willard 44dfb6fac5 fix assembly resolution failing for rewritten mods that reference a different version of Json.NET (#166) 2016-11-30 22:44:40 -05:00
Jesse Plamondon-Willard 0fcf29d428 fix local deployment on Linux/Mac 2016-11-30 14:04:06 -05:00
Jesse Plamondon-Willard 5c11483b8e rework uninstaller so it doesn't depend on install package
For example, this avoids an issue where the normal SMAPI uninstaller didn't remove files added by the 'SMAPI for developers' installer.
2016-11-29 19:42:27 -05:00
Jesse Plamondon-Willard 7e17005c52 update readme & installer for 1.3 (#166) 2016-11-29 19:41:58 -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 528a934786 exclude rewriters project from IL weaving (#166) 2016-11-29 19:22:59 -05:00
Jesse Plamondon-Willard 9ff9d02db5 rewrite SpriteBatch.Begin calls for compatibility (#166) 2016-11-29 19:21:11 -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 f3675aa466 move assembly map into constants (#166) 2016-11-28 20:51:57 -05:00
Jesse Plamondon-Willard f7b8879011 supplement assembly resolution for Mono (#166) 2016-11-27 15:56:47 -05:00
Jesse Plamondon-Willard 0d94c628bb add trace logs when rewriting an assembly (#166) 2016-11-27 12:27:44 -05:00
Jesse Plamondon-Willard 8917fb6697 only rewrite assemblies if needed (#166) 2016-11-27 12:08:00 -05:00
Jesse Plamondon-Willard 2e40ad7ad3 copy pdb/mdb files to assembly cache (#166) 2016-11-26 16:26:36 -05:00
Jesse Plamondon-Willard 2154b6de95 use simpler, non-broken approach for rewriting mod type references (#166) 2016-11-26 16:14:10 -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 7bea3c2ba0 add log entry when preprocessing an assembly (#166) 2016-11-26 16:00:02 -05:00
Jesse Plamondon-Willard e9fee3f6fe preprocess all mod assemblies for compatibility with multi-assembly mods (#166) 2016-11-26 13:14:26 -05:00
Jesse Plamondon-Willard 08d5ee293f simplify manifest.json path check 2016-11-26 13:14:26 -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 00a3c14446 fix audio error on startup for some players by deferring update check 2016-11-24 12:43:28 -05:00
Jesse Plamondon-Willard 614de95a8e update for 1.2 release 2016-11-24 12:19:57 -05:00
Jesse Plamondon-Willard 0ed5f3e98e fix compatibility with mods which use the previous signature of Command.CallCommand 2016-11-23 20:44:49 -05:00
Jesse Plamondon-Willard 26266a946d revert Config.GenerateDefaultConfig<T> back to virtual method
SMAPI 1.0 changed this virtual method to abstract, since it's required for the configuration to work correctly. However this breaks some incorrectly-written older mods which didn't implement the method. Since this class is deprecated anyway, revert to the original behaviour for compatibility.
2016-11-23 20:31:46 -05:00
Jesse Plamondon-Willard 1dc3f1013f log relevant details when a ReflectionTypeLoadException is caught by SMAPI 2016-11-23 20:23:42 -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 7cb77dd2be update for 1.1.1 release 2016-11-19 17:04:21 -05:00
Jesse Plamondon-Willard cb6f6fe19d fix race condition where GameLoaded event was sometime fired before the game was ready 2016-11-19 16:03:45 -05:00
Jesse Plamondon-Willard bff59aacba restore all Log methods for backwards compatibility 2016-11-19 14:46:50 -05:00
Jesse Plamondon-Willard 5e9b030ec7 fix compatibility with mods using Log.Out 2016-11-19 00:10:16 -05:00
Jesse Plamondon-Willard 6a48094995 fix deprecation warnings beign repeated if the mod can't be identified 2016-11-19 00:09:39 -05:00
Jesse Plamondon-Willard d7be19e8f4 update for 1.1.1-alpha 2016-11-19 00:08:54 -05:00
Jesse Plamondon-Willard 14eee1e482 add comment 2016-11-19 00:03:34 -05:00
Jesse Plamondon-Willard f8f7b9c8d9 update for 1.1 release 2016-11-17 22:24:46 -05:00
Jesse Plamondon-Willard 59c35862ca add global assembly info 2016-11-17 22:23:45 -05:00
Jesse Plamondon-Willard 22fe2d8716 minor tweaks 2016-11-16 22:41:27 -05:00
Jesse Plamondon-Willard fa5c6ff066 cleanup 2016-11-16 18:45:29 -05:00
Jesse Plamondon-Willard eb39f3d5ea use interface for IModHelper 2016-11-16 17:52:49 -05:00
Jesse Plamondon-Willard 19bb255c98 add emergency interrupt feature (#168) 2016-11-16 17:36:28 -05:00
Jesse Plamondon-Willard 92cf3ab65e update for 1.1 beta 2016-11-16 16:55:11 -05:00
Jesse Plamondon-Willard 8dcd62f175 fix console closing immediately when some exceptions occur (#171), simplify initial logging 2016-11-16 16:49:40 -05:00
Jesse Plamondon-Willard 785af91952 add optional 'minimum API version' field to manifest (#176) 2016-11-16 16:21:17 -05:00
Jesse Plamondon-Willard 1ac930979a mark deprecated manifest fields 2016-11-16 15:14:45 -05:00
Jesse Plamondon-Willard 8c5404f99c fix error when json file doesn't exist (#170) 2016-11-14 23:32:38 -05:00
Jesse Plamondon-Willard 33e6a6db23 tweak deprecation messages 2016-11-14 23:10:12 -05:00
Jesse Plamondon-Willard 54c0f26d5d migrate game loop, events, and commands to new logging framework (#168) 2016-11-14 22:25:36 -05:00
Jesse Plamondon-Willard f54b464792 minor cleanup 2016-11-14 22:23:51 -05:00
Jesse Plamondon-Willard aafdcaa2c5 simplify null guards when rasing events 2016-11-14 22:09:44 -05:00
Jesse Plamondon-Willard bc8773bbdd migrate TrainerMod to new logging framework (#168) 2016-11-14 21:48:40 -05:00
Jesse Plamondon-Willard 31da528b46 make TrainerMod non-static 2016-11-14 21:39:09 -05:00
Jesse Plamondon-Willard 5a80bd92eb migrate main logging to new framework (#168) 2016-11-14 20:28:44 -05:00
Jesse Plamondon-Willard 9a36254e90 hide TrainerMod internals 2016-11-14 20:11:05 -05:00
Jesse Plamondon-Willard 6d1afe7d5c remove obsolete TrainerMod command 2016-11-14 20:10:39 -05:00
Jesse Plamondon-Willard bff02ffd9b format & document TrainerMod code 2016-11-14 20:09:44 -05:00
Jesse Plamondon-Willard f9823c2ed0 migrate deprecation manager to new logging (#168) 2016-11-14 19:31:22 -05:00
Jesse Plamondon-Willard 06b108d4c4 deprecate legacy logging interfaces, rewrite to use new framework under the hood (#168) 2016-11-14 19:27:44 -05:00
Jesse Plamondon-Willard 05cb096fc0 initialise new logging framework on startup (#168) 2016-11-14 19:20:11 -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 4b67242d15 update git repo for new-version check 2016-11-11 11:50:19 -05:00
Jesse Plamondon-Willard e665010f70 update for 1.0 release 2016-11-11 11:32:07 -05:00
Jesse Plamondon-Willard 58680ba39c normalise newlines in app.config 2016-11-11 11:27:02 -05:00
Jesse Plamondon-Willard a49ca07d31 fix deprecation warning for manifest.PerSaveConfigs 2016-11-10 15:56:58 -05:00
Jesse Plamondon-Willard 179df57ce8 rewrite command parsing, fix null reference exceptions in some cases 2016-11-10 10:11:02 -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 01ed95267e bump version for 1.0-beta2 2016-11-09 12:12:38 -05:00
Jesse Plamondon-Willard af6746ef75 mark restored interfaces deprecated 2016-11-09 11:54:40 -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 7fa591cf22 remove unused files 2016-11-09 10:50:19 -05:00
Jesse Plamondon-Willard 5f6bc87829 update TrainerMod for 1.0 2016-11-08 13:56:27 -05:00
Jesse Plamondon-Willard dc28000d32 correct version in deprecation warning 2016-11-08 13:53:29 -05:00
Jesse Plamondon-Willard 7eee2158a0 fix an initialisation error when a Windows user has both "StardewValley.exe" and "Stardew Valley.exe" in their game directory 2016-11-08 01:09:51 -05:00
Jesse Plamondon-Willard 71e2ad82a9 update for 1.0 beta 2016-11-07 16:26:31 -05:00
Jesse Plamondon-Willard ba4237f7a3 group installer's path variables 2016-11-07 16:16:53 -05:00
Jesse Plamondon-Willard c69e45bfba detect appdata mods during install and move them (if possible) 2016-11-07 16:06:29 -05:00
Jesse Plamondon-Willard ffbc05d3a7 fix minor crossplatform issues 2016-11-06 17:23:34 -05:00
Jesse Plamondon-Willard d0025fc700 increase deprecation severity of method disabled in 0.39.3 (#165) 2016-11-06 16:16:44 -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 e4d6cc1381 simplify log a bit more 2016-11-06 10:36:44 -05:00
Jesse Plamondon-Willard f9aa76e41f use more nuanced deprecation warnings (#165) 2016-11-06 10:30:25 -05:00
Jesse Plamondon-Willard 07d0dc38ca fix installer on Windows not ignoring quote characters in file path 2016-11-05 19:52:39 -04:00
Jesse Plamondon-Willard 6d4e014998 add quick summary to installer readme 2016-11-05 18:15:20 -04:00
Jesse Plamondon-Willard e2af64c7a9 mark extensions deprecated (#165) 2016-11-05 16:51:06 -04:00
Jesse Plamondon-Willard e78c136f52 document extensions 2016-11-05 16:34:45 -04: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 0749fdcbe5 use new helper to read manifest (#159) 2016-11-05 16:14:38 -04:00
Jesse Plamondon-Willard a929d70433 simplify exit logging 2016-11-05 01:47:32 -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 067d5f6b69 add minimum game version check (#163) 2016-11-04 23:31:06 -04:00
Jesse Plamondon-Willard 4716b4cd21 make logging less verbose and more informative 2016-11-04 23:06:19 -04:00
Jesse Plamondon-Willard 1fa4551b1d minor cleanup 2016-11-04 20:24:21 -04:00
Jesse Plamondon-Willard 83f129aa16 remove old obsolete log methods 2016-11-04 20:18:21 -04:00
Jesse Plamondon-Willard b7b69707eb document inventory changed event objects 2016-11-04 20:13:58 -04:00
Jesse Plamondon-Willard ea0550028c simplify log singleton management 2016-11-04 20:02:39 -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 5fd708e43f format & document logging code 2016-11-04 19:52:12 -04:00
Jesse Plamondon-Willard cd27873afb reduce command log verbosity 2016-11-04 19:30:27 -04:00
Jesse Plamondon-Willard c8db03b209 format & document command class 2016-11-04 19:29:17 -04:00
Jesse Plamondon-Willard 8386f8a115 remove legacy workaround 2016-11-04 19:14:25 -04:00
Jesse Plamondon-Willard efcb7fe705 remove unneeded program fields 2016-11-04 19:14:01 -04:00
Jesse Plamondon-Willard a48f5a0d40 format & document program class 2016-11-04 18:57:50 -04:00
Jesse Plamondon-Willard 78e8a6a4a0 remove extensions from public interface, refactor & document 2016-11-04 18:24:10 -04:00
Jesse Plamondon-Willard ab3fffde0a remove unused extensions 2016-11-04 16:24:20 -04:00
Jesse Plamondon-Willard 7fe6dafbaa move 'mods loaded' out of constants 2016-11-04 16:14:14 -04:00
Jesse Plamondon-Willard 532235ef10 format & document constants 2016-11-04 16:12:09 -04:00
Jesse Plamondon-Willard da4269124c remove disabled & broken draw logic 2016-11-04 15:49:25 -04:00
Jesse Plamondon-Willard 9a3b4260f7 refactor to avoid an out parameter 2016-11-04 15:42:21 -04:00
Jesse Plamondon-Willard bec7025aa4 clean up duplicate checks 2016-11-04 15:32:15 -04:00
Jesse Plamondon-Willard 5a3951e77c simplify menu event logic (should have same effect) 2016-11-04 15:29:55 -04:00
Jesse Plamondon-Willard 810479fc8b update ReSharper settings 2016-11-04 14:48:31 -04:00
Jesse Plamondon-Willard 01a94c29d0 remove unused SGame fields & methods 2016-11-04 14:47:54 -04:00
Jesse Plamondon-Willard 85d596b6c1 format & document code in SGame (no logic changes) 2016-11-04 14:42:34 -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 5125a168c5 use semantic versioning (#154) 2016-11-03 00:31:51 -04:00
Jesse Plamondon-Willard a793c84851 add operating system to initial console output to simplify troubleshooting 2016-11-03 00:25:40 -04:00
Jesse Plamondon-Willard ab3508af6f bump SMAPI version, clean up assembly info 2016-11-02 23:45:28 -04:00
Jesse Plamondon-Willard bb0e94e74f remove disabled code 2016-11-02 22:01:01 -04:00
Jesse Plamondon-Willard f1910b1328 remove debug mode toggle (#120) 2016-11-02 21:53:59 -04:00
Jesse Plamondon-Willard 7af9a92842 fix mod versions not being displayed correctly (#160) 2016-11-01 18:08:05 -04:00
Jesse Plamondon-Willard 310f705f19 format & document version class 2016-11-01 18:07:09 -04:00
Jesse Plamondon-Willard 493696690a fix spelling of 'Authour' manifest field with backwards compatibility (#158) 2016-11-01 02:00:29 -04:00
Jesse Plamondon-Willard 9ab5831eac format & document mod class 2016-11-01 01:31:41 -04:00
Jesse Plamondon-Willard 605c99ba70 format & document config code 2016-10-31 20:46:23 -04:00
Jesse Plamondon-Willard 9d461bb05b make config class abstract to force implementation of required method 2016-10-31 20:44:31 -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 7d0cd22f1e add zoom-adjusted mouse position to mouse-changed event arguments (#129) 2016-10-31 17:01:16 -04:00
Jesse Plamondon-Willard 652776ed02 (#129) fix several events not correctly propagating state 2016-10-31 16:19:45 -04:00
Jesse Plamondon-Willard 7fe8511921 document & format event code 2016-10-31 14:48:23 -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 0d5f6d2364 update file reference 2016-10-31 11:34:11 -04:00
Jesse Plamondon-Willard d0f912a3e9 remove support for mods in AppData directory (#156) 2016-10-30 22:31:21 -04:00
Jesse Plamondon-Willard 39e2e46a21 rewrite readme (simpler, link to canimod docs, document how to compile from source) 2016-10-30 22:21:19 -04:00
Jesse Plamondon-Willard a68f41c396 fix crossthread access violation when debugger is attached (#126) 2016-10-27 17:10:43 -04:00
Jesse Plamondon-Willard 6cc8c6d7c1 run game on main thread for Mac compatibility (#126) 2016-10-27 15:17:17 -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
Jesse Plamondon-Willard 80b2b3ddda rename Unix launcher for consistency with Windows install process (#126) 2016-10-27 02:03:29 -04:00
Jesse Plamondon-Willard 8eb0a94472 add launcher for Linux and Mac (#126) 2016-10-27 01:19:21 -04:00
Jesse Plamondon-Willard e643a38b78 only use assembly merging on Windows (#126)
Costura doesn't work on Linux and Mac, but we can just add a separate DLL for Json.NET on those platforms.
2016-10-27 00:40:48 -04:00
Jesse Plamondon-Willard 4e17de2f2c use simpler crossplatform window management (#126) 2016-10-26 23:43:32 -04:00
Jesse Plamondon-Willard 9436920d91 remove broken and unused test code (#126) 2016-10-26 21:15:34 -04:00
Jesse Plamondon-Willard 57da69c87c use platform-agnostic paths (#126) 2016-10-26 21:05:11 -04:00
Jesse Plamondon-Willard 2be6ad1574 choose correct references for platform automatically (#126) 2016-10-26 20:35:48 -04:00
Jesse Plamondon-Willard 4042ca4b16 detect game path automatically (#126) 2016-10-25 23:38:25 -04:00
ClxS 12e4822cbf Updated version number 2016-10-07 18:29:26 +01:00
ClxS 8017c23331 Disabled overridden update call 2016-10-07 18:22:31 +01:00
ClxS ed421572c3 Merged advize's changes 2016-10-04 18:12:29 +01:00
ClxS 269a325a7a Altered version number 2016-10-04 18:12:02 +01:00
AdvizeGH 6e6f632581 Reverted to previous SGame class with minor changes for 1.1, updated version number. 2016-10-04 04:14:29 -05:00
ClxS 5087c3d755 Updated build version id to 1.1 2016-09-30 19:19:18 +01:00
ClxS 2c0eaf26c0 Reverted to .net 4.5 - There was already quite a lot of trouble with people not having 4.5 installed before, I want to avoid that. 2016-09-30 19:16:16 +01:00
ClxS dd0aba6066 Disabled the overridden update call only - fixes mouse redraw issue. 2016-09-30 19:04:04 +01:00
ClxS a6752d30e3 Preliminiary update to add 1.1 support - waiting on testing to confirm it's final 2016-09-30 18:22:48 +01:00
Gormogon 27dece2cf4 Attempt to migrate to new directory structure. 2016-05-29 18:23:01 -04:00