summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesse Plamondon-Willard <Pathoschild@users.noreply.github.com>2021-01-22 21:05:04 -0500
committerJesse Plamondon-Willard <Pathoschild@users.noreply.github.com>2021-01-22 21:05:04 -0500
commitd0dc3ea6f6d03e6aabdab5f5f10a60177f0e53b6 (patch)
tree02896d970c7650d8f7c8b84f54e53eddab88b4ca
parent5953fc3bd083ae0a579d2da1ad833e6163848086 (diff)
parent733750fdc4f5d16069d95880144619c0e31e8a89 (diff)
downloadSMAPI-d0dc3ea6f6d03e6aabdab5f5f10a60177f0e53b6.tar.gz
SMAPI-d0dc3ea6f6d03e6aabdab5f5f10a60177f0e53b6.tar.bz2
SMAPI-d0dc3ea6f6d03e6aabdab5f5f10a60177f0e53b6.zip
Merge branch 'develop' into stable
-rw-r--r--build/common.targets12
-rw-r--r--build/find-game-folder.targets18
-rw-r--r--build/prepare-install-package.targets6
-rw-r--r--docs/release-notes.md40
-rw-r--r--src/SMAPI.Installer/InteractiveInstaller.cs3
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/Framework/Commands/ConsoleCommand.cs (renamed from src/SMAPI.Mods.ConsoleCommands/Framework/Commands/TrainerCommand.cs)6
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/Framework/Commands/IConsoleCommand.cs (renamed from src/SMAPI.Mods.ConsoleCommands/Framework/Commands/ITrainerCommand.cs)2
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/Framework/Commands/Other/ApplySaveFixCommand.cs2
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/Framework/Commands/Other/DebugCommand.cs2
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/Framework/Commands/Other/ShowDataFilesCommand.cs2
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/Framework/Commands/Other/ShowGameFilesCommand.cs2
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/Framework/Commands/Other/TestInputCommand.cs2
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/Framework/Commands/Player/AddCommand.cs2
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/Framework/Commands/Player/ListItemTypesCommand.cs2
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/Framework/Commands/Player/ListItemsCommand.cs2
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/Framework/Commands/Player/SetColorCommand.cs2
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/Framework/Commands/Player/SetHealthCommand.cs38
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/Framework/Commands/Player/SetImmunityCommand.cs2
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/Framework/Commands/Player/SetMaxHealthCommand.cs2
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/Framework/Commands/Player/SetMaxStaminaCommand.cs2
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/Framework/Commands/Player/SetMoneyCommand.cs38
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/Framework/Commands/Player/SetNameCommand.cs2
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/Framework/Commands/Player/SetStaminaCommand.cs38
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/Framework/Commands/Player/SetStyleCommand.cs2
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/Framework/Commands/World/ClearCommand.cs2
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/Framework/Commands/World/DownMineLevelCommand.cs2
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/Framework/Commands/World/FreezeTimeCommand.cs2
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/Framework/Commands/World/SetDayCommand.cs2
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/Framework/Commands/World/SetMineLevelCommand.cs2
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/Framework/Commands/World/SetSeasonCommand.cs2
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/Framework/Commands/World/SetTimeCommand.cs2
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/Framework/Commands/World/SetYearCommand.cs2
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/ModEntry.cs20
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/manifest.json4
-rw-r--r--src/SMAPI.Mods.ErrorHandler/ModEntry.cs74
-rw-r--r--src/SMAPI.Mods.ErrorHandler/Patches/DialogueErrorPatch.cs (renamed from src/SMAPI/Patches/DialogueErrorPatch.cs)9
-rw-r--r--src/SMAPI.Mods.ErrorHandler/Patches/EventErrorPatch.cs (renamed from src/SMAPI/Patches/EventErrorPatch.cs)4
-rw-r--r--src/SMAPI.Mods.ErrorHandler/Patches/LoadErrorPatch.cs (renamed from src/SMAPI/Patches/LoadErrorPatch.cs)2
-rw-r--r--src/SMAPI.Mods.ErrorHandler/Patches/ObjectErrorPatch.cs (renamed from src/SMAPI/Patches/ObjectErrorPatch.cs)4
-rw-r--r--src/SMAPI.Mods.ErrorHandler/Patches/ScheduleErrorPatch.cs (renamed from src/SMAPI/Patches/ScheduleErrorPatch.cs)4
-rw-r--r--src/SMAPI.Mods.ErrorHandler/Patches/UtilityErrorPatches.cs96
-rw-r--r--src/SMAPI.Mods.ErrorHandler/SMAPI.Mods.ErrorHandler.csproj46
-rw-r--r--src/SMAPI.Mods.ErrorHandler/i18n/de.json4
-rw-r--r--src/SMAPI.Mods.ErrorHandler/i18n/default.json4
-rw-r--r--src/SMAPI.Mods.ErrorHandler/i18n/es.json4
-rw-r--r--src/SMAPI.Mods.ErrorHandler/i18n/fr.json4
-rw-r--r--src/SMAPI.Mods.ErrorHandler/i18n/hu.json4
-rw-r--r--src/SMAPI.Mods.ErrorHandler/i18n/it.json4
-rw-r--r--src/SMAPI.Mods.ErrorHandler/i18n/ja.json4
-rw-r--r--src/SMAPI.Mods.ErrorHandler/i18n/ko.json4
-rw-r--r--src/SMAPI.Mods.ErrorHandler/i18n/pt.json4
-rw-r--r--src/SMAPI.Mods.ErrorHandler/i18n/ru.json4
-rw-r--r--src/SMAPI.Mods.ErrorHandler/i18n/tr.json4
-rw-r--r--src/SMAPI.Mods.ErrorHandler/i18n/zh.json4
-rw-r--r--src/SMAPI.Mods.ErrorHandler/manifest.json9
-rw-r--r--src/SMAPI.Mods.SaveBackup/manifest.json4
-rw-r--r--src/SMAPI.Tests/Utilities/KeybindListTests.cs152
-rw-r--r--src/SMAPI.Toolkit/Framework/GameScanning/GameScanner.cs23
-rw-r--r--src/SMAPI.Toolkit/Framework/ModScanning/ModParseError.cs3
-rw-r--r--src/SMAPI.Toolkit/Framework/ModScanning/ModScanner.cs84
-rw-r--r--src/SMAPI.Toolkit/SemanticVersion.cs12
-rw-r--r--src/SMAPI.Toolkit/Serialization/Converters/SemanticVersionConverter.cs4
-rw-r--r--src/SMAPI.Web/wwwroot/schemas/manifest.json2
-rw-r--r--src/SMAPI.sln9
-rw-r--r--src/SMAPI.sln.DotSettings2
-rw-r--r--src/SMAPI/Constants.cs4
-rw-r--r--src/SMAPI/Events/ButtonsChangedEventArgs.cs67
-rw-r--r--src/SMAPI/Events/IInputEvents.cs3
-rw-r--r--src/SMAPI/Framework/ContentManagers/GameContentManager.cs2
-rw-r--r--src/SMAPI/Framework/ContentManagers/ModContentManager.cs15
-rw-r--r--src/SMAPI/Framework/Events/EventManager.cs4
-rw-r--r--src/SMAPI/Framework/Events/ModInputEvents.cs7
-rw-r--r--src/SMAPI/Framework/Logging/LogManager.cs11
-rw-r--r--src/SMAPI/Framework/ModHelpers/InputHelper.cs14
-rw-r--r--src/SMAPI/Framework/ModLoading/AssemblyLoader.cs9
-rw-r--r--src/SMAPI/Framework/Models/SConfig.cs9
-rw-r--r--src/SMAPI/Framework/Networking/MultiplayerPeer.cs10
-rw-r--r--src/SMAPI/Framework/SChatBox.cs49
-rw-r--r--src/SMAPI/Framework/SCore.cs76
-rw-r--r--src/SMAPI/Framework/SGame.cs17
-rw-r--r--src/SMAPI/Framework/SGameRunner.cs22
-rw-r--r--src/SMAPI/Framework/SMultiplayer.cs86
-rw-r--r--src/SMAPI/Framework/Serialization/KeybindConverter.cs82
-rw-r--r--src/SMAPI/IInputHelper.cs6
-rw-r--r--src/SMAPI/IMultiplayerPeer.cs7
-rw-r--r--src/SMAPI/Metadata/CoreAssetPropagator.cs139
-rw-r--r--src/SMAPI/Metadata/InstructionMetadata.cs28
-rw-r--r--src/SMAPI/Properties/AssemblyInfo.cs1
-rw-r--r--src/SMAPI/SButtonState.cs2
-rw-r--r--src/SMAPI/SMAPI.config.json7
-rw-r--r--src/SMAPI/Utilities/Keybind.cs139
-rw-r--r--src/SMAPI/Utilities/KeybindList.cs161
-rw-r--r--src/SMAPI/Utilities/PerScreen.cs53
-rw-r--r--src/SMAPI/i18n/de.json4
-rw-r--r--src/SMAPI/i18n/default.json3
-rw-r--r--src/SMAPI/i18n/es.json3
-rw-r--r--src/SMAPI/i18n/fr.json3
-rw-r--r--src/SMAPI/i18n/hu.json3
-rw-r--r--src/SMAPI/i18n/it.json3
-rw-r--r--src/SMAPI/i18n/ja.json3
-rw-r--r--src/SMAPI/i18n/ko.json3
-rw-r--r--src/SMAPI/i18n/pt.json3
-rw-r--r--src/SMAPI/i18n/ru.json3
-rw-r--r--src/SMAPI/i18n/tr.json3
-rw-r--r--src/SMAPI/i18n/zh.json3
105 files changed, 1513 insertions, 414 deletions
diff --git a/build/common.targets b/build/common.targets
index 3d39be23..30c059a3 100644
--- a/build/common.targets
+++ b/build/common.targets
@@ -4,7 +4,7 @@
<!--set properties -->
<PropertyGroup>
- <Version>3.8.4</Version>
+ <Version>3.9.0</Version>
<Product>SMAPI</Product>
<LangVersion>latest</LangVersion>
@@ -37,16 +37,24 @@
<Copy SourceFiles="$(TargetDir)\TMXTile.dll" DestinationFolder="$(GamePath)\smapi-internal" />
<Copy SourceFiles="@(TranslationFiles)" DestinationFolder="$(GamePath)\smapi-internal\i18n" />
</Target>
- <Target Name="CopyDefaultMods" Condition="'$(MSBuildProjectName)' == 'SMAPI.Mods.ConsoleCommands' OR '$(MSBuildProjectName)' == 'SMAPI.Mods.SaveBackup'">
+
+ <Target Name="CopyDefaultMods" Condition="'$(MSBuildProjectName)' == 'SMAPI.Mods.ConsoleCommands' OR '$(MSBuildProjectName)' == 'SMAPI.Mods.ErrorHandler' OR '$(MSBuildProjectName)' == 'SMAPI.Mods.SaveBackup'">
+ <ItemGroup>
+ <TranslationFiles Include="$(TargetDir)\i18n\*.json" />
+ </ItemGroup>
+
<Copy SourceFiles="$(TargetDir)\$(TargetName).dll" DestinationFolder="$(GamePath)\Mods\$(AssemblyName)" />
<Copy SourceFiles="$(TargetDir)\$(TargetName).pdb" DestinationFolder="$(GamePath)\Mods\$(AssemblyName)" Condition="Exists('$(TargetDir)\$(TargetName).pdb')" />
<Copy SourceFiles="$(TargetDir)\manifest.json" DestinationFolder="$(GamePath)\Mods\$(AssemblyName)" />
+ <Copy SourceFiles="@(TranslationFiles)" DestinationFolder="$(GamePath)\Mods\$(AssemblyName)\i18n" />
</Target>
+
<Target Name="CopyToolkit" Condition="'$(MSBuildProjectName)' == 'SMAPI.Toolkit' AND $(TargetFramework) == 'net4.5'" AfterTargets="PostBuildEvent">
<Copy SourceFiles="$(TargetDir)\$(TargetName).dll" DestinationFolder="$(GamePath)\smapi-internal" />
<Copy SourceFiles="$(TargetDir)\$(TargetName).pdb" DestinationFolder="$(GamePath)\smapi-internal" />
<Copy SourceFiles="$(TargetDir)\$(TargetName).xml" DestinationFolder="$(GamePath)\smapi-internal" />
</Target>
+
<Target Name="CopyToolkitCoreInterfaces" Condition="'$(MSBuildProjectName)' == 'SMAPI.Toolkit.CoreInterfaces' AND $(TargetFramework) == 'net4.5'" AfterTargets="PostBuildEvent">
<Copy SourceFiles="$(TargetDir)\$(TargetName).dll" DestinationFolder="$(GamePath)\smapi-internal" />
<Copy SourceFiles="$(TargetDir)\$(TargetName).pdb" DestinationFolder="$(GamePath)\smapi-internal" />
diff --git a/build/find-game-folder.targets b/build/find-game-folder.targets
index a4200662..0a766ad4 100644
--- a/build/find-game-folder.targets
+++ b/build/find-game-folder.targets
@@ -20,22 +20,24 @@
</When>
<When Condition="$(OS) == 'Windows_NT'">
<PropertyGroup>
+ <!-- registry paths -->
+ <GamePath Condition="!Exists('$(GamePath)')">$([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\GOG.com\Games\1453375253', 'PATH', null, RegistryView.Registry32))</GamePath>
+ <GamePath Condition="!Exists('$(GamePath)')">$([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Steam App 413150', 'InstallLocation', null, RegistryView.Registry64, RegistryView.Registry32))</GamePath>
+
+ <!-- derive from Steam library path -->
+ <_SteamLibraryPath>$([MSBuild]::GetRegistryValueFromView('HKEY_CURRENT_USER\SOFTWARE\Valve\Steam', 'SteamPath', null, RegistryView.Registry32))</_SteamLibraryPath>
+ <GamePath Condition="!Exists('$(GamePath)') AND '$(_SteamLibraryPath)' != ''">$(_SteamLibraryPath)\steamapps\common\Stardew Valley</GamePath>
+
<!-- default paths -->
<GamePath Condition="!Exists('$(GamePath)')">C:\Program Files\GalaxyClient\Games\Stardew Valley</GamePath>
<GamePath Condition="!Exists('$(GamePath)')">C:\Program Files\GOG Galaxy\Games\Stardew Valley</GamePath>
+ <GamePath Condition="!Exists('$(GamePath)')">C:\Program Files\GOG Games\Stardew Valley</GamePath>
<GamePath Condition="!Exists('$(GamePath)')">C:\Program Files\Steam\steamapps\common\Stardew Valley</GamePath>
<GamePath Condition="!Exists('$(GamePath)')">C:\Program Files (x86)\GalaxyClient\Games\Stardew Valley</GamePath>
<GamePath Condition="!Exists('$(GamePath)')">C:\Program Files (x86)\GOG Galaxy\Games\Stardew Valley</GamePath>
+ <GamePath Condition="!Exists('$(GamePath)')">C:\Program Files (x86)\GOG Games\Stardew Valley</GamePath>
<GamePath Condition="!Exists('$(GamePath)')">C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley</GamePath>
-
- <!-- registry paths -->
- <GamePath Condition="!Exists('$(GamePath)')">$([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\GOG.com\Games\1453375253', 'PATH', null, RegistryView.Registry32))</GamePath>
- <GamePath Condition="!Exists('$(GamePath)')">$([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Steam App 413150', 'InstallLocation', null, RegistryView.Registry64, RegistryView.Registry32))</GamePath>
-
- <!-- derive from Steam library path -->
- <_SteamLibraryPath>$([MSBuild]::GetRegistryValueFromView('HKEY_CURRENT_USER\SOFTWARE\Valve\Steam', 'SteamPath', null, RegistryView.Registry32))</_SteamLibraryPath>
- <GamePath Condition="!Exists('$(GamePath)') AND '$(_SteamLibraryPath)' != ''">$(_SteamLibraryPath)\steamapps\common\Stardew Valley</GamePath>
</PropertyGroup>
</When>
</Choose>
diff --git a/build/prepare-install-package.targets b/build/prepare-install-package.targets
index 7b9d63f9..205040db 100644
--- a/build/prepare-install-package.targets
+++ b/build/prepare-install-package.targets
@@ -16,6 +16,7 @@
<SmapiBin>$(BuildRootPath)\SMAPI\bin\$(Configuration)</SmapiBin>
<ToolkitBin>$(BuildRootPath)\SMAPI.Toolkit\bin\$(Configuration)\net4.5</ToolkitBin>
<ConsoleCommandsBin>$(BuildRootPath)\SMAPI.Mods.ConsoleCommands\bin\$(Configuration)</ConsoleCommandsBin>
+ <ErrorHandlerBin>$(BuildRootPath)\SMAPI.Mods.ErrorHandler\bin\$(Configuration)</ErrorHandlerBin>
<SaveBackupBin>$(BuildRootPath)\SMAPI.Mods.SaveBackup\bin\$(Configuration)</SaveBackupBin>
<PackagePath>$(OutRootPath)\SMAPI installer</PackagePath>
@@ -23,6 +24,7 @@
</PropertyGroup>
<ItemGroup>
<TranslationFiles Include="$(SmapiBin)\i18n\*.json" />
+ <ErrorHandlerTranslationFiles Include="$(ErrorHandlerBin)\i18n\*.json" />
</ItemGroup>
<!-- reset package directory -->
@@ -64,6 +66,10 @@
<Copy SourceFiles="$(ConsoleCommandsBin)\ConsoleCommands.dll" DestinationFolder="$(PackagePath)\bundle\Mods\ConsoleCommands" />
<Copy SourceFiles="$(ConsoleCommandsBin)\ConsoleCommands.pdb" DestinationFolder="$(PackagePath)\bundle\Mods\ConsoleCommands" />
<Copy SourceFiles="$(ConsoleCommandsBin)\manifest.json" DestinationFolder="$(PackagePath)\bundle\Mods\ConsoleCommands" />
+ <Copy SourceFiles="$(ErrorHan