summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build/common.targets2
-rw-r--r--docs/release-notes.md47
-rw-r--r--docs/technical/mod-package.md442
-rw-r--r--docs/technical/smapi.md15
-rw-r--r--src/SMAPI.Installer/Enums/ScriptAction.cs2
-rw-r--r--src/SMAPI.Installer/InteractiveInstaller.cs3
-rw-r--r--src/SMAPI.Installer/Program.cs2
-rw-r--r--src/SMAPI.ModBuildConfig/DeployModTask.cs6
-rw-r--r--src/SMAPI.ModBuildConfig/SMAPI.ModBuildConfig.csproj2
-rw-r--r--src/SMAPI.ModBuildConfig/build/smapi.targets3
-rw-r--r--src/SMAPI.ModBuildConfig/package.nuspec8
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/manifest.json4
-rw-r--r--src/SMAPI.Mods.SaveBackup/manifest.json4
-rw-r--r--src/SMAPI.Tests/Core/ModResolverTests.cs22
-rw-r--r--src/SMAPI.Tests/Utilities/PathUtilitiesTests.cs285
-rw-r--r--src/SMAPI.Toolkit/Framework/LowLevelEnvironmentUtility.cs163
-rw-r--r--src/SMAPI.Toolkit/SemanticVersion.cs47
-rw-r--r--src/SMAPI.Toolkit/Utilities/EnvironmentUtility.cs139
-rw-r--r--src/SMAPI.Toolkit/Utilities/PathUtilities.cs41
-rw-r--r--src/SMAPI.Web/Controllers/ModsApiController.cs8
-rw-r--r--src/SMAPI.Web/Framework/Extensions.cs2
-rw-r--r--src/SMAPI.Web/wwwroot/schemas/content-patcher.json102
-rw-r--r--src/SMAPI.sln.DotSettings2
-rw-r--r--src/SMAPI/Constants.cs48
-rw-r--r--src/SMAPI/Events/ChangeType.cs2
-rw-r--r--src/SMAPI/Events/OneSecondUpdateTickedEventArgs.cs2
-rw-r--r--src/SMAPI/Events/OneSecondUpdateTickingEventArgs.cs2
-rw-r--r--src/SMAPI/Events/UnvalidatedUpdateTickedEventArgs.cs2
-rw-r--r--src/SMAPI/Events/UnvalidatedUpdateTickingEventArgs.cs2
-rw-r--r--src/SMAPI/Events/UpdateTickedEventArgs.cs2
-rw-r--r--src/SMAPI/Events/UpdateTickingEventArgs.cs2
-rw-r--r--src/SMAPI/Events/WarpedEventArgs.cs1
-rw-r--r--src/SMAPI/Framework/CommandManager.cs1
-rw-r--r--src/SMAPI/Framework/Content/AssetData.cs7
-rw-r--r--src/SMAPI/Framework/Content/AssetDataForImage.cs13
-rw-r--r--src/SMAPI/Framework/Content/AssetDataForMap.cs5
-rw-r--r--src/SMAPI/Framework/Content/AssetDataForObject.cs15
-rw-r--r--src/SMAPI/Framework/Content/AssetInfo.cs9
-rw-r--r--src/SMAPI/Framework/ContentCoordinator.cs5
-rw-r--r--src/SMAPI/Framework/ContentManagers/BaseContentManager.cs2
-rw-r--r--src/SMAPI/Framework/ContentManagers/ModContentManager.cs6
-rw-r--r--src/SMAPI/Framework/ContentPack.cs34
-rw-r--r--src/SMAPI/Framework/CursorPosition.cs11
-rw-r--r--src/SMAPI/Framework/DeprecationLevel.cs2
-rw-r--r--src/SMAPI/Framework/DeprecationManager.cs1
-rw-r--r--src/SMAPI/Framework/Events/EventManager.cs2
-rw-r--r--src/SMAPI/Framework/Events/ManagedEvent.cs43
-rw-r--r--src/SMAPI/Framework/Events/ModGameLoopEvents.cs1
-rw-r--r--src/SMAPI/Framework/GameVersion.cs2
-rw-r--r--src/SMAPI/Framework/IModMetadata.cs14
-rw-r--r--src/SMAPI/Framework/Input/GamePadStateBuilder.cs31
-rw-r--r--src/SMAPI/Framework/Input/IInputStateBuilder.cs4
-rw-r--r--src/SMAPI/Framework/Input/KeyboardStateBuilder.cs17
-rw-r--r--src/SMAPI/Framework/Input/MouseStateBuilder.cs39
-rw-r--r--src/SMAPI/Framework/Input/SInputState.cs157
-rw-r--r--src/SMAPI/Framework/InternalExtensions.cs4
-rw-r--r--src/SMAPI/Framework/Logging/ConsoleInterceptionManager.cs59
-rw-r--r--src/SMAPI/Framework/Logging/InterceptingTextWriter.cs55
-rw-r--r--src/SMAPI/Framework/Logging/LogManager.cs600
-rw-r--r--src/SMAPI/Framework/ModHelpers/BaseHelper.cs4
-rw-r--r--src/SMAPI/Framework/ModHelpers/CommandHelper.cs13
-rw-r--r--src/SMAPI/Framework/ModHelpers/ContentHelper.cs44
-rw-r--r--src/SMAPI/Framework/ModHelpers/ContentPackHelper.cs13
-rw-r--r--src/SMAPI/Framework/ModHelpers/DataHelper.cs34
-rw-r--r--src/SMAPI/Framework/ModHelpers/InputHelper.cs14
-rw-r--r--src/SMAPI/Framework/ModHelpers/ModHelper.cs32
-rw-r--r--src/SMAPI/Framework/ModHelpers/ModRegistryHelper.cs15
-rw-r--r--src/SMAPI/Framework/ModHelpers/MultiplayerHelper.cs19
-rw-r--r--src/SMAPI/Framework/ModHelpers/ReflectionHelper.cs34
-rw-r--r--src/SMAPI/Framework/ModHelpers/TranslationHelper.cs13
-rw-r--r--src/SMAPI/Framework/ModLoading/AssemblyLoader.cs31
-rw-r--r--src/SMAPI/Framework/ModLoading/Finders/EventFinder.cs10
-rw-r--r--src/SMAPI/Framework/ModLoading/Finders/FieldFinder.cs10
-rw-r--r--src/SMAPI/Framework/ModLoading/Finders/MethodFinder.cs10
-rw-r--r--src/SMAPI/Framework/ModLoading/Finders/PropertyFinder.cs10
-rw-r--r--src/SMAPI/Framework/ModLoading/Finders/ReferenceToMemberWithUnexpectedTypeFinder.cs10
-rw-r--r--src/SMAPI/Framework/ModLoading/Finders/ReferenceToMissingMemberFinder.cs17
-rw-r--r--src/SMAPI/Framework/ModLoading/Finders/TypeAssemblyFinder.cs6
-rw-r--r--src/SMAPI/Framework/ModLoading/Finders/TypeFinder.cs6
-rw-r--r--src/SMAPI/Framework/ModLoading/Framework/BaseInstructionHandler.cs23
-rw-r--r--src/SMAPI/Framework/ModLoading/Framework/RecursiveRewriter.cs67
-rw-r--r--src/SMAPI/Framework/ModLoading/Framework/RewriteHelper.cs24
-rw-r--r--src/SMAPI/Framework/ModLoading/IInstructionHandler.cs3
-rw-r--r--src/SMAPI/Framework/ModLoading/ModFailReason.cs27
-rw-r--r--src/SMAPI/Framework/ModLoading/ModMetadata.cs95
-rw-r--r--src/SMAPI/Framework/ModLoading/ModResolver.cs48
-rw-r--r--src/SMAPI/Framework/ModLoading/Rewriters/FieldReplaceRewriter.cs35
-rw-r--r--src/SMAPI/Framework/ModLoading/Rewriters/FieldToPropertyRewriter.cs65
-rw-r--r--src/SMAPI/Framework/ModLoading/Rewriters/Harmony1AssemblyRewriter.cs13
-rw-r--r--src/SMAPI/Framework/ModLoading/Rewriters/HeuristicFieldRewriter.cs106
-rw-r--r--src/SMAPI/Framework/ModLoading/Rewriters/HeuristicMethodRewriter.cs109
-rw-r--r--src/SMAPI/Framework/ModLoading/Rewriters/MethodParentRewriter.cs9
-rw-r--r--src/SMAPI/Framework/ModLoading/Rewriters/StaticFieldToConstantRewriter.cs74
-rw-r--r--src/SMAPI/Framework/ModLoading/Rewriters/TypeReferenceRewriter.cs6
-rw-r--r--src/SMAPI/Framework/Models/SConfig.cs4
-rw-r--r--src/SMAPI/Framework/Monitor.cs32
-rw-r--r--src/SMAPI/Framework/Networking/MultiplayerPeer.cs18
-rw-r--r--src/SMAPI/Framework/Networking/MultiplayerPeerMod.cs6
-rw-r--r--src/SMAPI/Framework/Reflection/ReflectedField.cs7
-rw-r--r--src/SMAPI/Framework/Reflection/ReflectedMethod.cs9
-rw-r--r--src/SMAPI/Framework/Reflection/ReflectedProperty.cs7
-rw-r--r--src/SMAPI/Framework/Reflection/Reflector.cs2
-rw-r--r--src/SMAPI/Framework/Rendering/SXnaDisplayDevice.cs8
-rw-r--r--src/SMAPI/Framework/RequestExitDelegate.cs2
-rw-r--r--src/SMAPI/Framework/SCore.cs1443
-rw-r--r--src/SMAPI/Framework/SGame.cs2008
-rw-r--r--src/SMAPI/Framework/SGameConstructorHack.cs43
-rw-r--r--src/SMAPI/Framework/StateTracking/Snapshots/PlayerSnapshot.cs1
-rw-r--r--src/SMAPI/Framework/Utilities/Countdown.cs2
-rw-r--r--src/SMAPI/Framework/WatcherCore.cs7
-rw-r--r--src/SMAPI/IAssetDataForMap.cs2
-rw-r--r--src/SMAPI/IReflectedField.cs2
-rw-r--r--src/SMAPI/IReflectedMethod.cs2
-rw-r--r--src/SMAPI/Metadata/CoreAssetPropagator.cs45
-rw-r--r--src/SMAPI/Metadata/InstructionMetadata.cs5
-rw-r--r--src/SMAPI/PatchMode.cs2
-rw-r--r--src/SMAPI/Patches/DialogueErrorPatch.cs6
-rw-r--r--src/SMAPI/Patches/EventErrorPatch.cs11
-rw-r--r--src/SMAPI/Patches/LoadContextPatch.cs5
-rw-r--r--src/SMAPI/Patches/LoadErrorPatch.cs5
-rw-r--r--src/SMAPI/Patches/ObjectErrorPatch.cs5
-rw-r--r--src/SMAPI/Patches/ScheduleErrorPatch.cs5
-rw-r--r--src/SMAPI/Program.cs31
-rw-r--r--src/SMAPI/Properties/AssemblyInfo.cs5
-rw-r--r--src/SMAPI/SButton.cs2
-rw-r--r--src/SMAPI/SMAPI.config.json9
-rw-r--r--src/SMAPI/SMAPI.csproj3
-rw-r--r--src/SMAPI/SemanticVersion.cs47
-rw-r--r--src/SMAPI/Utilities/PathUtilities.cs45
-rw-r--r--src/SMAPI/Utilities/SDate.cs6
130 files changed, 3960 insertions, 3484 deletions
diff --git a/build/common.targets b/build/common.targets
index 43bbcba5..021e1fe6 100644
--- a/build/common.targets
+++ b/build/common.targets
@@ -4,7 +4,7 @@
<!--set properties -->
<PropertyGroup>
- <Version>3.6.2</Version>
+ <Version>3.7.0</Version>
<Product>SMAPI</Product>
<LangVersion>latest</LangVersion>
diff --git a/docs/release-notes.md b/docs/release-notes.md
index c6123bac..4671ba95 100644
--- a/docs/release-notes.md
+++ b/docs/release-notes.md
@@ -7,12 +7,45 @@
* Migrated to Harmony 2.0 (see [_migrate to Harmony 2.0_](https://stardewvalleywiki.com/Modding:Migrate_to_Harmony_2.0) for more info).
-->
+## 3.7
+Released 07 September 2020 for Stardew Valley 1.4.1 or later. See [release highlights](https://www.patreon.com/posts/41341767).
+
+* For players:
+ * Added heuristic compatibility rewrites. (This improves mod compatibility with Android and future game updates.)
+ * Tweaked the rules for showing update alerts (see _for SMAPI developers_ below for details).