From 6b347b83a7c588638224a02840b1d90b4557ea2a Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sat, 9 Feb 2019 15:16:14 -0500 Subject: fix Save Backup not pruning old backups if they're uncompressed --- src/SMAPI.Mods.SaveBackup/ModEntry.cs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src/SMAPI.Mods.SaveBackup') diff --git a/src/SMAPI.Mods.SaveBackup/ModEntry.cs b/src/SMAPI.Mods.SaveBackup/ModEntry.cs index 30dbfbe6..33adf76d 100644 --- a/src/SMAPI.Mods.SaveBackup/ModEntry.cs +++ b/src/SMAPI.Mods.SaveBackup/ModEntry.cs @@ -124,20 +124,23 @@ namespace StardewModdingAPI.Mods.SaveBackup try { var oldBackups = backupFolder - .GetFiles() + .GetFileSystemInfos() .OrderByDescending(p => p.CreationTimeUtc) .Skip(backupsToKeep); - foreach (FileInfo file in oldBackups) + foreach (FileSystemInfo entry in oldBackups) { try { - this.Monitor.Log($"Deleting {file.Name}...", LogLevel.Trace); - file.Delete(); + this.Monitor.Log($"Deleting {entry.Name}...", LogLevel.Trace); + if (entry is DirectoryInfo folder) + folder.Delete(recursive: true); + else + entry.Delete(); } catch (Exception ex) { - this.Monitor.Log($"Error deleting old save backup '{file.Name}': {ex}", LogLevel.Error); + this.Monitor.Log($"Error deleting old save backup '{entry.Name}': {ex}", LogLevel.Error); } } } -- cgit From 307055b028e0d6643983189e96a5ebcbe89d32ba Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Thu, 4 Apr 2019 18:43:56 -0400 Subject: bump version to 3.0 --- build/GlobalAssemblyInfo.cs | 4 ++-- src/SMAPI.Mods.ConsoleCommands/manifest.json | 4 ++-- src/SMAPI.Mods.SaveBackup/manifest.json | 4 ++-- src/SMAPI/Constants.cs | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) (limited to 'src/SMAPI.Mods.SaveBackup') diff --git a/build/GlobalAssemblyInfo.cs b/build/GlobalAssemblyInfo.cs index a3ca3051..0fa0d331 100644 --- a/build/GlobalAssemblyInfo.cs +++ b/build/GlobalAssemblyInfo.cs @@ -1,5 +1,5 @@ using System.Reflection; [assembly: AssemblyProduct("SMAPI")] -[assembly: AssemblyVersion("2.11.3")] -[assembly: AssemblyFileVersion("2.11.3")] +[assembly: AssemblyVersion("3.0.0")] +[assembly: AssemblyFileVersion("3.0.0")] diff --git a/src/SMAPI.Mods.ConsoleCommands/manifest.json b/src/SMAPI.Mods.ConsoleCommands/manifest.json index 74295410..802de3a6 100644 --- a/src/SMAPI.Mods.ConsoleCommands/manifest.json +++ b/src/SMAPI.Mods.ConsoleCommands/manifest.json @@ -1,9 +1,9 @@ { "Name": "Console Commands", "Author": "SMAPI", - "Version": "2.11.3", + "Version": "3.0.0", "Description": "Adds SMAPI console commands that let you manipulate the game.", "UniqueID": "SMAPI.ConsoleCommands", "EntryDll": "ConsoleCommands.dll", - "MinimumApiVersion": "2.11.3" + "MinimumApiVersion": "3.0.0" } diff --git a/src/SMAPI.Mods.SaveBackup/manifest.json b/src/SMAPI.Mods.SaveBackup/manifest.json index e147bd39..eddd3443 100644 --- a/src/SMAPI.Mods.SaveBackup/manifest.json +++ b/src/SMAPI.Mods.SaveBackup/manifest.json @@ -1,9 +1,9 @@ { "Name": "Save Backup", "Author": "SMAPI", - "Version": "2.11.3", + "Version": "3.0.0", "Description": "Automatically backs up all your saves once per day into its folder.", "UniqueID": "SMAPI.SaveBackup", "EntryDll": "SaveBackup.dll", - "MinimumApiVersion": "2.11.3" + "MinimumApiVersion": "3.0.0" } diff --git a/src/SMAPI/Constants.cs b/src/SMAPI/Constants.cs index 736a10ea..3ba3e6dd 100644 --- a/src/SMAPI/Constants.cs +++ b/src/SMAPI/Constants.cs @@ -20,13 +20,13 @@ namespace StardewModdingAPI ** Public ****/ /// SMAPI's current semantic version. - public static ISemanticVersion ApiVersion { get; } = new Toolkit.SemanticVersion("2.11.3"); + public static ISemanticVersion ApiVersion { get; } = new Toolkit.SemanticVersion("3.0.0"); /// The minimum supported version of Stardew Valley. - public static ISemanticVersion MinimumGameVersion { get; } = new GameVersion("1.3.36"); + public static ISemanticVersion MinimumGameVersion { get; } = new GameVersion("1.4.0"); /// The maximum supported version of Stardew Valley. - public static ISemanticVersion MaximumGameVersion { get; } = new GameVersion("1.3.36"); + public static ISemanticVersion MaximumGameVersion { get; } = null; /// The target game platform. public static GamePlatform TargetPlatform => (GamePlatform)Constants.Platform; -- cgit From abffdc2dab2a1c03904427b251acac9d800e0912 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Wed, 24 Apr 2019 23:45:34 -0400 Subject: simplify project names --- build/common.targets | 20 +-- build/prepare-install-package.targets | 12 +- src/SMAPI.Installer/SMAPI.Installer.csproj | 45 ++++++ .../StardewModdingAPI.Installer.csproj | 45 ------ src/SMAPI.Internal/SMAPI.Internal.shproj | 13 ++ .../StardewModdingAPI.Internal.shproj | 13 -- .../SMAPI.ModBuildConfig.Analyzer.Tests.csproj | 2 +- .../SMAPI.ModBuildConfig.Analyzer.csproj | 24 +++ ...tardewModdingAPI.ModBuildConfig.Analyzer.csproj | 24 --- .../SMAPI.ModBuildConfig.csproj | 40 +++++ .../StardewModdingAPI.ModBuildConfig.csproj | 40 ----- .../SMAPI.Mods.ConsoleCommands.csproj | 35 +++++ .../StardewModdingAPI.Mods.ConsoleCommands.csproj | 35 ----- .../SMAPI.Mods.SaveBackup.csproj | 35 +++++ .../StardewModdingAPI.Mods.SaveBackup.csproj | 35 ----- src/SMAPI.Tests/SMAPI.Tests.csproj | 40 +++++ src/SMAPI.Tests/StardewModdingAPI.Tests.csproj | 40 ----- .../SMAPI.Toolkit.CoreInterfaces.csproj | 18 +++ ...StardewModdingAPI.Toolkit.CoreInterfaces.csproj | 18 --- src/SMAPI.Toolkit/SMAPI.Toolkit.csproj | 28 ++++ src/SMAPI.Toolkit/StardewModdingAPI.Toolkit.csproj | 28 ---- src/SMAPI.Web/SMAPI.Web.csproj | 46 ++++++ src/SMAPI.Web/StardewModdingAPI.Web.csproj | 46 ------ src/SMAPI.sln | 171 +++++++++++---------- src/SMAPI/SMAPI.csproj | 60 ++++++++ src/SMAPI/StardewModdingAPI.csproj | 60 -------- 26 files changed, 487 insertions(+), 486 deletions(-) create mode 100644 src/SMAPI.Installer/SMAPI.Installer.csproj delete mode 100644 src/SMAPI.Installer/StardewModdingAPI.Installer.csproj create mode 100644 src/SMAPI.Internal/SMAPI.Internal.shproj delete mode 100644 src/SMAPI.Internal/StardewModdingAPI.Internal.shproj create mode 100644 src/SMAPI.ModBuildConfig.Analyzer/SMAPI.ModBuildConfig.Analyzer.csproj delete mode 100644 src/SMAPI.ModBuildConfig.Analyzer/StardewModdingAPI.ModBuildConfig.Analyzer.csproj create mode 100644 src/SMAPI.ModBuildConfig/SMAPI.ModBuildConfig.csproj delete mode 100644 src/SMAPI.ModBuildConfig/StardewModdingAPI.ModBuildConfig.csproj create mode 100644 src/SMAPI.Mods.ConsoleCommands/SMAPI.Mods.ConsoleCommands.csproj delete mode 100644 src/SMAPI.Mods.ConsoleCommands/StardewModdingAPI.Mods.ConsoleCommands.csproj create mode 100644 src/SMAPI.Mods.SaveBackup/SMAPI.Mods.SaveBackup.csproj delete mode 100644 src/SMAPI.Mods.SaveBackup/StardewModdingAPI.Mods.SaveBackup.csproj create mode 100644 src/SMAPI.Tests/SMAPI.Tests.csproj delete mode 100644 src/SMAPI.Tests/StardewModdingAPI.Tests.csproj create mode 100644 src/SMAPI.Toolkit.CoreInterfaces/SMAPI.Toolkit.CoreInterfaces.csproj delete mode 100644 src/SMAPI.Toolkit.CoreInterfaces/StardewModdingAPI.Toolkit.CoreInterfaces.csproj create mode 100644 src/SMAPI.Toolkit/SMAPI.Toolkit.csproj delete mode 100644 src/SMAPI.Toolkit/StardewModdingAPI.Toolkit.csproj create mode 100644 src/SMAPI.Web/SMAPI.Web.csproj delete mode 100644 src/SMAPI.Web/StardewModdingAPI.Web.csproj create mode 100644 src/SMAPI/SMAPI.csproj delete mode 100644 src/SMAPI/StardewModdingAPI.csproj (limited to 'src/SMAPI.Mods.SaveBackup') diff --git a/build/common.targets b/build/common.targets index 4aac55fc..9922bf15 100644 --- a/build/common.targets +++ b/build/common.targets @@ -32,12 +32,12 @@ - + - + @@ -47,15 +47,15 @@ $(GamePath)\Stardew Valley.exe - False + False $(GamePath)\StardewValley.GameData.dll - False + False $(GamePath)\Netcode.dll - False + False False @@ -79,7 +79,7 @@ $(GamePath)\StardewValley.GameData.MonoGame.dll - False + False $(GamePath)\MonoGame.Framework.dll @@ -114,7 +114,7 @@ - + @@ -124,17 +124,17 @@ - + - + - + diff --git a/build/prepare-install-package.targets b/build/prepare-install-package.targets index b7b70ed0..928191a2 100644 --- a/build/prepare-install-package.targets +++ b/build/prepare-install-package.targets @@ -40,12 +40,12 @@ - - - - - - + + + + + + diff --git a/src/SMAPI.Installer/SMAPI.Installer.csproj b/src/SMAPI.Installer/SMAPI.Installer.csproj new file mode 100644 index 00000000..a2e115e6 --- /dev/null +++ b/src/SMAPI.Installer/SMAPI.Installer.csproj @@ -0,0 +1,45 @@ + + + + SMAPI.Installer + SMAPI.Installer + net45 + false + latest + Exe + x86 + $(SolutionDir)\..\bin\$(Configuration)\Installer + false + + + + + + + + + + + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + + + + + + diff --git a/src/SMAPI.Installer/StardewModdingAPI.Installer.csproj b/src/SMAPI.Installer/StardewModdingAPI.Installer.csproj deleted file mode 100644 index ac64a774..00000000 --- a/src/SMAPI.Installer/StardewModdingAPI.Installer.csproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - StardewModdingAPI.Installer - StardewModdingAPI.Installer - net45 - false - latest - Exe - x86 - $(SolutionDir)\..\bin\$(Configuration)\Installer - false - - - - - - - - - - - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - - - - - - diff --git a/src/SMAPI.Internal/SMAPI.Internal.shproj b/src/SMAPI.Internal/SMAPI.Internal.shproj new file mode 100644 index 00000000..a098828a --- /dev/null +++ b/src/SMAPI.Internal/SMAPI.Internal.shproj @@ -0,0 +1,13 @@ + + + + 85208f8d-6fd1-4531-be05-7142490f59fe + 14.0 + + + + + + + + diff --git a/src/SMAPI.Internal/StardewModdingAPI.Internal.shproj b/src/SMAPI.Internal/StardewModdingAPI.Internal.shproj deleted file mode 100644 index a098828a..00000000 --- a/src/SMAPI.Internal/StardewModdingAPI.Internal.shproj +++ /dev/null @@ -1,13 +0,0 @@ - - - - 85208f8d-6fd1-4531-be05-7142490f59fe - 14.0 - - - - - - - - diff --git a/src/SMAPI.ModBuildConfig.Analyzer.Tests/SMAPI.ModBuildConfig.Analyzer.Tests.csproj b/src/SMAPI.ModBuildConfig.Analyzer.Tests/SMAPI.ModBuildConfig.Analyzer.Tests.csproj index 747a1d69..44e7ffab 100644 --- a/src/SMAPI.ModBuildConfig.Analyzer.Tests/SMAPI.ModBuildConfig.Analyzer.Tests.csproj +++ b/src/SMAPI.ModBuildConfig.Analyzer.Tests/SMAPI.ModBuildConfig.Analyzer.Tests.csproj @@ -13,7 +13,7 @@ - + diff --git a/src/SMAPI.ModBuildConfig.Analyzer/SMAPI.ModBuildConfig.Analyzer.csproj b/src/SMAPI.ModBuildConfig.Analyzer/SMAPI.ModBuildConfig.Analyzer.csproj new file mode 100644 index 00000000..1d8d7227 --- /dev/null +++ b/src/SMAPI.ModBuildConfig.Analyzer/SMAPI.ModBuildConfig.Analyzer.csproj @@ -0,0 +1,24 @@ + + + + netstandard1.3 + false + false + bin + latest + + + + + + + + + + + + + + + + diff --git a/src/SMAPI.ModBuildConfig.Analyzer/StardewModdingAPI.ModBuildConfig.Analyzer.csproj b/src/SMAPI.ModBuildConfig.Analyzer/StardewModdingAPI.ModBuildConfig.Analyzer.csproj deleted file mode 100644 index 1d8d7227..00000000 --- a/src/SMAPI.ModBuildConfig.Analyzer/StardewModdingAPI.ModBuildConfig.Analyzer.csproj +++ /dev/null @@ -1,24 +0,0 @@ - - - - netstandard1.3 - false - false - bin - latest - - - - - - - - - - - - - - - - diff --git a/src/SMAPI.ModBuildConfig/SMAPI.ModBuildConfig.csproj b/src/SMAPI.ModBuildConfig/SMAPI.ModBuildConfig.csproj new file mode 100644 index 00000000..f39a1555 --- /dev/null +++ b/src/SMAPI.ModBuildConfig/SMAPI.ModBuildConfig.csproj @@ -0,0 +1,40 @@ + + + + SMAPI.ModBuildConfig + SMAPI.ModBuildConfig + net45 + false + latest + x86 + false + + + + + + + + + mod-build-config.md + + + + + + + + + + + + + + mod-build-config.md + + + + + + + diff --git a/src/SMAPI.ModBuildConfig/StardewModdingAPI.ModBuildConfig.csproj b/src/SMAPI.ModBuildConfig/StardewModdingAPI.ModBuildConfig.csproj deleted file mode 100644 index 870973a0..00000000 --- a/src/SMAPI.ModBuildConfig/StardewModdingAPI.ModBuildConfig.csproj +++ /dev/null @@ -1,40 +0,0 @@ - - - - StardewModdingAPI.ModBuildConfig - StardewModdingAPI.ModBuildConfig - net45 - false - latest - x86 - false - - - - - - - - - mod-build-config.md - - - - - - - - - - - - - - mod-build-config.md - - - - - - - diff --git a/src/SMAPI.Mods.ConsoleCommands/SMAPI.Mods.ConsoleCommands.csproj b/src/SMAPI.Mods.ConsoleCommands/SMAPI.Mods.ConsoleCommands.csproj new file mode 100644 index 00000000..13f92443 --- /dev/null +++ b/src/SMAPI.Mods.ConsoleCommands/SMAPI.Mods.ConsoleCommands.csproj @@ -0,0 +1,35 @@ + + + + SMAPI.Mods.ConsoleCommands + ConsoleCommands + net45 + false + latest + $(SolutionDir)\..\bin\$(Configuration)\Mods\ConsoleCommands + false + x86 + + + + + False + + + + + + Properties\GlobalAssemblyInfo.cs + + + + + + PreserveNewest + + + + + + + diff --git a/src/SMAPI.Mods.ConsoleCommands/StardewModdingAPI.Mods.ConsoleCommands.csproj b/src/SMAPI.Mods.ConsoleCommands/StardewModdingAPI.Mods.ConsoleCommands.csproj deleted file mode 100644 index b535e2fd..00000000 --- a/src/SMAPI.Mods.ConsoleCommands/StardewModdingAPI.Mods.ConsoleCommands.csproj +++ /dev/null @@ -1,35 +0,0 @@ - - - - StardewModdingAPI.Mods.ConsoleCommands - ConsoleCommands - net45 - false - latest - $(SolutionDir)\..\bin\$(Configuration)\Mods\ConsoleCommands - false - x86 - - - - - False - - - - - - Properties\GlobalAssemblyInfo.cs - - - - - - PreserveNewest - - - - - - - diff --git a/src/SMAPI.Mods.SaveBackup/SMAPI.Mods.SaveBackup.csproj b/src/SMAPI.Mods.SaveBackup/SMAPI.Mods.SaveBackup.csproj new file mode 100644 index 00000000..9375cb64 --- /dev/null +++ b/src/SMAPI.Mods.SaveBackup/SMAPI.Mods.SaveBackup.csproj @@ -0,0 +1,35 @@ + + + + SMAPI.Mods.SaveBackup + SaveBackup + net45 + false + latest + $(SolutionDir)\..\bin\$(Configuration)\Mods\SaveBackup + false + x86 + + + + + False + + + + + + Properties\GlobalAssemblyInfo.cs + + + + + + PreserveNewest + + + + + + + diff --git a/src/SMAPI.Mods.SaveBackup/StardewModdingAPI.Mods.SaveBackup.csproj b/src/SMAPI.Mods.SaveBackup/StardewModdingAPI.Mods.SaveBackup.csproj deleted file mode 100644 index 460f3c93..00000000 --- a/src/SMAPI.Mods.SaveBackup/StardewModdingAPI.Mods.SaveBackup.csproj +++ /dev/null @@ -1,35 +0,0 @@ - - - - StardewModdingAPI.Mods.SaveBackup - SaveBackup - net45 - false - latest - $(SolutionDir)\..\bin\$(Configuration)\Mods\SaveBackup - false - x86 - - - - - False - - - - - - Properties\GlobalAssemblyInfo.cs - - - - - - PreserveNewest - - - - - - - diff --git a/src/SMAPI.Tests/SMAPI.Tests.csproj b/src/SMAPI.Tests/SMAPI.Tests.csproj new file mode 100644 index 00000000..1c414127 --- /dev/null +++ b/src/SMAPI.Tests/SMAPI.Tests.csproj @@ -0,0 +1,40 @@ + + + + SMAPI.Tests + SMAPI.Tests + net45 + false + latest + x86 + + + + + + + + + + + + + + + + + + + + + Properties\GlobalAssemblyInfo.cs + + + + + + + + + + diff --git a/src/SMAPI.Tests/StardewModdingAPI.Tests.csproj b/src/SMAPI.Tests/StardewModdingAPI.Tests.csproj deleted file mode 100644 index 68cf7b34..00000000 --- a/src/SMAPI.Tests/StardewModdingAPI.Tests.csproj +++ /dev/null @@ -1,40 +0,0 @@ - - - - StardewModdingAPI.Tests - StardewModdingAPI.Tests - net45 - false - latest - x86 - - - - - - - - - - - - - - - - - - - - - Properties\GlobalAssemblyInfo.cs - - - - - - - - - - diff --git a/src/SMAPI.Toolkit.CoreInterfaces/SMAPI.Toolkit.CoreInterfaces.csproj b/src/SMAPI.Toolkit.CoreInterfaces/SMAPI.Toolkit.CoreInterfaces.csproj new file mode 100644 index 00000000..7d8fc998 --- /dev/null +++ b/src/SMAPI.Toolkit.CoreInterfaces/SMAPI.Toolkit.CoreInterfaces.csproj @@ -0,0 +1,18 @@ + + + + net4.5;netstandard2.0 + SMAPI + false + ..\..\bin\$(Configuration)\SMAPI.Toolkit.CoreInterfaces + ..\..\bin\$(Configuration)\SMAPI.Toolkit.CoreInterfaces\$(TargetFramework)\SMAPI.Toolkit.CoreInterfaces.xml + latest + + + + + + + + + diff --git a/src/SMAPI.Toolkit.CoreInterfaces/StardewModdingAPI.Toolkit.CoreInterfaces.csproj b/src/SMAPI.Toolkit.CoreInterfaces/StardewModdingAPI.Toolkit.CoreInterfaces.csproj deleted file mode 100644 index cbbb7fc9..00000000 --- a/src/SMAPI.Toolkit.CoreInterfaces/StardewModdingAPI.Toolkit.CoreInterfaces.csproj +++ /dev/null @@ -1,18 +0,0 @@ - - - - net4.5;netstandard2.0 - StardewModdingAPI - false - ..\..\bin\$(Configuration)\SMAPI.Toolkit.CoreInterfaces - ..\..\bin\$(Configuration)\SMAPI.Toolkit.CoreInterfaces\$(TargetFramework)\StardewModdingAPI.Toolkit.CoreInterfaces.xml - latest - - - - - - - - - diff --git a/src/SMAPI.Toolkit/SMAPI.Toolkit.csproj b/src/SMAPI.Toolkit/SMAPI.Toolkit.csproj new file mode 100644 index 00000000..8a029e62 --- /dev/null +++ b/src/SMAPI.Toolkit/SMAPI.Toolkit.csproj @@ -0,0 +1,28 @@ + + + + net4.5;netstandard2.0 + false + ..\..\bin\$(Configuration)\SMAPI.Toolkit + ..\..\bin\$(Configuration)\SMAPI.Toolkit\$(TargetFramework)\SMAPI.Toolkit.xml + latest + x86 + + + + + + + + + + + + + + + + + + + diff --git a/src/SMAPI.Toolkit/StardewModdingAPI.Toolkit.csproj b/src/SMAPI.Toolkit/StardewModdingAPI.Toolkit.csproj deleted file mode 100644 index a386fc5e..00000000 --- a/src/SMAPI.Toolkit/StardewModdingAPI.Toolkit.csproj +++ /dev/null @@ -1,28 +0,0 @@ - - - - net4.5;netstandard2.0 - false - ..\..\bin\$(Configuration)\SMAPI.Toolkit - ..\..\bin\$(Configuration)\SMAPI.Toolkit\$(TargetFramework)\StardewModdingAPI.Toolkit.xml - latest - x86 - - - - - - - - - - - - - - - - - - - diff --git a/src/SMAPI.Web/SMAPI.Web.csproj b/src/SMAPI.Web/SMAPI.Web.csproj new file mode 100644 index 00000000..023a9333 --- /dev/null +++ b/src/SMAPI.Web/SMAPI.Web.csproj @@ -0,0 +1,46 @@ + + + + netcoreapp2.0 + false + latest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $(IncludeRazorContentInPack) + + + $(IncludeRazorContentInPack) + + + PreserveNewest + + + + diff --git a/src/SMAPI.Web/StardewModdingAPI.Web.csproj b/src/SMAPI.Web/StardewModdingAPI.Web.csproj deleted file mode 100644 index 88a13f7b..00000000 --- a/src/SMAPI.Web/StardewModdingAPI.Web.csproj +++ /dev/null @@ -1,46 +0,0 @@ - - - - netcoreapp2.0 - false - latest - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $(IncludeRazorContentInPack) - - - $(IncludeRazorContentInPack) - - - PreserveNewest - - - - diff --git a/src/SMAPI.sln b/src/SMAPI.sln index ffd50455..0a2d1511 100644 --- a/src/SMAPI.sln +++ b/src/SMAPI.sln @@ -3,8 +3,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.28729.10 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SMAPI", "SMAPI\StardewModdingAPI.csproj", "{1298F2B2-57BD-4647-AF70-1FCBBEE500B6}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".root", ".root", "{86C452BE-D2D8-45B4-B63F-E329EB06CEDA}" ProjectSection(SolutionItems) = preProject ..\.editorconfig = ..\.editorconfig @@ -13,25 +11,17 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".root", ".root", "{86C452BE ..\LICENSE.txt = ..\LICENSE.txt EndProjectSection EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StardewModdingAPI.Installer", "SMAPI.Installer\StardewModdingAPI.Installer.csproj", "{0ED5EAD8-5D85-420D-8101-6D8CCCE29C9B}" - ProjectSection(ProjectDependencies) = postProject - {E4113F3E-3CAA-4288-9378-39A77BA625DB} = {E4113F3E-3CAA-4288-9378-39A77BA625DB} - {8C2CA4AB-BA8A-446A-B59E-9D6502E145F7} = {8C2CA4AB-BA8A-446A-B59E-9D6502E145F7} - {1298F2B2-57BD-4647-AF70-1FCBBEE500B6} = {1298F2B2-57BD-4647-AF70-1FCBBEE500B6} +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".github", ".github", "{4B1CEB70-F756-4A57-AAE8-8CD78C475F25}" + ProjectSection(SolutionItems) = preProject + ..\.github\CONTRIBUTING.md = ..\.github\CONTRIBUTING.md + ..\.github\SUPPORT.md = ..\.github\SUPPORT.md EndProjectSection EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StardewModdingAPI.Tests", "SMAPI.Tests\StardewModdingAPI.Tests.csproj", "{E023DA12-5960-4101-80B9-A7DCE955725C}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StardewModdingAPI.Web", "SMAPI.Web\StardewModdingAPI.Web.csproj", "{A308F679-51A3-4006-92D5-BAEC7EBD01A1}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Internal", "Internal", "{82D22ED7-A0A7-4D64-8E92-4B6A5E74ED11}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{EB35A917-67B9-4EFA-8DFC-4FB49B3949BB}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ISSUE_TEMPLATE", "ISSUE_TEMPLATE", "{F4453AB6-D7D6-447F-A973-956CC777968F}" ProjectSection(SolutionItems) = preProject - ..\docs\mod-build-config.md = ..\docs\mod-build-config.md - ..\docs\README.md = ..\docs\README.md - ..\docs\release-notes.md = ..\docs\release-notes.md - ..\docs\technical-docs.md = ..\docs\technical-docs.md + ..\.github\ISSUE_TEMPLATE\bug_report.md = ..\.github\ISSUE_TEMPLATE\bug_report.md + ..\.github\ISSUE_TEMPLATE\feature_request.md = ..\.github\ISSUE_TEMPLATE\feature_request.md + ..\.github\ISSUE_TEMPLATE\general.md = ..\.github\ISSUE_TEMPLATE\general.md EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{09CF91E5-5BAB-4650-A200-E5EA9A633046}" @@ -42,34 +32,44 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{09CF91E5 ..\build\prepare-nuget-package.targets = ..\build\prepare-nuget-package.targets EndProjectSection EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StardewModdingAPI.ModBuildConfig", "SMAPI.ModBuildConfig\StardewModdingAPI.ModBuildConfig.csproj", "{C11D0AFB-2893-41A9-AD55-D002F032D6AD}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{EB35A917-67B9-4EFA-8DFC-4FB49B3949BB}" + ProjectSection(SolutionItems) = preProject + ..\docs\mod-build-config.md = ..\docs\mod-build-config.md + ..\docs\README.md = ..\docs\README.md + ..\docs\release-notes.md = ..\docs\release-notes.md + ..\docs\technical-docs.md = ..\docs\technical-docs.md + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Internal", "Internal", "{82D22ED7-A0A7-4D64-8E92-4B6A5E74ED11}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StardewModdingAPI.ModBuildConfig.Analyzer", "SMAPI.ModBuildConfig.Analyzer\StardewModdingAPI.ModBuildConfig.Analyzer.csproj", "{80AD8528-AA49-4731-B4A6-C691845815A1}" +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SMAPI.Internal", "SMAPI.Internal\SMAPI.Internal.shproj", "{85208F8D-6FD1-4531-BE05-7142490F59FE}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SMAPI.ModBuildConfig.Analyzer.Tests", "SMAPI.ModBuildConfig.Analyzer.Tests\SMAPI.ModBuildConfig.Analyzer.Tests.csproj", "{0CF97929-B0D0-4D73-B7BF-4FF7191035F9}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SMAPI.ModBuildConfig.Analyzer.Tests", "SMAPI.ModBuildConfig.Analyzer.Tests\SMAPI.ModBuildConfig.Analyzer.Tests.csproj", "{680B2641-81EA-467C-86A5-0E81CDC57ED0}" EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "StardewModdingAPI.Internal", "SMAPI.Internal\StardewModdingAPI.Internal.shproj", "{85208F8D-6FD1-4531-BE05-7142490F59FE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SMAPI.Tests", "SMAPI.Tests\SMAPI.Tests.csproj", "{AA95884B-7097-476E-92C8-D0500DE9D6D1}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StardewModdingAPI.Mods.ConsoleCommands", "SMAPI.Mods.ConsoleCommands\StardewModdingAPI.Mods.ConsoleCommands.csproj", "{8C2CA4AB-BA8A-446A-B59E-9D6502E145F7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SMAPI", "SMAPI\SMAPI.csproj", "{E6DA2198-7686-4F1D-B312-4A4DC70884C0}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StardewModdingAPI.Mods.SaveBackup", "SMAPI.Mods.SaveBackup\StardewModdingAPI.Mods.SaveBackup.csproj", "{E4113F3E-3CAA-4288-9378-39A77BA625DB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SMAPI.Installer", "SMAPI.Installer\SMAPI.Installer.csproj", "{0A9BB24F-15FF-4C26-B1A2-81F7AE316518}" + ProjectSection(ProjectDependencies) = postProject + {0634EA4C-3B8F-42DB-AEA6-CA9E4EF6E92F} = {0634EA4C-3B8F-42DB-AEA6-CA9E4EF6E92F} + {CD53AD6F-97F4-4872-A212-50C2A0FD3601} = {CD53AD6F-97F4-4872-A212-50C2A0FD3601} + {E6DA2198-7686-4F1D-B312-4A4DC70884C0} = {E6DA2198-7686-4F1D-B312-4A4DC70884C0} + EndProjectSection EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StardewModdingAPI.Toolkit", "SMAPI.Toolkit\StardewModdingAPI.Toolkit.csproj", "{EA5CFD2E-9453-4D29-B80F-8E0EA23F4AC6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SMAPI.ModBuildConfig", "SMAPI.ModBuildConfig\SMAPI.ModBuildConfig.csproj", "{1B3821E6-D030-402C-B3A1-7CA45C2800EA}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StardewModdingAPI.Toolkit.CoreInterfaces", "SMAPI.Toolkit.CoreInterfaces\StardewModdingAPI.Toolkit.CoreInterfaces.csproj", "{D5CFD923-37F1-4BC3-9BE8-E506E202AC28}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SMAPI.ModBuildConfig.Analyzer", "SMAPI.ModBuildConfig.Analyzer\SMAPI.ModBuildConfig.Analyzer.csproj", "{517677D7-7299-426F-B1A3-47BDCC2F1214}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".github", ".github", "{4B1CEB70-F756-4A57-AAE8-8CD78C475F25}" - ProjectSection(SolutionItems) = preProject - ..\.github\CONTRIBUTING.md = ..\.github\CONTRIBUTING.md - ..\.github\SUPPORT.md = ..\.github\SUPPORT.md - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SMAPI.Mods.ConsoleCommands", "SMAPI.Mods.ConsoleCommands\SMAPI.Mods.ConsoleCommands.csproj", "{0634EA4C-3B8F-42DB-AEA6-CA9E4EF6E92F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ISSUE_TEMPLATE", "ISSUE_TEMPLATE", "{F4453AB6-D7D6-447F-A973-956CC777968F}" - ProjectSection(SolutionItems) = preProject - ..\.github\ISSUE_TEMPLATE\bug_report.md = ..\.github\ISSUE_TEMPLATE\bug_report.md - ..\.github\ISSUE_TEMPLATE\feature_request.md = ..\.github\ISSUE_TEMPLATE\feature_request.md - ..\.github\ISSUE_TEMPLATE\general.md = ..\.github\ISSUE_TEMPLATE\general.md - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SMAPI.Mods.SaveBackup", "SMAPI.Mods.SaveBackup\SMAPI.Mods.SaveBackup.csproj", "{CD53AD6F-97F4-4872-A212-50C2A0FD3601}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SMAPI.Toolkit", "SMAPI.Toolkit\SMAPI.Toolkit.csproj", "{08184F74-60AD-4EEE-A78C-F4A35ADE6246}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SMAPI.Toolkit.CoreInterfaces", "SMAPI.Toolkit.CoreInterfaces\SMAPI.Toolkit.CoreInterfaces.csproj", "{ED8E41FA-DDFA-4A77-932E-9853D279A129}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SMAPI.Web", "SMAPI.Web\SMAPI.Web.csproj", "{80EFD92F-728F-41E0-8A5B-9F6F49A91899}" EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution @@ -80,61 +80,62 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {1298F2B2-57BD-4647-AF70-1FCBBEE500B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1298F2B2-57BD-4647-AF70-1FCBBEE500B6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1298F2B2-57BD-4647-AF70-1FCBBEE500B6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1298F2B2-57BD-4647-AF70-1FCBBEE500B6}.Release|Any CPU.Build.0 = Release|Any CPU - {0ED5EAD8-5D85-420D-8101-6D8CCCE29C9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0ED5EAD8-5D85-420D-8101-6D8CCCE29C9B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0ED5EAD8-5D85-420D-8101-6D8CCCE29C9B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0ED5EAD8-5D85-420D-8101-6D8CCCE29C9B}.Release|Any CPU.Build.0 = Release|Any CPU - {E023DA12-5960-4101-80B9-A7DCE955725C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E023DA12-5960-4101-80B9-A7DCE955725C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E023DA12-5960-4101-80B9-A7DCE955725C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E023DA12-5960-4101-80B9-A7DCE955725C}.Release|Any CPU.Build.0 = Release|Any CPU - {A308F679-51A3-4006-92D5-BAEC7EBD01A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A308F679-51A3-4006-92D5-BAEC7EBD01A1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A308F679-51A3-4006-92D5-BAEC7EBD01A1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A308F679-51A3-4006-92D5-BAEC7EBD01A1}.Release|Any CPU.Build.0 = Release|Any CPU - {C11D0AFB-2893-41A9-AD55-D002F032D6AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C11D0AFB-2893-41A9-AD55-D002F032D6AD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C11D0AFB-2893-41A9-AD55-D002F032D6AD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C11D0AFB-2893-41A9-AD55-D002F032D6AD}.Release|Any CPU.Build.0 = Release|Any CPU - {80AD8528-AA49-4731-B4A6-C691845815A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {80AD8528-AA49-4731-B4A6-C691845815A1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {80AD8528-AA49-4731-B4A6-C691845815A1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {80AD8528-AA49-4731-B4A6-C691845815A1}.Release|Any CPU.Build.0 = Release|Any CPU - {0CF97929-B0D0-4D73-B7BF-4FF7191035F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0CF97929-B0D0-4D73-B7BF-4FF7191035F9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0CF97929-B0D0-4D73-B7BF-4FF7191035F9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0CF97929-B0D0-4D73-B7BF-4FF7191035F9}.Release|Any CPU.Build.0 = Release|Any CPU - {EA5CFD2E-9453-4D29-B80F-8E0EA23F4AC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EA5CFD2E-9453-4D29-B80F-8E0EA23F4AC6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EA5CFD2E-9453-4D29-B80F-8E0EA23F4AC6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EA5CFD2E-9453-4D29-B80F-8E0EA23F4AC6}.Release|Any CPU.Build.0 = Release|Any CPU - {D5CFD923-37F1-4BC3-9BE8-E506E202AC28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D5CFD923-37F1-4BC3-9BE8-E506E202AC28}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D5CFD923-37F1-4BC3-9BE8-E506E202AC28}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D5CFD923-37F1-4BC3-9BE8-E506E202AC28}.Release|Any CPU.Build.0 = Release|Any CPU - {8C2CA4AB-BA8A-446A-B59E-9D6502E145F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8C2CA4AB-BA8A-446A-B59E-9D6502E145F7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8C2CA4AB-BA8A-446A-B59E-9D6502E145F7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8C2CA4AB-BA8A-446A-B59E-9D6502E145F7}.Release|Any CPU.Build.0 = Release|Any CPU - {E4113F3E-3CAA-4288-9378-39A77BA625DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E4113F3E-3CAA-4288-9378-39A77BA625DB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E4113F3E-3CAA-4288-9378-39A77BA625DB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E4113F3E-3CAA-4288-9378-39A77BA625DB}.Release|Any CPU.Build.0 = Release|Any CPU + {680B2641-81EA-467C-86A5-0E81CDC57ED0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {680B2641-81EA-467C-86A5-0E81CDC57ED0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {680B2641-81EA-467C-86A5-0E81CDC57ED0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {680B2641-81EA-467C-86A5-0E81CDC57ED0}.Release|Any CPU.Build.0 = Release|Any CPU + {AA95884B-7097-476E-92C8-D0500DE9D6D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AA95884B-7097-476E-92C8-D0500DE9D6D1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AA95884B-7097-476E-92C8-D0500DE9D6D1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AA95884B-7097-476E-92C8-D0500DE9D6D1}.Release|Any CPU.Build.0 = Release|Any CPU + {E6DA2198-7686-4F1D-B312-4A4DC70884C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E6DA2198-7686-4F1D-B312-4A4DC70884C0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E6DA2198-7686-4F1D-B312-4A4DC70884C0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E6DA2198-7686-4F1D-B312-4A4DC70884C0}.Release|Any CPU.Build.0 = Release|Any CPU + {0A9BB24F-15FF-4C26-B1A2-81F7AE316518}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0A9BB24F-15FF-4C26-B1A2-81F7AE316518}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0A9BB24F-15FF-4C26-B1A2-81F7AE316518}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0A9BB24F-15FF-4C26-B1A2-81F7AE316518}.Release|Any CPU.Build.0 = Release|Any CPU + {1B3821E6-D030-402C-B3A1-7CA45C2800EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1B3821E6-D030-402C-B3A1-7CA45C2800EA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1B3821E6-D030-402C-B3A1-7CA45C2800EA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1B3821E6-D030-402C-B3A1-7CA45C2800EA}.Release|Any CPU.Build.0 = Release|Any CPU + {517677D7-7299-426F-B1A3-47BDCC2F1214}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {517677D7-7299-426F-B1A3-47BDCC2F1214}.Debug|Any CPU.Build.0 = Debug|Any CPU + {517677D7-7299-426F-B1A3-47BDCC2F1214}.Release|Any CPU.ActiveCfg = Release|Any CPU + {517677D7-7299-426F-B1A3-47BDCC2F1214}.Release|Any CPU.Build.0 = Release|Any CPU + {0634EA4C-3B8F-42DB-AEA6-CA9E4EF6E92F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0634EA4C-3B8F-42DB-AEA6-CA9E4EF6E92F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0634EA4C-3B8F-42DB-AEA6-CA9E4EF6E92F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0634EA4C-3B8F-42DB-AEA6-CA9E4EF6E92F}.Release|Any CPU.Build.0 = Release|Any CPU + {CD53AD6F-97F4-4872-A212-50C2A0FD3601}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CD53AD6F-97F4-4872-A212-50C2A0FD3601}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CD53AD6F-97F4-4872-A212-50C2A0FD3601}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CD53AD6F-97F4-4872-A212-50C2A0FD3601}.Release|Any CPU.Build.0 = Release|Any CPU + {08184F74-60AD-4EEE-A78C-F4A35ADE6246}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {08184F74-60AD-4EEE-A78C-F4A35ADE6246}.Debug|Any CPU.Build.0 = Debug|Any CPU + {08184F74-60AD-4EEE-A78C-F4A35ADE6246}.Release|Any CPU.ActiveCfg = Release|Any CPU + {08184F74-60AD-4EEE-A78C-F4A35ADE6246}.Release|Any CPU.Build.0 = Release|Any CPU + {ED8E41FA-DDFA-4A77-932E-9853D279A129}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ED8E41FA-DDFA-4A77-932E-9853D279A129}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ED8E41FA-DDFA-4A77-932E-9853D279A129}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ED8E41FA-DDFA-4A77-932E-9853D279A129}.Release|Any CPU.Build.0 = Release|Any CPU + {80EFD92F-728F-41E0-8A5B-9F6F49A91899}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {80EFD92F-728F-41E0-8A5B-9F6F49A91899}.Debug|Any CPU.Build.0 = Debug|Any CPU + {80EFD92F-728F-41E0-8A5B-9F6F49A91899}.Release|Any CPU.ActiveCfg = Release|Any CPU + {80EFD92F-728F-41E0-8A5B-9F6F49A91899}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {E023DA12-5960-4101-80B9-A7DCE955725C} = {82D22ED7-A0A7-4D64-8E92-4B6A5E74ED11} - {EB35A917-67B9-4EFA-8DFC-4FB49B3949BB} = {86C452BE-D2D8-45B4-B63F-E329EB06CEDA} - {09CF91E5-5BAB-4650-A200-E5EA9A633046} = {86C452BE-D2D8-45B4-B63F-E329EB06CEDA} - {0CF97929-B0D0-4D73-B7BF-4FF7191035F9} = {82D22ED7-A0A7-4D64-8E92-4B6A5E74ED11} {4B1CEB70-F756-4A57-AAE8-8CD78C475F25} = {86C452BE-D2D8-45B4-B63F-E329EB06CEDA} {F4453AB6-D7D6-447F-A973-956CC777968F} = {4B1CEB70-F756-4A57-AAE8-8CD78C475F25} + {09CF91E5-5BAB-4650-A200-E5EA9A633046} = {86C452BE-D2D8-45B4-B63F-E329EB06CEDA} + {EB35A917-67B9-4EFA-8DFC-4FB49B3949BB} = {86C452BE-D2D8-45B4-B63F-E329EB06CEDA} + {85208F8D-6FD1-4531-BE05-7142490F59FE} = {82D22ED7-A0A7-4D64-8E92-4B6A5E74ED11} + {680B2641-81EA-467C-86A5-0E81CDC57ED0} = {82D22ED7-A0A7-4D64-8E92-4B6A5E74ED11} + {AA95884B-7097-476E-92C8-D0500DE9D6D1} = {82D22ED7-A0A7-4D64-8E92-4B6A5E74ED11} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {70143042-A862-47A8-A677-7C819DDC90DC} diff --git a/src/SMAPI/SMAPI.csproj b/src/SMAPI/SMAPI.csproj new file mode 100644 index 00000000..58a71f94 --- /dev/null +++ b/src/SMAPI/SMAPI.csproj @@ -0,0 +1,60 @@ + + + + StardewModdingAPI + StardewModdingAPI + net45 + false + latest + x86 + Exe + $(SolutionDir)\..\bin\$(Configuration)\SMAPI + $(SolutionDir)\..\bin\$(Configuration)\SMAPI\StardewModdingAPI.xml + false + true + icon.ico + + + + + + + + + + + + True + + + True + + + + + + + + + + + + + + + + PreserveNewest + + + StardewModdingAPI.metadata.json + PreserveNewest + + + PreserveNewest + + + + + + + diff --git a/src/SMAPI/StardewModdingAPI.csproj b/src/SMAPI/StardewModdingAPI.csproj deleted file mode 100644 index 718366a7..00000000 --- a/src/SMAPI/StardewModdingAPI.csproj +++ /dev/null @@ -1,60 +0,0 @@ - - - - StardewModdingAPI - StardewModdingAPI - net45 - false - latest - x86 - Exe - $(SolutionDir)\..\bin\$(Configuration)\SMAPI - $(SolutionDir)\..\bin\$(Configuration)\SMAPI\StardewModdingAPI.xml - false - true - icon.ico - - - - - - - - - - - - True - - - True - - - - - - - - - - - - - - - - PreserveNewest - - - StardewModdingAPI.metadata.json - PreserveNewest - - - PreserveNewest - - - - - - - -- cgit From 904c39eb7286df6ad3098dfdcfbf09cb282141e4 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Tue, 18 Jun 2019 23:59:30 -0400 Subject: move assembly references out of common.targets --- build/common.targets | 71 +--------------------- .../SMAPI.Mods.ConsoleCommands.csproj | 49 +++++++++++++++ .../SMAPI.Mods.SaveBackup.csproj | 7 +++ src/SMAPI.Tests/SMAPI.Tests.csproj | 7 +++ src/SMAPI/SMAPI.csproj | 62 +++++++++++++++++++ 5 files changed, 126 insertions(+), 70 deletions(-) (limited to 'src/SMAPI.Mods.SaveBackup') diff --git a/build/common.targets b/build/common.targets index 6bf1305e..abcf2d87 100644 --- a/build/common.targets +++ b/build/common.targets @@ -3,79 +3,10 @@ + $(AssemblySearchPaths);{GAC} $(DefineConstants);SMAPI_FOR_WINDOWS - - - - - - - $(AssemblySearchPaths);{GAC} - - - - - $(GamePath)\Stardew Valley.exe - False - - - $(GamePath)\StardewValley.GameData.dll - False - - - $(GamePath)\Netcode.dll - False - - - False - - - False - - - False - - - False - - - - - - - $(GamePath)\StardewValley.exe - False - - - $(GamePath)\StardewValley.GameData.MonoGame.dll - False - - - $(GamePath)\MonoGame.Framework.dll - False - - - - - - - $(GamePath)\GalaxyCSharp.dll - False - - - $(GamePath)\Lidgren.Network.dll - False - - - $(GamePath)\xTile.dll - False - - - - - diff --git a/src/SMAPI.Mods.ConsoleCommands/SMAPI.Mods.ConsoleCommands.csproj b/src/SMAPI.Mods.ConsoleCommands/SMAPI.Mods.ConsoleCommands.csproj index 13f92443..6cceb22d 100644 --- a/src/SMAPI.Mods.ConsoleCommands/SMAPI.Mods.ConsoleCommands.csproj +++ b/src/SMAPI.Mods.ConsoleCommands/SMAPI.Mods.ConsoleCommands.csproj @@ -17,6 +17,55 @@ + + + $(GamePath)\$(GameExecutableName).exe + False + + + + + + + + + $(GamePath)\StardewValley.GameData.dll + False + + + $(GamePath)\Netcode.dll + False + + + False + + + False + + + False + + + False + + + + + + + + + $(GamePath)\StardewValley.GameData.MonoGame.dll + False + + + $(GamePath)\MonoGame.Framework.dll + False + + + + + Properties\GlobalAssemblyInfo.cs diff --git a/src/SMAPI.Mods.SaveBackup/SMAPI.Mods.SaveBackup.csproj b/src/SMAPI.Mods.SaveBackup/SMAPI.Mods.SaveBackup.csproj index 9375cb64..d2e41e77 100644 --- a/src/SMAPI.Mods.SaveBackup/SMAPI.Mods.SaveBackup.csproj +++ b/src/SMAPI.Mods.SaveBackup/SMAPI.Mods.SaveBackup.csproj @@ -17,6 +17,13 @@ + + + $(GamePath)\$(GameExecutableName).exe + False + + + Properties\GlobalAssemblyInfo.cs diff --git a/src/SMAPI.Tests/SMAPI.Tests.csproj b/src/SMAPI.Tests/SMAPI.Tests.csproj index 1c414127..2f632a49 100644 --- a/src/SMAPI.Tests/SMAPI.Tests.csproj +++ b/src/SMAPI.Tests/SMAPI.Tests.csproj @@ -25,6 +25,13 @@ + + + $(GamePath)\$(GameExecutableName).exe + True + + + Properties\GlobalAssemblyInfo.cs diff --git a/src/SMAPI/SMAPI.csproj b/src/SMAPI/SMAPI.csproj index d723d954..8b7d6277 100644 --- a/src/SMAPI/SMAPI.csproj +++ b/src/SMAPI/SMAPI.csproj @@ -23,6 +23,10 @@ + + $(GamePath)\$(GameExecutableName).exe + False + True @@ -32,6 +36,64 @@ + + + + + + $(GamePath)\StardewValley.GameData.dll + False + + + $(GamePath)\Netcode.dll + False + + + False + + + False + + + False + + + False + + + + + + + + + $(GamePath)\StardewValley.GameData.MonoGame.dll + False + + + $(GamePath)\MonoGame.Framework.dll + False + + + + + + + + + $(GamePath)\GalaxyCSharp.dll + False + + + $(GamePath)\Lidgren.Network.dll + False + + + $(GamePath)\xTile.dll + False + + + -- cgit From 2b4bc2c282e17ba431f9a6ec1892b87a37eb4bb7 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Mon, 29 Jul 2019 13:15:27 -0400 Subject: back up saves in a background thread --- docs/release-notes.md | 1 + src/SMAPI.Mods.SaveBackup/ModEntry.cs | 11 +++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) (limited to 'src/SMAPI.Mods.SaveBackup') diff --git a/docs/release-notes.md b/docs/release-notes.md index 2b7d1545..b425112d 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -12,6 +12,7 @@ These changes have not been released yet. * Now ignores metadata files/folders like `__MACOSX` and `__folder_managed_by_vortex`. * Now ignores content files like `.txt` or `.png`, which avoids missing-manifest errors in some common cases. * Now detects XNB mods more accurately, and consolidates multi-folder XNB mods. + * Save Backup now works in the background, to avoid affecting startup time for players with a large number of saves. * Duplicate-mod errors now show the mod version in each folder. * Updated mod compatibility list. * Fixed mods needing to load custom `Map` assets before the game accesses them (SMAPI will now do so automatically). diff --git a/src/SMAPI.Mods.SaveBackup/ModEntry.cs b/src/SMAPI.Mods.SaveBackup/ModEntry.cs index 33adf76d..845df453 100644 --- a/src/SMAPI.Mods.SaveBackup/ModEntry.cs +++ b/src/SMAPI.Mods.SaveBackup/ModEntry.cs @@ -4,6 +4,7 @@ using System.IO; using System.IO.Compression; using System.Linq; using System.Reflection; +using System.Threading.Tasks; using StardewValley; namespace StardewModdingAPI.Mods.SaveBackup @@ -40,9 +41,10 @@ namespace StardewModdingAPI.Mods.SaveBackup DirectoryInfo backupFolder = new DirectoryInfo(this.BackupFolder); backupFolder.Create(); - // back up saves - this.CreateBackup(backupFolder); - this.PruneBackups(backupFolder, this.BackupsToKeep); + // back up & prune saves + Task + .Run(() => this.CreateBackup(backupFolder)) + .ContinueWith(backupTask => this.PruneBackups(backupFolder, this.BackupsToKeep)); } catch (Exception ex) { @@ -68,7 +70,7 @@ namespace StardewModdingAPI.Mods.SaveBackup // create zip // due to limitations with the bundled Mono on Mac, we can't reference System.IO.Compression. - this.Monitor.Log($"Adding {targetFile.Name}...", LogLevel.Trace); + this.Monitor.Log($"Backing up saves to {targetFile.FullName}...", LogLevel.Trace); switch (Constants.TargetPlatform) { case GamePlatform.Linux: @@ -108,6 +110,7 @@ namespace StardewModdingAPI.Mods.SaveBackup } break; } + this.Monitor.Log("Backup done!", LogLevel.Trace); } catch (Exception ex) { -- cgit From 25e4aa14d865cdf9f3616cfb0fd981aaaf0e3535 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Fri, 9 Aug 2019 17:47:53 -0400 Subject: remove legacy AssemblyInfo and GlobalAssemblyInfo files, use consistent assembly names --- build/GlobalAssemblyInfo.cs | 5 ----- build/common.targets | 3 +++ docs/technical/smapi.md | 12 ++++++------ src/SMAPI.Installer/Properties/AssemblyInfo.cs | 4 ---- src/SMAPI.Installer/SMAPI.Installer.csproj | 8 ++------ .../SMAPI.ModBuildConfig.Analyzer.Tests.csproj | 2 ++ src/SMAPI.ModBuildConfig.Analyzer/Properties/AssemblyInfo.cs | 4 ---- .../SMAPI.ModBuildConfig.Analyzer.csproj | 9 ++++----- src/SMAPI.ModBuildConfig/Properties/AssemblyInfo.cs | 6 ------ src/SMAPI.ModBuildConfig/SMAPI.ModBuildConfig.csproj | 4 ++-- src/SMAPI.Mods.ConsoleCommands/Properties/AssemblyInfo.cs | 4 ---- .../SMAPI.Mods.ConsoleCommands.csproj | 9 +-------- src/SMAPI.Mods.SaveBackup/Properties/AssemblyInfo.cs | 4 ---- src/SMAPI.Mods.SaveBackup/SMAPI.Mods.SaveBackup.csproj | 9 +-------- src/SMAPI.Tests/Core/ModResolverTests.cs | 4 +++- src/SMAPI.Tests/Core/TranslationTests.cs | 3 ++- src/SMAPI.Tests/Properties/AssemblyInfo.cs | 4 ---- src/SMAPI.Tests/SMAPI.Tests.csproj | 8 +------- src/SMAPI.Tests/Sample.cs | 2 +- src/SMAPI.Tests/Toolkit/PathUtilitiesTests.cs | 2 +- src/SMAPI.Tests/Utilities/SDateTests.cs | 2 +- src/SMAPI.Tests/Utilities/SemanticVersionTests.cs | 3 ++- src/SMAPI.Toolkit.CoreInterfaces/Properties/AssemblyInfo.cs | 4 ---- .../SMAPI.Toolkit.CoreInterfaces.csproj | 9 +++------ src/SMAPI.Toolkit/ModToolkit.cs | 3 +++ src/SMAPI.Toolkit/Properties/AssemblyInfo.cs | 7 ------- src/SMAPI.Toolkit/SMAPI.Toolkit.csproj | 8 +++----- src/SMAPI.Web/Properties/AssemblyInfo.cs | 4 ---- src/SMAPI.Web/SMAPI.Web.csproj | 8 +++----- src/SMAPI/Program.cs | 3 +++ src/SMAPI/Properties/AssemblyInfo.cs | 7 ------- src/SMAPI/SMAPI.csproj | 8 ++------ 32 files changed, 49 insertions(+), 123 deletions(-) delete mode 100644 build/GlobalAssemblyInfo.cs delete mode 100644 src/SMAPI.Installer/Properties/AssemblyInfo.cs delete mode 100644 src/SMAPI.ModBuildConfig.Analyzer/Properties/AssemblyInfo.cs delete mode 100644 src/SMAPI.ModBuildConfig/Properties/AssemblyInfo.cs delete mode 100644 src/SMAPI.Mods.ConsoleCommands/Properties/AssemblyInfo.cs delete mode 100644 src/SMAPI.Mods.SaveBackup/Properties/AssemblyInfo.cs delete mode 100644 src/SMAPI.Tests/Properties/AssemblyInfo.cs delete mode 100644 src/SMAPI.Toolkit.CoreInterfaces/Properties/AssemblyInfo.cs delete mode 100644 src/SMAPI.Toolkit/Properties/AssemblyInfo.cs delete mode 100644 src/SMAPI.Web/Properties/AssemblyInfo.cs delete mode 100644 src/SMAPI/Properties/AssemblyInfo.cs (limited to 'src/SMAPI.Mods.SaveBackup') diff --git a/build/GlobalAssemblyInfo.cs b/build/GlobalAssemblyInfo.cs deleted file mode 100644 index 0fa0d331..00000000 --- a/build/GlobalAssemblyInfo.cs +++ /dev/null @@ -1,5 +0,0 @@ -using System.Reflection; - -[assembly: AssemblyProduct("SMAPI")] -[assembly: AssemblyVersion("3.0.0")] -[assembly: AssemblyFileVersion("3.0.0")] diff --git a/build/common.targets b/build/common.targets index 59d5bfd2..a9bc9ebb 100644 --- a/build/common.targets +++ b/build/common.targets @@ -4,6 +4,9 @@ + 3.0.0 + SMAPI + $(AssemblySearchPaths);{GAC} $(DefineConstants);SMAPI_FOR_WINDOWS diff --git a/docs/technical/smapi.md b/docs/technical/smapi.md index a006ff1a..f6994ba3 100644 --- a/docs/technical/smapi.md +++ b/docs/technical/smapi.md @@ -50,7 +50,7 @@ argument | purpose ### Compile flags SMAPI uses a small number of conditional compilation constants, which you can set by editing the -`` element in `StardewModdingAPI.csproj`. Supported constants: +`` element in `SMAPI.csproj`. Supported constants: flag | purpose ---- | ------- @@ -71,17 +71,17 @@ your current OS automatically and load the correct references. Compile output wi ### Debugging a local build Rebuilding the solution in debug mode will copy the SMAPI files into your game folder. Starting -the `StardewModdingAPI` project with debugging from Visual Studio (on Mac or Windows) will launch -SMAPI with the debugger attached, so you can intercept errors and step through the code being -executed. This doesn't work in MonoDevelop on Linux, unfortunately. +the `SMAPI` project with debugging from Visual Studio (on Mac or Windows) will launch SMAPI with +the debugger attached, so you can intercept errors and step through the code being executed. This +doesn't work in MonoDevelop on Linux, unfortunately. ### Preparing a release To prepare a crossplatform SMAPI release, you'll need to compile it on two platforms. See [crossplatforming info](https://stardewvalleywiki.com/Modding:Modder_Guide/Test_and_Troubleshoot#Testing_on_all_platforms) on the wiki for the first-time setup. -1. Update the version number in `GlobalAssemblyInfo.cs` and `Constants::Version`. Make sure you use a - [semantic version](https://semver.org). Recommended format: +1. Update the version number in `.root/build/common.targets` and `Constants::Version`. Make sure + you use a [semantic version](https://semver.org). Recommended format: build type | format | example :--------- | :----------------------- | :------ diff --git a/src/SMAPI.Installer/Properties/AssemblyInfo.cs b/src/SMAPI.Installer/Properties/AssemblyInfo.cs deleted file mode 100644 index 9838e5a0..00000000 --- a/src/SMAPI.Installer/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,4 +0,0 @@ -using System.Reflection; - -[assembly: AssemblyTitle("SMAPI.Installer")] -[assembly: AssemblyDescription("The SMAPI installer for players.")] diff --git a/src/SMAPI.Installer/SMAPI.Installer.csproj b/src/SMAPI.Installer/SMAPI.Installer.csproj index a2e115e6..3f01c8fe 100644 --- a/src/SMAPI.Installer/SMAPI.Installer.csproj +++ b/src/SMAPI.Installer/SMAPI.Installer.csproj @@ -1,10 +1,10 @@  - SMAPI.Installer SMAPI.Installer + StardewModdingAPI.Installer + The SMAPI installer for players. net45 - false latest Exe x86 @@ -12,10 +12,6 @@ false - - - - diff --git a/src/SMAPI.ModBuildConfig.Analyzer.Tests/SMAPI.ModBuildConfig.Analyzer.Tests.csproj b/src/SMAPI.ModBuildConfig.Analyzer.Tests/SMAPI.ModBuildConfig.Analyzer.Tests.csproj index 40ceba3c..681eb5c2 100644 --- a/src/SMAPI.ModBuildConfig.Analyzer.Tests/SMAPI.ModBuildConfig.Analyzer.Tests.csproj +++ b/src/SMAPI.ModBuildConfig.Analyzer.Tests/SMAPI.ModBuildConfig.Analyzer.Tests.csproj @@ -16,4 +16,6 @@ + + diff --git a/src/SMAPI.ModBuildConfig.Analyzer/Properties/AssemblyInfo.cs b/src/SMAPI.ModBuildConfig.Analyzer/Properties/AssemblyInfo.cs deleted file mode 100644 index 1cc41000..00000000 --- a/src/SMAPI.ModBuildConfig.Analyzer/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,4 +0,0 @@ -using System.Reflection; - -[assembly: AssemblyTitle("SMAPI.ModBuildConfig.Analyzer")] -[assembly: AssemblyDescription("")] diff --git a/src/SMAPI.ModBuildConfig.Analyzer/SMAPI.ModBuildConfig.Analyzer.csproj b/src/SMAPI.ModBuildConfig.Analyzer/SMAPI.ModBuildConfig.Analyzer.csproj index d812e9c6..3659e25a 100644 --- a/src/SMAPI.ModBuildConfig.Analyzer/SMAPI.ModBuildConfig.Analyzer.csproj +++ b/src/SMAPI.ModBuildConfig.Analyzer/SMAPI.ModBuildConfig.Analyzer.csproj @@ -1,17 +1,16 @@  + SMAPI.ModBuildConfig.Analyzer + StardewModdingAPI.ModBuildConfig.Analyzer + 3.0.0 netstandard2.0 - false + latest false bin latest - - - - diff --git a/src/SMAPI.ModBuildConfig/Properties/AssemblyInfo.cs b/src/SMAPI.ModBuildConfig/Properties/AssemblyInfo.cs deleted file mode 100644 index 255ce509..00000000 --- a/src/SMAPI.ModBuildConfig/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,6 +0,0 @@ -using System.Reflection; - -[assembly: AssemblyTitle("SMAPI.ModBuildConfig")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyVersion("3.0.0")] -[assembly: AssemblyFileVersion("3.0.0")] diff --git a/src/SMAPI.ModBuildConfig/SMAPI.ModBuildConfig.csproj b/src/SMAPI.ModBuildConfig/SMAPI.ModBuildConfig.csproj index e13526f9..137a6c4a 100644 --- a/src/SMAPI.ModBuildConfig/SMAPI.ModBuildConfig.csproj +++ b/src/SMAPI.ModBuildConfig/SMAPI.ModBuildConfig.csproj @@ -1,10 +1,10 @@  - SMAPI.ModBuildConfig SMAPI.ModBuildConfig + StardewModdingAPI.ModBuildConfig + 3.0.0 net45 - false latest x86 false diff --git a/src/SMAPI.Mods.ConsoleCommands/Properties/AssemblyInfo.cs b/src/SMAPI.Mods.ConsoleCommands/Properties/AssemblyInfo.cs deleted file mode 100644 index 86653141..00000000 --- a/src/SMAPI.Mods.ConsoleCommands/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,4 +0,0 @@ -using System.Reflection; - -[assembly: AssemblyTitle("SMAPI.Mods.ConsoleCommands")] -[assembly: AssemblyDescription("")] diff --git a/src/SMAPI.Mods.ConsoleCommands/SMAPI.Mods.ConsoleCommands.csproj b/src/SMAPI.Mods.ConsoleCommands/SMAPI.Mods.ConsoleCommands.csproj index 80e1986e..ce35bf73 100644 --- a/src/SMAPI.Mods.ConsoleCommands/SMAPI.Mods.ConsoleCommands.csproj +++ b/src/SMAPI.Mods.ConsoleCommands/SMAPI.Mods.ConsoleCommands.csproj @@ -1,10 +1,9 @@  - SMAPI.Mods.ConsoleCommands ConsoleCommands + StardewModdingAPI.Mods.ConsoleCommands net45 - false latest $(SolutionDir)\..\bin\$(Configuration)\Mods\ConsoleCommands false @@ -62,12 +61,6 @@ - - - Properties\GlobalAssemblyInfo.cs - - - PreserveNewest diff --git a/src/SMAPI.Mods.SaveBackup/Properties/AssemblyInfo.cs b/src/SMAPI.Mods.SaveBackup/Properties/AssemblyInfo.cs deleted file mode 100644 index fc6b26fa..00000000 --- a/src/SMAPI.Mods.SaveBackup/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,4 +0,0 @@ -using System.Reflection; - -[assembly: AssemblyTitle("StardewModdingAPI.Mods.SaveBackup")] -[assembly: AssemblyDescription("")] diff --git a/src/SMAPI.Mods.SaveBackup/SMAPI.Mods.SaveBackup.csproj b/src/SMAPI.Mods.SaveBackup/SMAPI.Mods.SaveBackup.csproj index d2e41e77..2d031408 100644 --- a/src/SMAPI.Mods.SaveBackup/SMAPI.Mods.SaveBackup.csproj +++ b/src/SMAPI.Mods.SaveBackup/SMAPI.Mods.SaveBackup.csproj @@ -1,10 +1,9 @@  - SMAPI.Mods.SaveBackup SaveBackup + StardewModdingAPI.Mods.SaveBackup net45 - false latest $(SolutionDir)\..\bin\$(Configuration)\Mods\SaveBackup false @@ -24,12 +23,6 @@ - - - Properties\GlobalAssemblyInfo.cs - - - PreserveNewest diff --git a/src/SMAPI.Tests/Core/ModResolverTests.cs b/src/SMAPI.Tests/Core/ModResolverTests.cs index c1aa0212..a9c88c60 100644 --- a/src/SMAPI.Tests/Core/ModResolverTests.cs +++ b/src/SMAPI.Tests/Core/ModResolverTests.cs @@ -5,13 +5,15 @@ using System.Linq; using Moq; using Newtonsoft.Json; using NUnit.Framework; +using StardewModdingAPI; using StardewModdingAPI.Framework; using StardewModdingAPI.Framework.ModLoading; using StardewModdingAPI.Toolkit; using StardewModdingAPI.Toolkit.Framework.ModData; using StardewModdingAPI.Toolkit.Serialization.Models; +using SemanticVersion = StardewModdingAPI.SemanticVersion; -namespace StardewModdingAPI.Tests.Core +namespace SMAPI.Tests.Core { /// Unit tests for . [TestFixture] diff --git a/src/SMAPI.Tests/Core/TranslationTests.cs b/src/SMAPI.Tests/Core/TranslationTests.cs index eea301ae..c098aca5 100644 --- a/src/SMAPI.Tests/Core/TranslationTests.cs +++ b/src/SMAPI.Tests/Core/TranslationTests.cs @@ -2,10 +2,11 @@ using System; using System.Collections.Generic; using System.Linq; using NUnit.Framework; +using StardewModdingAPI; using StardewModdingAPI.Framework.ModHelpers; using StardewValley; -namespace StardewModdingAPI.Tests.Core +namespace SMAPI.Tests.Core { /// Unit tests for and . [TestFixture] diff --git a/src/SMAPI.Tests/Properties/AssemblyInfo.cs b/src/SMAPI.Tests/Properties/AssemblyInfo.cs deleted file mode 100644 index 8b21e8fe..00000000 --- a/src/SMAPI.Tests/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,4 +0,0 @@ -using System.Reflection; - -[assembly: AssemblyTitle("SMAPI.Tests")] -[assembly: AssemblyDescription("")] diff --git a/src/SMAPI.Tests/SMAPI.Tests.csproj b/src/SMAPI.Tests/SMAPI.Tests.csproj index 41e12d7d..a627b3c3 100644 --- a/src/SMAPI.Tests/SMAPI.Tests.csproj +++ b/src/SMAPI.Tests/SMAPI.Tests.csproj @@ -1,8 +1,8 @@  - SMAPI.Tests SMAPI.Tests + SMAPI.Tests net45 false latest @@ -28,12 +28,6 @@ - - - Properties\GlobalAssemblyInfo.cs - - - diff --git a/src/SMAPI.Tests/Sample.cs b/src/SMAPI.Tests/Sample.cs index 6cd27707..f4f0d88e 100644 --- a/src/SMAPI.Tests/Sample.cs +++ b/src/SMAPI.Tests/Sample.cs @@ -1,6 +1,6 @@ using System; -namespace StardewModdingAPI.Tests +namespace SMAPI.Tests { /// Provides sample values for unit testing. internal static class Sample diff --git a/src/SMAPI.Tests/Toolkit/PathUtilitiesTests.cs b/src/SMAPI.Tests/Toolkit/PathUtilitiesTests.cs index 3dc65ed5..55785bfa 100644 --- a/src/SMAPI.Tests/Toolkit/PathUtilitiesTests.cs +++ b/src/SMAPI.Tests/Toolkit/PathUtilitiesTests.cs @@ -1,7 +1,7 @@ using NUnit.Framework; using StardewModdingAPI.Toolkit.Utilities; -namespace StardewModdingAPI.Tests.Toolkit +namespace SMAPI.Tests.Toolkit { /// Unit tests for . [TestFixture] diff --git a/src/SMAPI.Tests/Utilities/SDateTests.cs b/src/SMAPI.Tests/Utilities/SDateTests.cs index 642f11f6..d25a101a 100644 --- a/src/SMAPI.Tests/Utilities/SDateTests.cs +++ b/src/SMAPI.Tests/Utilities/SDateTests.cs @@ -6,7 +6,7 @@ using System.Text.RegularExpressions; using NUnit.Framework; using StardewModdingAPI.Utilities; -namespace StardewModdingAPI.Tests.Utilities +namespace SMAPI.Tests.Utilities { /// Unit tests for . [TestFixture] diff --git a/src/SMAPI.Tests/Utilities/SemanticVersionTests.cs b/src/SMAPI.Tests/Utilities/SemanticVersionTests.cs index 8f64a5fb..8da64c27 100644 --- a/src/SMAPI.Tests/Utilities/SemanticVersionTests.cs +++ b/src/SMAPI.Tests/Utilities/SemanticVersionTests.cs @@ -2,9 +2,10 @@ using System; using System.Diagnostics.CodeAnalysis; using Newtonsoft.Json; using NUnit.Framework; +using StardewModdingAPI; using StardewModdingAPI.Framework; -namespace StardewModdingAPI.Tests.Utilities +namespace SMAPI.Tests.Utilities { /// Unit tests for . [TestFixture] diff --git a/src/SMAPI.Toolkit.CoreInterfaces/Properties/AssemblyInfo.cs b/src/SMAPI.Toolkit.CoreInterfaces/Properties/AssemblyInfo.cs deleted file mode 100644 index a29ba6cf..00000000 --- a/src/SMAPI.Toolkit.CoreInterfaces/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,4 +0,0 @@ -using System.Reflection; - -[assembly: AssemblyTitle("SMAPI.Toolkit.CoreInterfaces")] -[assembly: AssemblyDescription("Provides toolkit interfaces which are available to SMAPI mods.")] diff --git a/src/SMAPI.Toolkit.CoreInterfaces/SMAPI.Toolkit.CoreInterfaces.csproj b/src/SMAPI.Toolkit.CoreInterfaces/SMAPI.Toolkit.CoreInterfaces.csproj index 7d8fc998..a39ef3af 100644 --- a/src/SMAPI.Toolkit.CoreInterfaces/SMAPI.Toolkit.CoreInterfaces.csproj +++ b/src/SMAPI.Toolkit.CoreInterfaces/SMAPI.Toolkit.CoreInterfaces.csproj @@ -1,18 +1,15 @@  + SMAPI.Toolkit.CoreInterfaces + StardewModdingAPI + Provides toolkit interfaces which are available to SMAPI mods. net4.5;netstandard2.0 - SMAPI - false ..\..\bin\$(Configuration)\SMAPI.Toolkit.CoreInterfaces ..\..\bin\$(Configuration)\SMAPI.Toolkit.CoreInterfaces\$(TargetFramework)\SMAPI.Toolkit.CoreInterfaces.xml latest - - - - diff --git a/src/SMAPI.Toolkit/ModToolkit.cs b/src/SMAPI.Toolkit/ModToolkit.cs index 08fe0fed..80b14659 100644 --- a/src/SMAPI.Toolkit/ModToolkit.cs +++ b/src/SMAPI.Toolkit/ModToolkit.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.IO; using System.Linq; +using System.Runtime.CompilerServices; using System.Threading.Tasks; using Newtonsoft.Json; using StardewModdingAPI.Toolkit.Framework.Clients.Wiki; @@ -10,6 +11,8 @@ using StardewModdingAPI.Toolkit.Framework.ModData; using StardewModdingAPI.Toolkit.Framework.ModScanning; using StardewModdingAPI.Toolkit.Serialization; +[assembly: InternalsVisibleTo("StardewModdingAPI")] +[assembly: InternalsVisibleTo("SMAPI.Web")] namespace StardewModdingAPI.Toolkit { /// A convenience wrapper for the various tools. diff --git a/src/SMAPI.Toolkit/Properties/AssemblyInfo.cs b/src/SMAPI.Toolkit/Properties/AssemblyInfo.cs deleted file mode 100644 index ec873f79..00000000 --- a/src/SMAPI.Toolkit/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -[assembly: AssemblyTitle("SMAPI.Toolkit")] -[assembly: AssemblyDescription("A library which encapsulates mod-handling logic for mod managers and tools. Not intended for use by mods.")] -[assembly: InternalsVisibleTo("StardewModdingAPI")] -[assembly: InternalsVisibleTo("SMAPI.Web")] diff --git a/src/SMAPI.Toolkit/SMAPI.Toolkit.csproj b/src/SMAPI.Toolkit/SMAPI.Toolkit.csproj index 1cdde423..71b8fc55 100644 --- a/src/SMAPI.Toolkit/SMAPI.Toolkit.csproj +++ b/src/SMAPI.Toolkit/SMAPI.Toolkit.csproj @@ -1,8 +1,10 @@  + SMAPI.Toolkit + StardewModdingAPI.Toolkit + A library which encapsulates mod-handling logic for mod managers and tools. Not intended for use by mods. net4.5;netstandard2.0 - false ..\..\bin\$(Configuration)\SMAPI.Toolkit ..\..\bin\$(Configuration)\SMAPI.Toolkit\$(TargetFramework)\SMAPI.Toolkit.xml latest @@ -10,10 +12,6 @@ StardewModdingAPI.Toolkit - - - - diff --git a/src/SMAPI.Web/Properties/AssemblyInfo.cs b/src/SMAPI.Web/Properties/AssemblyInfo.cs deleted file mode 100644 index 31e6fc30..00000000 --- a/src/SMAPI.Web/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,4 +0,0 @@ -using System.Reflection; - -[assembly: AssemblyTitle("SMAPI.Web")] -[assembly: AssemblyDescription("")] diff --git a/src/SMAPI.Web/SMAPI.Web.csproj b/src/SMAPI.Web/SMAPI.Web.csproj index 98517818..316a6a28 100644 --- a/src/SMAPI.Web/SMAPI.Web.csproj +++ b/src/SMAPI.Web/SMAPI.Web.csproj @@ -1,9 +1,9 @@  + SMAPI.Web StardewModdingAPI.Web netcoreapp2.0 - false latest @@ -11,10 +11,6 @@ - - - - @@ -52,4 +48,6 @@ + + diff --git a/src/SMAPI/Program.cs b/src/SMAPI/Program.cs index 6c94a2af..2d143439 100644 --- a/src/SMAPI/Program.cs +++ b/src/SMAPI/Program.cs @@ -3,12 +3,15 @@ using System.Diagnostics.CodeAnalysis; using System.IO; using System.Linq; using System.Reflection; +using System.Runtime.CompilerServices; using System.Threading; #if SMAPI_FOR_WINDOWS #endif using StardewModdingAPI.Framework; using StardewModdingAPI.Toolkit.Utilities; +[assembly: InternalsVisibleTo("SMAPI.Tests")] +[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] // Moq for unit testing namespace StardewModdingAPI { /// The main entry point for SMAPI, responsible for hooking into and launching the game. diff --git a/src/SMAPI/Properties/AssemblyInfo.cs b/src/SMAPI/Properties/AssemblyInfo.cs deleted file mode 100644 index 03843ea8..00000000 --- a/src/SMAPI/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -[assembly: AssemblyTitle("SMAPI")] -[assembly: AssemblyDescription("A modding API for Stardew Valley.")] -[assembly: InternalsVisibleTo("StardewModdingAPI.Tests")] -[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] // Moq for unit testing diff --git a/src/SMAPI/SMAPI.csproj b/src/SMAPI/SMAPI.csproj index 0157e66a..f41ede29 100644 --- a/src/SMAPI/SMAPI.csproj +++ b/src/SMAPI/SMAPI.csproj @@ -1,10 +1,10 @@  - StardewModdingAPI StardewModdingAPI + StardewModdingAPI + The modding API for Stardew Valley. net45 - false latest x86 Exe @@ -91,10 +91,6 @@ - - - - PreserveNewest -- cgit From 15cd316ce44fb1ca43b29f6087243cc3af2f78fb Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Wed, 2 Oct 2019 01:19:33 -0400 Subject: fix Save Backup mod on Android --- src/SMAPI.Mods.SaveBackup/ModEntry.cs | 1 + src/SMAPI/Constants.cs | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'src/SMAPI.Mods.SaveBackup') diff --git a/src/SMAPI.Mods.SaveBackup/ModEntry.cs b/src/SMAPI.Mods.SaveBackup/ModEntry.cs index 845df453..efc6f39f 100644 --- a/src/SMAPI.Mods.SaveBackup/ModEntry.cs +++ b/src/SMAPI.Mods.SaveBackup/ModEntry.cs @@ -73,6 +73,7 @@ namespace StardewModdingAPI.Mods.SaveBackup this.Monitor.Log($"Backing up saves to {targetFile.FullName}...", LogLevel.Trace); switch (Constants.TargetPlatform) { + case GamePlatform.Android: case GamePlatform.Linux: case GamePlatform.Windows: { diff --git a/src/SMAPI/Constants.cs b/src/SMAPI/Constants.cs index e3a6e6d5..9b113733 100644 --- a/src/SMAPI/Constants.cs +++ b/src/SMAPI/Constants.cs @@ -190,7 +190,7 @@ namespace StardewModdingAPI ** Private methods *********/ /// Get the name of the save folder, if any. - internal static string GetSaveFolderName() + private static string GetSaveFolderName() { // save not available if (Context.LoadStage == LoadStage.None) @@ -215,7 +215,7 @@ namespace StardewModdingAPI } /// Get the path to the current save folder, if any. - internal static string GetSaveFolderPathIfExists() + private static string GetSaveFolderPathIfExists() { string folderName = Constants.GetSaveFolderName(); if (folderName == null) -- cgit From b4a8c1c2ac9d1b3796a144d267cceadf5f7831ff Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Mon, 7 Oct 2019 15:05:01 -0400 Subject: rework Save Backup to support Android --- src/SMAPI.Mods.SaveBackup/ModEntry.cs | 119 ++++++++++++++++++++++------------ 1 file changed, 79 insertions(+), 40 deletions(-) (limited to 'src/SMAPI.Mods.SaveBackup') diff --git a/src/SMAPI.Mods.SaveBackup/ModEntry.cs b/src/SMAPI.Mods.SaveBackup/ModEntry.cs index efc6f39f..3b47759b 100644 --- a/src/SMAPI.Mods.SaveBackup/ModEntry.cs +++ b/src/SMAPI.Mods.SaveBackup/ModEntry.cs @@ -68,48 +68,21 @@ namespace StardewModdingAPI.Mods.SaveBackup if (targetFile.Exists || fallbackDir.Exists) return; - // create zip - // due to limitations with the bundled Mono on Mac, we can't reference System.IO.Compression. + // back up saves this.Monitor.Log($"Backing up saves to {targetFile.FullName}...", LogLevel.Trace); - switch (Constants.TargetPlatform) + if (!this.TryCompress(Constants.SavesPath, targetFile, out Exception compressError)) { - case GamePlatform.Android: - case GamePlatform.Linux: - case GamePlatform.Windows: - { - try - { - // create compressed backup - Assembly coreAssembly = Assembly.Load("System.IO.Compression, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089") ?? throw new InvalidOperationException("Can't load System.IO.Compression assembly."); - Assembly fsAssembly = Assembly.Load("System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089") ?? throw new InvalidOperationException("Can't load System.IO.Compression assembly."); - Type compressionLevelType = coreAssembly.GetType("System.IO.Compression.CompressionLevel") ?? throw new InvalidOperationException("Can't load CompressionLevel type."); - Type zipFileType = fsAssembly.GetType("System.IO.Compression.ZipFile") ?? throw new InvalidOperationException("Can't load ZipFile type."); - MethodInfo createMethod = zipFileType.GetMethod("CreateFromDirectory", new[] { typeof(string), typeof(string), compressionLevelType, typeof(bool) }) ?? throw new InvalidOperationException("Can't load ZipFile.CreateFromDirectory method."); - createMethod.Invoke(null, new object[] { Constants.SavesPath, targetFile.FullName, CompressionLevel.Fastest, false }); - } - catch (Exception ex) when (ex is TypeLoadException || ex.InnerException is TypeLoadException) - { - // create uncompressed backup if compression fails - this.Monitor.Log("Couldn't zip the save backup, creating uncompressed backup instead.", LogLevel.Debug); - this.Monitor.Log(ex.ToString(), LogLevel.Trace); - this.RecursiveCopy(new DirectoryInfo(Constants.SavesPath), fallbackDir, copyRoot: false); - } - } - break; - - case GamePlatform.Mac: - { - DirectoryInfo saveFolder = new DirectoryInfo(Constants.SavesPath); - ProcessStartInfo startInfo = new ProcessStartInfo - { - FileName = "zip", - Arguments = $"-rq \"{targetFile.FullName}\" \"{saveFolder.Name}\" -x \"*.DS_Store\" -x \"__MACOSX\"", - WorkingDirectory = $"{Constants.SavesPath}/../", - CreateNoWindow = true - }; - new Process { StartInfo = startInfo }.Start(); - } - break; + // log error (expected on Android due to missing compression DLLs) + if (Constants.TargetPlatform == GamePlatform.Android) + this.Monitor.VerboseLog($"Compression isn't supported on Android:\n{compressError}"); + else + { + this.Monitor.Log("Couldn't zip the save backup, creating uncompressed backup instead.", LogLevel.Debug); + this.Monitor.Log(compressError.ToString(), LogLevel.Trace); + } + + // fallback to uncompressed + this.RecursiveCopy(new DirectoryInfo(Constants.SavesPath), fallbackDir, copyRoot: false); } this.Monitor.Log("Backup done!", LogLevel.Trace); } @@ -155,6 +128,72 @@ namespace StardewModdingAPI.Mods.SaveBackup } } + /// Create a zip using the best available method. + /// The file or directory path to zip. + /// The destination file to create. + /// The error which occurred trying to compress, if applicable. This is if compression isn't supported on this platform. + /// Returns whether compression succeeded. + private bool TryCompress(string sourcePath, FileInfo destination, out Exception error) + { + try + { + if (Constants.TargetPlatform == GamePlatform.Mac) + this.CompressUsingMacProcess(sourcePath, destination); // due to limitations with the bundled Mono on Mac, we can't reference System.IO.Compression + else + this.CompressUsingNetFramework(sourcePath, destination); + + error = null; + return true; + } + catch (Exception ex) + { + error = ex; + return false; + } + } + + /// Create a zip using the .NET compression library. + /// The file or directory path to zip. + /// The destination file to create. + /// The compression libraries aren't available on this system. + private void CompressUsingNetFramework(string sourcePath, FileInfo destination) + { + // get compress method + MethodInfo createFromDirectory; + try + { + // create compressed backup + Assembly coreAssembly = Assembly.Load("System.IO.Compression, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089") ?? throw new InvalidOperationException("Can't load System.IO.Compression assembly."); + Assembly fsAssembly = Assembly.Load("System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089") ?? throw new InvalidOperationException("Can't load System.IO.Compression assembly."); + Type compressionLevelType = coreAssembly.GetType("System.IO.Compression.CompressionLevel") ?? throw new InvalidOperationException("Can't load CompressionLevel type."); + Type zipFileType = fsAssembly.GetType("System.IO.Compression.ZipFile") ?? throw new InvalidOperationException("Can't load ZipFile type."); + createFromDirectory = zipFileType.GetMethod("CreateFromDirectory", new[] { typeof(string), typeof(string), compressionLevelType, typeof(bool) }) ?? throw new InvalidOperationException("Can't load ZipFile.CreateFromDirectory method."); + } + catch (Exception ex) + { + throw new NotSupportedException("Couldn't load the .NET compression libraries on this system.", ex); + } + + // compress file + createFromDirectory.Invoke(null, new object[] { sourcePath, destination.FullName, CompressionLevel.Fastest, false }); + } + + /// Create a zip using a process command on MacOS. + /// The file or directory path to zip. + /// The destination file to create. + private void CompressUsingMacProcess(string sourcePath, FileInfo destination) + { + DirectoryInfo saveFolder = new DirectoryInfo(sourcePath); + ProcessStartInfo startInfo = new ProcessStartInfo + { + FileName = "zip", + Arguments = $"-rq \"{destination.FullName}\" \"{saveFolder.Name}\" -x \"*.DS_Store\" -x \"__MACOSX\"", + WorkingDirectory = $"{saveFolder.FullName}/../", + CreateNoWindow = true + }; + new Process { StartInfo = startInfo }.Start(); + } + /// Recursively copy a directory or file. /// The file or folder to copy. /// The folder to copy into. -- cgit