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