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