Commit Graph

1200 Commits

Author SHA1 Message Date
Jesse Plamondon-Willard 86d4827df2 simplify input & output format (#336) 2017-09-22 03:01:40 -04:00
Jesse Plamondon-Willard 399b98b36b suppress null properties in JSON responses (#336) 2017-09-22 02:06:54 -04:00
Jesse Plamondon-Willard 7d703c9c5c handle invalid Nexus mod IDs (#336) 2017-09-22 02:00:15 -04:00
Jesse Plamondon-Willard 86e5559678 switch mod update endpoint to GET with comma-delimited mod keys (#336) 2017-09-22 01:57:18 -04:00
Jesse Plamondon-Willard ef60b8d32a add version number to route for future use (#336) 2017-09-22 01:23:27 -04:00
Jesse Plamondon-Willard 9c072333d1 rename mods endpoint & model (#336) 2017-09-22 00:58:25 -04:00
Jesse Plamondon-Willard 2c02dfe45a rewrite to make update-check logic vendor-agnostic (#336) 2017-09-22 00:47:46 -04:00
Jesse Plamondon-Willard edbc3ef3c0 refactor Nexus code into generic vendor, rewrite using fluent HTTP client (#336) 2017-09-22 00:13:04 -04:00
Jesse Plamondon-Willard dfae52b1e5 fix manual serialisation (#336) 2017-09-21 23:50:34 -04:00
Jesse Plamondon-Willard 1bd59fc1d8 split input model from Nexus response model (#336) 2017-09-21 23:48:47 -04:00
Jesse Plamondon-Willard cddcd9a8cf standardise project name (#336) 2017-09-21 23:39:12 -04:00
Jesse Plamondon-Willard 9791de306c minor cleanup, formatting, documentation (#336) 2017-09-21 23:35:18 -04:00
Jesse Plamondon-Willard f0e2117f70 remove mod metadata from instruction handlers, no longer needed (#347) 2017-09-20 00:33:36 -04:00
Jesse Plamondon-Willard 81c42ac773 warn for mods which change the serialiser (#347) 2017-09-20 00:23:45 -04:00
Jesse Plamondon-Willard 5126992958 disable new ReSharper inspection 2017-09-20 00:09:47 -04:00
Jesse Plamondon-Willard 1aa44b2624 add support for detecting game patching via Harmony (#347) 2017-09-20 00:08:04 -04:00
Jesse Plamondon-Willard ab135fbd84 encapsulated duplicate code (#347) 2017-09-19 23:53:22 -04:00
Jesse Plamondon-Willard 1cf7c2e872 rename file to match new type name (#347) 2017-09-19 23:43:41 -04:00
Jesse Plamondon-Willard ebf22c1b06 generalise IInstructionRewriter into IInstructionHandler (#347) 2017-09-19 23:42:54 -04:00
Jesse Plamondon-Willard fd10cf958c move rewriters into metadata class (#347) 2017-09-19 23:02:00 -04:00
Jesse Plamondon-Willard c513bb011c pass mod metadata into rewriters (#347) 2017-09-19 22:52:52 -04:00
Jesse Plamondon-Willard 954de8c4f2 move monitor.LogOnce into internal extensions for reuse (#347) 2017-09-19 22:46:00 -04:00
Jesse Plamondon-Willard 8c5bd12f47 merge assembly rewriters into main SMAPI project (#347) 2017-09-19 22:45:28 -04:00
Jesse Plamondon-Willard 23951220ae fix errors loading some custom map tilesheets on Linux/Mac 2017-09-08 13:18:43 -04:00
Jesse Plamondon-Willard 1825755e75 update for release 2017-09-08 11:50:49 -04:00
Jesse Plamondon-Willard c994747e51 add UTC timestamp to logs 2017-09-06 23:22:11 -04:00
Jesse Plamondon-Willard b2b3df08bc rewrite date calculation to handle edge cases 2017-09-06 22:04:51 -04:00
Jesse Plamondon-Willard d971514a3d fix '.dll.dll' in logs (#355) 2017-09-03 15:51:38 -04:00
Jesse Plamondon-Willard b86d9f7c0e handle maps referencing a non-spring seasonal variation (#352) 2017-09-03 00:00:39 -04:00
Jesse Plamondon-Willard 3e820b82bc account for game loading tilesheets from either Content or Content\Maps (#352) 2017-09-02 23:58:43 -04:00
Jesse Plamondon-Willard dac21226d2 fix IAssetLoader instances not able to load a map tilesheet if it doesn't also exist in the content folder (#352) 2017-09-01 21:05:08 -04:00
Jesse Plamondon-Willard da11ea66db add SButton extension to get InputButton equivalent 2017-09-01 14:51:12 -04:00
Jesse Plamondon-Willard 7167cd2253 simplify & fix asset disposal (#352) 2017-08-24 22:17:42 -04:00
Jesse Plamondon-Willard 5171829ecc restructure content manager to better handle asset disposal (#352) 2017-08-24 21:48:56 -04:00
Jesse Plamondon-Willard f446a4391a fix game's main temporary content manager not being intercepted (#352) 2017-08-24 20:48:06 -04:00
Jesse Plamondon-Willard 5622e3b319 fix map tilesheet load not handling seasonal variations (#352) 2017-08-24 20:44:44 -04:00
Jesse Plamondon-Willard 7d5f95a6db update for SMAPI 1.15.3 release 2017-08-23 16:23:45 -04:00
Jesse Plamondon-Willard e93d58f69b fix incorrect 'mod already loaded' errors in some cases 2017-08-23 16:13:28 -04:00
Jesse Plamondon-Willard e42f06c916 update for 1.15.2 release 2017-08-21 14:49:09 -04:00
Jesse Plamondon-Willard 80fe706f19 show friendlier error when players have two copies of a mod 2017-08-21 14:22:19 -04:00
Jesse Plamondon-Willard 723ddc255e break loops when loading assets through a mod loader 2017-08-17 17:46:45 -04:00
Jesse Plamondon-Willard 9e1d01d4fe fix 1.x build 2017-08-17 12:16:39 -04:00
Jesse Plamondon-Willard 8e9b99ec99 update unit test packages 2017-08-16 23:56:20 -04:00
Jesse Plamondon-Willard 2ec0e0e26a only invalidate cache entries matched by new interceptors 2017-08-16 23:27:07 -04:00
Jesse Plamondon-Willard 49ff572932 fix build config 2017-08-16 23:03:14 -04:00
Jesse Plamondon-Willard 2ebc0714b1 add terminal support on Xfce (#345)
Thanks to Patronos!
2017-08-16 21:51:03 -04:00
Jesse Plamondon-Willard 1e48e7d12b add tool tilesheet to core assets to reload (#346) 2017-08-16 21:46:01 -04:00
Jesse Plamondon-Willard da4708337b minor tweaks to .editorconfig 2017-08-14 21:26:33 -04:00
Jesse Plamondon-Willard 72d42ddff8 move custom build configuration into common.targets to simplify maintenance 2017-08-14 08:22:50 -04:00
Jesse Plamondon-Willard c47e43a1e9 rename crossplatform.targets to common.targets for reuse 2017-08-14 08:11:11 -04:00
Jesse Plamondon-Willard 67b1a8398f fix SemanticVersion not being deserialisable through Json.NET 2017-08-14 07:55:21 -04:00
Jesse Plamondon-Willard 56c66ca4e5 update compatibility list 2017-08-14 02:14:25 -04:00
Jesse Plamondon-Willard 021672e43d add content helper properties for the current language 2017-08-14 01:57:11 -04:00
Jesse Plamondon-Willard 527b00ee13 ignore installer arguments until SMAPI 2.0 2017-08-14 01:53:15 -04:00
Jesse Plamondon-Willard f89d41cdad bump version for upcoming SMAPI 1.15.2 release 2017-08-14 00:15:16 -04:00
Jesse Plamondon-Willard dc99ae761f blacklist old versions of Entoarox mods (overhauled for SMAPI 1.11+ compatibility) 2017-08-14 00:14:45 -04:00
spacechase0 dafebd1626 Fix building SMAPI 1.x 2017-08-09 17:41:36 -04:00
Jesse Plamondon-Willard baeaf826a9 add asset editors & loaders to content API in 2.0 (#255) 2017-08-07 14:12:18 -04:00
Jesse Plamondon-Willard 7976df8565 optimise semver regex using atomic groups 2017-08-02 02:36:55 -04:00
Jesse Plamondon-Willard a15a2c5d09 tweak semantic version regex to fix unnecessary capturing groups 2017-08-02 02:24:02 -04:00
Jesse Plamondon-Willard 937750f100 add installer command-line arguments for scripting (#337) 2017-08-02 01:36:56 -04:00
Jesse Plamondon-Willard 3ffcac3f1f fix Context.IsPlayerFree being false when player can't move (#330)
For example, the value was false when the player used a tool which wasn't intended.
2017-08-02 00:26:56 -04:00
Jesse Plamondon-Willard 201d54bbeb standardise code & update release notes (#339) 2017-08-01 15:35:06 -04:00
Nicholas Johnson 4ff15b9da9 add weekday property to SDate (#339) 2017-08-01 15:27:02 -04:00
Jesse Plamondon-Willard 3599daee45 remove support for invalidating mod assets per discussion (#335) 2017-08-01 00:51:27 -04:00
Jesse Plamondon-Willard 9b22f3e004 fix GraphicsEvents.Resize being raised before the game updates its window data (#328) 2017-07-31 23:48:53 -04:00
Jesse Plamondon-Willard 7992b52f03 fix AfterDayStarted event being raised during the new-game intro (#332) 2017-07-31 23:18:49 -04:00
Jesse Plamondon-Willard 17acf248b6 prevent mods from accessing SMAPI internals using its own reflection helper (#334) 2017-07-31 21:54:46 -04:00
Jesse Plamondon-Willard 64facdd439 add support for reloading more singleton assets (#335) 2017-07-23 20:44:04 -04:00
Jesse Plamondon-Willard e8648e217a add support for reloading wallpaper and building textures (#335) 2017-07-23 20:22:33 -04:00
Jesse Plamondon-Willard eeee6b185d use more flexible approach to core asset reloading (#335) 2017-07-23 19:39:17 -04:00
Jesse Plamondon-Willard 467ad2ffd4 let mods invalidate cached assets by name or type (#335) 2017-07-23 17:36:31 -04:00
Jesse Plamondon-Willard 4ea6a4102b add support for partial cache invalidation (#335) 2017-07-23 15:08:14 -04:00
Jesse Plamondon-Willard f7e22b551a remove outdated message about beta release branch (#333) 2017-07-23 13:16:01 -04:00
Jesse Plamondon-Willard 74be6f1311 improve handling of legacy non-semantic game versions (#333) 2017-07-23 13:15:28 -04:00
Jesse Plamondon-Willard 5cf961ab64 fix unit test 2017-07-23 13:09:30 -04:00
Jesse Plamondon-Willard e04fc84190 update compatibility list 2017-07-23 12:18:52 -04:00
Jesse Plamondon-Willard c20b21bcaa add support for disambiguating IDs in mod compatibility list 2017-07-23 12:14:33 -04:00
Jesse Plamondon-Willard 1bf8e2b95c change order of broken-in-2.0 checks to show more meaningful matches first 2017-07-23 12:13:56 -04:00
Jesse Plamondon-Willard 17fec9034c tweak heuristic skip text, add error if mod doesn't implement Entry 2017-07-23 12:13:17 -04:00
Jesse Plamondon-Willard 7c1ac555a4 simplify compatibility list by defaulting compatibility type, update readme 2017-07-23 12:11:46 -04:00
Jesse Plamondon-Willard 7d73b0bf0c simplify compatibility skip message in 2.0 & combine update URL fields 2017-07-23 11:58:24 -04:00
Jesse Plamondon-Willard 6ddcef61e9 simplify mod compatibility model parsing 2017-07-23 11:50:24 -04:00
Jesse Plamondon-Willard d0e0e9427e rename ManifestFieldConverter for broader usage 2017-07-23 11:50:18 -04:00
Jesse Plamondon-Willard 24b824644d make semantic versions equatable in 2.0 2017-07-23 11:50:09 -04:00
Jesse Plamondon-Willard 5726ebe20e remove TrainerMod's save and load commands in 2.0 2017-07-23 11:37:55 -04:00
Jesse Plamondon-Willard 48ced0336c use more readable colours if player has a light-backgrounded terminal (#327) 2017-07-13 18:30:46 -04:00
Jesse Plamondon-Willard ae01396d9d fix crash in unique-ID check when mod has no manifest (#323) 2017-07-13 17:26:36 -04:00
Jesse Plamondon-Willard 834aee92f2 fix TrainerMod including Json.NET 2017-07-10 22:09:02 -04:00
Jesse Plamondon-Willard eff3581406 change SMAPI 2.0 link in deprecation warnings 2017-07-10 20:47:16 -04:00
Jesse Plamondon-Willard 9256bfc45a bump version for release 2017-07-10 20:38:21 -04:00
Jesse Plamondon-Willard db29d6677f fix legacy controller events broken in 1.15 (#325) 2017-07-10 20:25:38 -04:00
Jesse Plamondon-Willard 234b640342 normalise unique IDs in mod registry lookups, update release notes 2017-07-10 14:43:52 -04:00
Jesse Plamondon-Willard d82e57d306 enable SMAPI 2.0 mode by default
This commit replaces the SMAPI_2_0 compile flag with SMAPI_1_x.
2017-07-10 14:33:36 -04:00
Jesse Plamondon-Willard 61d13d370c fail mods if their unique ID isn't unique (#323) 2017-07-10 13:30:20 -04:00
Jesse Plamondon-Willard 7bf0c66088 reduce duplicate code in unit tests 2017-07-10 13:25:19 -04:00
Jesse Plamondon-Willard 49edb712ec fix unit tests broken by removing Stardew Valley.exe from build output 2017-07-10 12:53:58 -04:00
Jesse Plamondon-Willard 182828f194 fix Stardew Valley.exe being packaged with TrainerMod 2017-07-09 22:22:41 -04:00
Jesse Plamondon-Willard 8743c4115a tweak deprecation meta-warning 2017-07-08 12:53:12 -04:00
Jesse Plamondon-Willard cb5e2e34c7 remove another reference to removed file 2017-07-08 12:31:45 -04:00
Jesse Plamondon-Willard d74463092d standardise file encoding 2017-07-08 12:31:22 -04:00
Jesse Plamondon-Willard d426d72498 update for 1.15 release 2017-07-07 17:20:09 -04:00
Jesse Plamondon-Willard f1fabd410b remove reference to removed file 2017-07-07 17:15:08 -04:00
Jesse Plamondon-Willard e61f060b96 simplify stardewvalley.targets support, add to release notes (#319) 2017-07-07 16:58:55 -04:00
spacechase0 7e856106b8 Tweak debug deploy to respect stardewvalley.targets 2017-07-07 21:55:32 +01:00
Jesse Plamondon-Willard 5583e707b2 split helper out of mod registry, add mod ID, refactor ModHelper constructor (#318) 2017-07-07 12:17:22 -04:00
Jesse Plamondon-Willard 053c0577ec add mod ID to mod helpers (#318) 2017-07-07 11:44:18 -04:00
Jesse Plamondon-Willard f033b5a2f7 group mod helpers (#318) 2017-07-07 11:39:09 -04:00
Jesse Plamondon-Willard c5e106801e split reflection logic out of mod helper (#318) 2017-07-07 11:29:17 -04:00
Jesse Plamondon-Willard 3b8d1e49f0 make deprecation warnings a bit less scary until we finish first-pass SMAPI 2.0 migration 2017-07-07 01:54:53 -04:00
Jesse Plamondon-Willard da8a56a855 tweak text when mod crashes on entry, increase log level to error 2017-07-07 01:53:55 -04:00
Jesse Plamondon-Willard d928bf188e add optional mod dependencies in SMAPI 2.0 (#287) 2017-07-06 17:46:04 -04:00
Jesse Plamondon-Willard e2b9a4bab3 serialise SButtons as string in config.json (#316) 2017-07-06 15:17:47 -04:00
Jesse Plamondon-Willard baf2c63282 add method to suppress button input from game (#317) 2017-07-05 15:43:50 -04:00
Jesse Plamondon-Willard 8d301162d8 add InputEvents which unify keyboard, mouse, and controller input with more metadata (#316) 2017-07-05 15:41:58 -04:00
Jesse Plamondon-Willard 2f42051cc9 tweak method name per feedback (#255) 2017-07-04 18:18:52 -04:00
Jesse Plamondon-Willard 5ad74396fc correct manual install steps 2017-07-03 15:23:54 -04:00
Jesse Plamondon-Willard 96da7c1cbc fix crash in new content manager when returning to title (#255) 2017-07-03 14:49:29 -04:00
Jesse Plamondon-Willard 18e5e42529 defer some console changes until SMAPI 2.0 2017-07-03 14:26:45 -04:00
Jesse Plamondon-Willard 0f05e7bd54 fix error when mods have no manifest 2017-07-03 14:12:15 -04:00
Jesse Plamondon-Willard 697155c8a2 update deprecation warning text 2017-07-03 14:11:39 -04:00
Jesse Plamondon-Willard 7cb523cd49 bump all deprecation levels to 'pending removal' 2017-07-03 14:09:26 -04:00
Jesse Plamondon-Willard 136525b40d remove System.ValueTuple
This caused reference errors on Linux/Mac, and there aren't enough use cases to look into it further for now.
2017-07-03 01:29:56 -04:00
Jesse Plamondon-Willard 771263299c add SMAPI 2.0 compile mode 2017-07-03 01:03:13 -04:00
Jesse Plamondon-Willard c9c354a66f slim down console output for players some more 2017-07-02 21:36:04 -04:00
Jesse Plamondon-Willard 6a628a4d8a simplify log timestamps in console (except in developer mode) 2017-07-02 21:24:32 -04:00
Jesse Plamondon-Willard 0e6d30f65b further simplify console output for players 2017-07-02 20:51:49 -04:00
Jesse Plamondon-Willard 698328c52f fix rare crash for some players when window loses focus (#306) 2017-07-02 19:42:05 -04:00
Jesse Plamondon-Willard e69d1615c4 throw more useful error when JSON file is invalid (#314) 2017-07-02 19:32:40 -04:00
Jesse Plamondon-Willard f698352718 tweak trace logging when loading mods 2017-07-02 18:27:22 -04:00
Jesse Plamondon-Willard f904b3da97 add unified player_add command which adds any item type (#302) 2017-07-02 18:17:20 -04:00
Jesse Plamondon-Willard 40e8d3da0e migrate list_items command to new item repository (#302) 2017-07-02 17:37:30 -04:00
Jesse Plamondon-Willard a0c4746c27 add list_item_types command (#302) 2017-07-02 17:22:36 -04:00
Jesse Plamondon-Willard 5d5f7192dc add item repository which returns all spawnable items in the game (#302)
Based on code I wrote for CJB Item Spawner.
2017-07-02 17:21:28 -04:00
Jesse Plamondon-Willard 2ca49fba62 encapsulate TrainerMod's argument parsing (#302) 2017-07-02 02:45:02 -04:00
Jesse Plamondon-Willard f9482906ae split TrainerMod commands into separate classes (#302) 2017-07-02 01:32:07 -04:00
Jesse Plamondon-Willard 6da5a2d56d prevent mods from using SMAPI 2.0 content interception without reflection (#255) 2017-07-01 23:24:29 -04:00
Jesse Plamondon-Willard f95c7e8d72 add support for asset loaders (#255) 2017-07-01 23:13:43 -04:00
Jesse Plamondon-Willard 600ef56286 improve error handling when mods set invalid asset value (#255) 2017-07-01 21:31:21 -04:00
Jesse Plamondon-Willard 306427786b let mods implement IAssetEditor for simple cases (#255) 2017-07-01 19:55:08 -04:00
Jesse Plamondon-Willard 3b6adf3c26 reset asset cache when a new interceptor is added (#255)
This lets new interceptors edit assets loaded before they were added, particularly assets loaded before mods are initialised.
2017-07-01 19:39:04 -04:00
Jesse Plamondon-Willard 4568f2259b ensure there's only one content manager instance (#255) 2017-07-01 19:35:24 -04:00
Jesse Plamondon-Willard 9651e87053 slight refactor 2017-07-01 19:27:05 -04:00
Jesse Plamondon-Willard 306c044c4a group skipped mods in console log 2017-07-01 13:39:31 -04:00
Jesse Plamondon-Willard 271843d861 tweak asset interception code to simplify future work (#255) 2017-07-01 12:18:41 -04:00
Jesse Plamondon-Willard 49c75de5fc rewrite content interception using latest proposed API (#255) 2017-07-01 12:18:41 -04:00
Jesse Plamondon-Willard 7b6b2742f6 fix corrupted state exceptions not being logged by SMAPI 2017-06-27 11:37:50 -04:00
Jesse Plamondon-Willard a9958dac6a clean up log output when loading mods 2017-06-27 11:22:36 -04:00
Jesse Plamondon-Willard f7f1b1e513 add CONTRIBUTING.md file 2017-06-26 12:26:35 -04:00
Jesse Plamondon-Willard 6073d24cab change manifest.MinimumApiVersion to ISemanticVersion 2017-06-26 11:08:45 -04:00
Jesse Plamondon-Willard 8d7b5b3726 improve logging when SMAPI loads mods 2017-06-26 11:01:47 -04:00
Jesse Plamondon-Willard e66ee50cae add manual install steps to readme (removing from main guide) 2017-06-19 20:41:48 -04:00
Jesse Plamondon-Willard 640a523eb4 when the ObjectInformation.xnb file is broken, print one error instead of a warning flood 2017-06-19 02:12:18 -04:00
Jesse Plamondon-Willard 565aa2c67b add unit tests for version comparison 2017-06-19 01:26:22 -04:00
Jesse Plamondon-Willard a011c28d40 make version parsing stricter, add unit tests for parsing (#309) 2017-06-19 01:05:43 -04:00
Jesse Plamondon-Willard ec914874ec reorganise unit tests 2017-06-18 22:16:51 -04:00
Jesse Plamondon-Willard fb8fefea00 show friendly error when parsing a manifest version fails (#308) 2017-06-18 22:11:48 -04:00
Jesse Plamondon-Willard b46776a4fb enable string versions in manifest.json (#308) 2017-06-18 22:08:56 -04:00
Jesse Plamondon-Willard 3e50c90230 add IEquatable<SDate> interface to SDate (#307) 2017-06-18 20:55:12 -04:00
Jesse Plamondon-Willard 0a8c07cc07 simplify date operators by making SDate.GetHashCode() return unique ordered values, expand unit tests (#307) 2017-06-18 20:24:32 -04:00
Jesse Plamondon-Willard 7e815911e2 add tuples to test project (#307) 2017-06-18 20:23:15 -04:00
Jesse Plamondon-Willard 9c22c2378f remove test adapter (#307) 2017-06-18 20:22:35 -04:00
Nicholas Johnson 230ab1738a - This adds in operators to SDate. And Tests. And a NUnit Adapter - sorry about the latter.. 2017-06-18 23:21:37 +01:00
Jesse Plamondon-Willard 3c3953a7fd add support for minimum dependency versions (#286) 2017-06-18 18:18:04 -04:00
Jesse Plamondon-Willard cdac6dad7d enable C# 7 tuples 2017-06-18 18:01:15 -04:00
Jesse Plamondon-Willard b0967e6309 add SerializerUtils to obsolete-mods list 2017-06-12 18:51:17 -04:00
Jesse Plamondon-Willard a4713ea882 add separate list of obsolete mods 2017-06-12 18:44:36 -04:00
Jesse Plamondon-Willard 2a9c8d43df add date utility 2017-06-07 02:08:20 -04:00
Chase W 57d20614b8 Add player_addwallpaper and player_addflooring 2017-06-04 16:22:36 -04:00
Jesse Plamondon-Willard fd485abe28 bump version for release 2017-06-04 16:21:56 -04:00
Jesse Plamondon-Willard 91cec58fdb tweak translation API to always return translations (#303) 2017-06-03 23:56:43 -04:00
Jesse Plamondon-Willard 3a8e77a309 update for release 2017-06-02 18:25:11 -04:00
Jesse Plamondon-Willard 9610ccb519 add TimeSpeed <2.2.1 to incompatibility list 2017-06-02 18:00:57 -04:00
Jesse Plamondon-Willard 40dc986ff2 bump incompatible version of Better Sprinklers 2017-06-02 01:59:37 -04:00
Jesse Plamondon-Willard 798439ea34 deprecate TimeEvents.DayOfMonthChanged, SeasonOfYearChanged, and YearOfGameChanged 2017-05-29 23:52:33 -04:00
Jesse Plamondon-Willard 6f69a1aca9 fix translation error when passing tokens for a null translation (#296) 2017-05-29 15:29:22 -04:00
Jesse Plamondon-Willard 9d9383e235 drop special case for SDV 1.2.29 bug (min version is now 1.2.30) 2017-05-28 20:58:31 -04:00
Jesse Plamondon-Willard bbfd42eeb3 bump minimum game version to 1.2.30 2017-05-28 20:31:50 -04:00
Jesse Plamondon-Willard 90275f1d56 add shortcut for translation with tokens (#296) 2017-05-28 17:53:44 -04:00
Jesse Plamondon-Willard e20db6e8e4 add token support for instance fields, expand unit test (#296) 2017-05-28 17:34:53 -04:00
Jesse Plamondon-Willard 423a2f5012 combine Translation::Tokens overloads, support dictionaries with any generic types (#296) 2017-05-28 11:23:42 -04:00
Jesse Plamondon-Willard af28b87660 make unit test easier to extend (#296) 2017-05-28 11:21:49 -04:00
Jesse Plamondon-Willard 2958381b54 shorten translation method name, remove helper method (#296) 2017-05-28 10:51:58 -04:00
Jesse Plamondon-Willard 2109229660 add 'reload_i18n' console command to reload translation files (#296) 2017-05-28 01:58:50 -04:00
Jesse Plamondon-Willard 5af58c7b18 refactor translation init for reuse (#296) 2017-05-28 01:49:21 -04:00
Jesse Plamondon-Willard 12ffd9c334 add shortcut indexer to translation API (#296) 2017-05-28 01:06:35 -04:00
Jesse Plamondon-Willard 01197b0eb1 minor cleanup 2017-05-28 01:05:41 -04:00
Jesse Plamondon-Willard 0c992e562a simplify debug command output (#297) 2017-05-28 00:46:25 -04:00
Jesse Plamondon-Willard 698930820c log debug command output (#297) 2017-05-28 00:39:01 -04:00
Jesse Plamondon-Willard 586f27c4c2 remove unneeded SGame fields 2017-05-28 00:13:43 -04:00
Jesse Plamondon-Willard 173dd8cd03 add Context.IsPlayerFree 2017-05-27 23:48:16 -04:00
Jesse Plamondon-Willard 55fa8198ff fix content API not matching XNB files with two dots (like 'a.b.xnb') if extension isn't specified 2017-05-27 01:01:45 -04:00
Jesse Plamondon-Willard e92dbc41df improve libgdiplus.dylib fix for Mono players 2017-05-27 00:21:48 -04:00
Jesse Plamondon-Willard 3324628e3b standardise indentation in unix launcher 2017-05-26 23:55:57 -04:00
Jesse Plamondon-Willard 395925ad2b fix errors handling dependencies if some mods have no manifest 2017-05-26 00:33:32 -04:00
Jesse Plamondon-Willard 569ae2b87b reduce ContentLoadException nesting 2017-05-25 21:52:15 -04:00
Jesse Plamondon-Willard 7f210cd7b0 fix tilesheets for local XNB maps too 2017-05-25 21:35:43 -04:00
Jesse Plamondon-Willard a47ca7e391 expand .tbin loading to support custom tilesheets from the mod folder 2017-05-25 21:02:05 -04:00
Jesse Plamondon-Willard 24e214b601 minor cleanup 2017-05-25 20:55:08 -04:00
Platonymous a91e111247 Added experimental .tbin support 2017-05-26 00:12:40 +01:00
Jesse Plamondon-Willard f5063cf81e add translation unit tests (#296) 2017-05-24 17:00:23 -04:00
Jesse Plamondon-Willard 79dabe2671 add translation API (#296) 2017-05-24 13:48:17 -04:00
Jesse Plamondon-Willard 56919271fc fix Context.IsInDrawLoop having a public setter 2017-05-23 23:31:34 -04:00
Jesse Plamondon-Willard 8f1379e273 fix rare crash when window loses focus for some players 2017-05-23 16:51:03 -04:00
Jesse Plamondon-Willard 5fa13459d3 show friendly error when running install.exe from within zip file 2017-05-22 18:55:09 -04:00
Jesse Plamondon-Willard 51d56f1eec add Context.IsInDrawLoop for specialised mods 2017-05-22 16:41:50 -04:00
Jesse Plamondon-Willard ec19c85d66 reimplement event deprecation warnings to fix "unknown mod" warnings 2017-05-21 18:22:21 -04:00
Jesse Plamondon-Willard bf3ed26a8b fix smapi-crash.txt being copied from default log even if --log-path is specified 2017-05-21 17:58:17 -04:00
Jesse Plamondon-Willard 9e7c77f1f4 enable mod dependencies (#285) 2017-05-21 17:29:40 -04:00
Jesse Plamondon-Willard c4eb21bd31 update installer readme 2017-05-20 15:11:51 -04:00
Jesse Plamondon-Willard d47e55d040 show friendly errors when the game is missing or pre-1.2 2017-05-20 15:11:36 -04:00
Jesse Plamondon-Willard ca44c3f329 bump version for release 2017-05-20 00:29:13 -04:00
Jesse Plamondon-Willard 9ef4876c5e add metadata to internal mod registry & use mod display name everywhere 2017-05-20 00:29:04 -04:00
Jesse Plamondon-Willard 2781c27786 fix error when loading a mod with no version 2017-05-19 23:49:59 -04:00
Jesse Plamondon-Willard cbb1777ba0 bump version for release 2017-05-19 17:31:00 -04:00
Jesse Plamondon-Willard def73fceaf improve game install path detection 2017-05-18 17:02:34 -04:00
Jesse Plamondon-Willard 1b1f37d082 fix build error with Mono 5.0 on Linux/Mac 2017-05-18 16:56:28 -04:00
Jesse Plamondon-Willard 37a2e34507 also raise location-list-changed on load 2017-05-17 21:25:18 -04:00
Jesse Plamondon-Willard bc1e17bc8c fix mod-loading code not accounting for metadata failure 2017-05-17 15:44:18 -04:00
Jesse Plamondon-Willard 228f84eea6 raise location/player changed events on load 2017-05-17 14:30:57 -04:00
Jesse Plamondon-Willard f9c708d863 drop support for multiple player indexes (not relevant for Stardew Valley) 2017-05-17 12:16:25 -04:00
Jesse Plamondon-Willard 6ce07be2fa fix crash in unreleased code when loading a save that hasn't visited the mines yet 2017-05-17 11:52:21 -04:00
Jesse Plamondon-Willard d5ea812d7c adjust return-to-title code 2017-05-17 11:51:49 -04:00
Jesse Plamondon-Willard 8439594b10 fix errors during overridden update loop immediately crashing the game with no log entry 2017-05-17 11:45:17 -04:00
Jesse Plamondon-Willard 2d5d9c7c53 make content event available in experimental mode 2017-05-16 23:09:37 -04:00
Jesse Plamondon-Willard 89d7a3f846 add compile flag for experimental mod dependencies features 2017-05-16 23:04:38 -04:00
Jesse Plamondon-Willard bf02c54f8b Merge branch 'feature/285-mod-dependencies' into develop
# Conflicts:
#	src/StardewModdingAPI/Framework/ModRegistry.cs
#	src/StardewModdingAPI/Program.cs
2017-05-16 22:57:52 -04:00
Jesse Plamondon-Willard a0e9fa9f3e tweak release notes 2017-05-16 19:22:09 -04:00
Jesse Plamondon-Willard 11569dac31 fix maps not recognising custom tilesheets added through the SMAPI content API 2017-05-16 19:15:28 -04:00
Jesse Plamondon-Willard f4a2d8100f add warning for mods that don't have a name or version 2017-05-16 01:15:02 -04:00
Jesse Plamondon-Willard bca78cd682 add Context.IsWorldReady flag 2017-05-15 22:51:49 -04:00
Jesse Plamondon-Willard aafb3315cb update compatibility blacklist for SDV 1.2 2017-05-15 22:41:44 -04:00
Jesse Plamondon-Willard 419ca82427 tweak .editorconfig JSON indentation rules 2017-05-15 20:44:34 -04:00
Jesse Plamondon-Willard fec67fe6fd fix world/player events being raised when the player loads a save due to values being initialised 2017-05-14 22:04:32 -04:00
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 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
Jesse Plamondon-Willard e4357c3c7d fix error when using content API to load a PNG during early game init (#280) 2017-05-02 00:43:15 -04:00
Jesse Plamondon-Willard d4f172fef1 bump version for release 2017-04-30 18:54:14 -04:00
Jesse Plamondon-Willard 901353ee04 tweak code inspection rules 2017-04-30 01:07:22 -04:00
Jesse Plamondon-Willard d21f8d6b22 fix crossplatform compatibility (#257) 2017-04-30 01:06:57 -04:00
Jesse Plamondon-Willard 06c4273c1e bump minimum game version to released 1.2.26 2017-04-29 23:59:25 -04:00
Jesse Plamondon-Willard ddd9c0a804 let mods specify .xnb file extension explicitly (#257) 2017-04-29 23:38:45 -04:00
Jesse Plamondon-Willard 3cfe14d279 add contentHelper.GetActualAssetKey(..) to support custom map tilesheets (#257) 2017-04-29 22:44:57 -04:00
Jesse Plamondon-Willard f52edf9e0b fix mod events triggering during game save in Stardew Valley 1.2 2017-04-29 21:46:01 -04:00
Jesse Plamondon-Willard ff5d1ef4e4 add internal context for more robust draw loop detection (#257) 2017-04-29 21:45:37 -04:00
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