Commit Graph

972 Commits

Author SHA1 Message Date
Jesse Plamondon-Willard 2d9aefebb0 rewrite dependency logic to resolve dependency loops by disabling the affected mods (#285) 2017-05-14 21:19:27 -04:00
Jesse Plamondon-Willard 07aadf3612 replace mod indexes with references in dependency-sorting logic (#285) 2017-05-14 18:17:34 -04:00
Jesse Plamondon-Willard f3ff871eb7 add unit tests for basic dependency reordering cases (#285) 2017-05-13 22:47:50 -04:00
Jesse Plamondon-Willard 317349f3e2 add a few more unit tests for metadata loading & validation (#285) 2017-05-13 21:58:13 -04:00
Jesse Plamondon-Willard 725b1f1419 add unit tests for metadata loading & validation (#285) 2017-05-13 21:42:36 -04:00
Jesse Plamondon-Willard c1fbbf9418 add unit test project (#285) 2017-05-13 21:40:53 -04:00
Jesse Plamondon-Willard f03b300b3f pass SMAPI version into metadata validation to simplify unit tests (#285) 2017-05-13 21:38:04 -04:00
Jesse Plamondon-Willard 53547a8ca3 pass API version into mod metadata validation to simplify unit testing (#285) 2017-05-13 21:36:50 -04:00
Jesse Plamondon-Willard 7f368aa889 enforce metadata.SetStatus() instead of setting properties directly (#285) 2017-05-13 20:41:00 -04:00
Jesse Plamondon-Willard 9b6c0d1021 decouple reading manifest files from validating metadata (#285) 2017-05-13 18:58:19 -04:00
Jesse Plamondon-Willard 63edebaef1 decouple mod metadata resolution from main SMAPI logic (#285)
This makes the logic more self-contained for eventual unit testing, and makes failed mods available during dependency resolution so we can make errors more relevant.
2017-05-13 18:20:09 -04:00
Jesse Plamondon-Willard 66d2b5746a move mod metadata resolution into its own class (#285) 2017-05-13 17:24:41 -04:00
Jesse Plamondon-Willard c932c53137 fix error when processing mods that have no dependencies (#285) 2017-05-13 17:03:26 -04:00
Jesse Plamondon-Willard a3729c36f5 refactor mod dependency logic a bit (#285) 2017-05-13 16:58:17 -04:00
Luke Wale 3a02402367 Added basic topological sort for mod dependencies (#285) 2017-05-13 15:33:35 -04:00
Jesse Plamondon-Willard 3da27346c6 add basic dependencies to manifest (#285) 2017-05-13 15:33:35 -04:00
Jesse Plamondon-Willard 17ff230d8e streamline crossplatform build with Mono 5.0, update readme, tweak release notes 2017-05-13 15:14:32 -04:00
Jesse Plamondon-Willard 588b42742d fix error on Linux/Mac when a mod tries to load content immediately after save is loaded 2017-05-12 21:09:20 -04:00
Jesse Plamondon-Willard e84028f22b fix SMAPI raising a deprecation warning for its own use of an event 2017-05-12 00:01:39 -04:00
Jesse Plamondon-Willard bb165f2079 organise a few framework classes 2017-05-11 23:21:02 -04:00
Jesse Plamondon-Willard dc4ad15afe fix IManifest fields being settable 2017-05-11 22:32:47 -04:00
Jesse Plamondon-Willard 03876153f4 decouple mod metadata vs assembly loading to enable upcoming mod dependencies (#285) 2017-05-11 22:25:45 -04:00
Jesse Plamondon-Willard 48c5c9e367 overhaul save handling to fix save events not triggering on Linux/Mac (#284) 2017-05-11 00:34:01 -04:00
Jesse Plamondon-Willard 86c60c971a merge SGame::UpdateEventCalls into Update
The method was misleadingly named (since only some of the events were in the method), and unnecessarily limited the possible flows.
2017-05-10 23:49:58 -04:00
Jesse Plamondon-Willard d88050fcee deprecate GameEvents.GameLoaded and GameEvents.FirstUpdateTick 2017-05-10 23:44:58 -04:00
Jesse Plamondon-Willard b4584afda8 trace locale changes as non-verbose context 2017-05-09 22:37:53 -04:00
Jesse Plamondon-Willard 0d8009b231 fix installer finding redundant game paths on Linux 2017-05-09 22:37:05 -04:00
Jesse Plamondon-Willard 3fa71385e5 add warning for mods that don't set the UniqueID manifest field 2017-05-09 22:12:02 -04:00
Jesse Plamondon-Willard 494f9366a8 let mods dispose unmanaged resources when SMAPI is disposing (#282) 2017-05-09 22:02:17 -04:00
Jesse Plamondon-Willard 7ba0518bfd add 'debug' console command 2017-05-09 17:16:13 -04:00
Jesse Plamondon-Willard 3d73227587 when a fatal crash happens, keep a copy of the log and notify the player on relaunch 2017-05-09 01:46:40 -04:00
Jesse Plamondon-Willard 467d4a27ee reduce max consecutive draw crashes (#283) 2017-05-09 00:16:04 -04:00
Jesse Plamondon-Willard fa729fa700 don't try to recover from a completely broken sprite batch, which can cause a whole new set of problems (#283) 2017-05-09 00:14:59 -04:00
Jesse Plamondon-Willard 486ac29796 use shared reflection helper 2017-05-09 00:11:39 -04:00
Jesse Plamondon-Willard 85f609dc6c add optional verbose context logging 2017-05-08 02:18:58 -04:00
Jesse Plamondon-Willard 72a0b4fc6d detect unrecoverable draw errors (#283) 2017-05-08 01:57:07 -04:00
Jesse Plamondon-Willard 624840efe5 use more robust sprite batch recovery logic (#283) 2017-05-07 13:09:32 -04:00
Jesse Plamondon-Willard 8963793bf8 exit game after many consecutive unrecoverable draw errors (#283) 2017-05-07 02:50:36 -04:00
Jesse Plamondon-Willard 0e304e4d51 added basic context logging to simplify troubleshooting 2017-05-07 01:56:39 -04:00
Jesse Plamondon-Willard c84310dfeb Merge branch 'develop' into stable 2017-05-03 13:02:15 -04:00
Jesse Plamondon-Willard 0a2f7e52b9 fix code style 2017-05-03 12:46:48 -04:00
Jesse Plamondon-Willard 0530270790 bump version for release 2017-05-03 12:30:40 -04:00
Jesse Plamondon-Willard 6557c5241b bundle libgdiplus into SMAPI on Linux/Mac to fix errors loading PNGs (#277) 2017-05-03 12:28:05 -04:00
Jesse Plamondon-Willard dfa4bbaa39 adopt pufferchick as SMAPI icon 2017-05-03 11:58:33 -04:00
Jesse Plamondon-Willard 3ed16a8ea6 recover game after draw errors to prevent crash 2017-05-03 11:36:36 -04:00
Jesse Plamondon-Willard e6d5883224 fix mods on Linux/Mac no longer working after the game saves (#281) 2017-05-03 01:23:24 -04:00
Jesse Plamondon-Willard 0ef31f0b9e support players with multiple copies of the game when installing (#274) 2017-05-03 00:40:21 -04:00
Jesse Plamondon-Willard 45613b4851 store unknown fields in IManifest::ExtraFields (#275) 2017-05-02 23:53:15 -04:00
Jesse Plamondon-Willard 24aa8bb64d default content API to ContentSource.ModFolder (#276) 2017-05-02 23:45:25 -04:00
Jesse Plamondon-Willard 8503bf9cd9 fix XNBs loaded from the mod folder through the content API never being found on Mac (#278) 2017-05-02 23:25:23 -04:00