Merge branch 'stable' of https://github.com/Pathoschild/SMAPI into develop
Conflicts: src/SMAPI.Tests/SMAPI.Tests.csproj src/SMAPI.sln src/SMAPI/Constants.cs
This commit is contained in:
commit
1df011accb
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
<!--set properties -->
|
<!--set properties -->
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Version>3.7.3</Version>
|
<Version>3.7.4</Version>
|
||||||
<Product>SMAPI</Product>
|
<Product>SMAPI</Product>
|
||||||
|
|
||||||
<LangVersion>latest</LangVersion>
|
<LangVersion>latest</LangVersion>
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<!-- <BUILD_FOR_MOBILE>AMAZON</BUILD_FOR_MOBILE>-->
|
<!-- <BUILD_FOR_MOBILE>AMAZON</BUILD_FOR_MOBILE>-->
|
||||||
<!-- <BUILD_FOR_MOBILE>SAMSUNG</BUILD_FOR_MOBILE>-->
|
<!-- <BUILD_FOR_MOBILE>SAMSUNG</BUILD_FOR_MOBILE>-->
|
||||||
<!-- <BUILD_FOR_MOBILE>GOOGLE_LEGACY</BUILD_FOR_MOBILE>-->
|
<!-- <BUILD_FOR_MOBILE>GOOGLE_LEGACY</BUILD_FOR_MOBILE>-->
|
||||||
<COMPILE_WITH_PLUGIN>Tru e</COMPILE_WITH_PLUGIN>
|
<COMPILE_WITH_PLUGIN>True</COMPILE_WITH_PLUGIN>
|
||||||
<DefineConstants Condition="'$(BUILD_FOR_MOBILE)' == ''">$(DefineConstants);HARMONY_1</DefineConstants>
|
<DefineConstants Condition="'$(BUILD_FOR_MOBILE)' == ''">$(DefineConstants);HARMONY_1</DefineConstants>
|
||||||
<DefineConstants Condition="'$(BUILD_FOR_MOBILE)' == 'GOOGLE_LEGACY'">$(DefineConstants);SMAPI_FOR_MOBILE;ANDROID_TARGET_GOOGLE;ANDROID_TARGET_MOBILE_LEGACY;HARMONY_1</DefineConstants>
|
<DefineConstants Condition="'$(BUILD_FOR_MOBILE)' == 'GOOGLE_LEGACY'">$(DefineConstants);SMAPI_FOR_MOBILE;ANDROID_TARGET_GOOGLE;ANDROID_TARGET_MOBILE_LEGACY;HARMONY_1</DefineConstants>
|
||||||
<DefineConstants Condition="'$(BUILD_FOR_MOBILE)' == 'GOOGLE'">$(DefineConstants);SMAPI_FOR_MOBILE;ANDROID_TARGET_GOOGLE;HARMONY_1</DefineConstants>
|
<DefineConstants Condition="'$(BUILD_FOR_MOBILE)' == 'GOOGLE'">$(DefineConstants);SMAPI_FOR_MOBILE;ANDROID_TARGET_GOOGLE;HARMONY_1</DefineConstants>
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<!--
|
|
||||||
|
|
||||||
This build task is run from the ModBuildConfig project after it's been compiled, and copies the
|
|
||||||
package files to the bin\Pathoschild.Stardew.ModBuildConfig folder.
|
|
||||||
|
|
||||||
-->
|
|
||||||
<Target Name="PreparePackage" AfterTargets="AfterBuild">
|
|
||||||
<PropertyGroup>
|
|
||||||
<PackagePath>$(SolutionDir)\..\bin\Pathoschild.Stardew.ModBuildConfig</PackagePath>
|
|
||||||
</PropertyGroup>
|
|
||||||
<RemoveDir Directories="$(PackagePath)" />
|
|
||||||
<Copy SourceFiles="$(ProjectDir)/package.nuspec" DestinationFolder="$(PackagePath)" />
|
|
||||||
<Copy SourceFiles="$(SolutionDir)/../build/find-game-folder.targets" DestinationFolder="$(PackagePath)/build" />
|
|
||||||
<Copy SourceFiles="$(ProjectDir)/build/smapi.targets" DestinationFiles="$(PackagePath)/build/Pathoschild.Stardew.ModBuildConfig.targets" />
|
|
||||||
<Copy SourceFiles="$(TargetDir)/assets/nuget-icon.png" DestinationFiles="$(PackagePath)/images/icon.png" />
|
|
||||||
<Copy SourceFiles="$(TargetDir)/Newtonsoft.Json.dll" DestinationFolder="$(PackagePath)/build" />
|
|
||||||
<Copy SourceFiles="$(TargetDir)/SMAPI.ModBuildConfig.dll" DestinationFolder="$(PackagePath)/build" />
|
|
||||||
<Copy SourceFiles="$(TargetDir)/SMAPI.Toolkit.dll" DestinationFolder="$(PackagePath)/build" />
|
|
||||||
<Copy SourceFiles="$(TargetDir)/SMAPI.Toolkit.CoreInterfaces.dll" DestinationFolder="$(PackagePath)/build" />
|
|
||||||
<Copy SourceFiles="$(SolutionDir)/SMAPI.ModBuildConfig.Analyzer/bin/netstandard2.0/SMAPI.ModBuildConfig.Analyzer.dll" DestinationFolder="$(PackagePath)/analyzers/dotnet/cs" />
|
|
||||||
</Target>
|
|
||||||
</Project>
|
|
|
@ -7,6 +7,24 @@
|
||||||
* Migrated to Harmony 2.0 (see [_migrate to Harmony 2.0_](https://stardewvalleywiki.com/Modding:Migrate_to_Harmony_2.0) for more info).
|
* 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.4
|
||||||
|
Released 03 October 2020 for Stardew Valley 1.4.1 or later.
|
||||||
|
|
||||||
|
* For players:
|
||||||
|
* Improved performance on some older computers (thanks to millerscout!).
|
||||||
|
* Fixed update alerts for Chucklefish forum mods broken by a recent site change.
|
||||||
|
|
||||||
|
* For modders:
|
||||||
|
* Updated dependencies (including Mono.Cecil 0.11.2 → 0.11.3 and Platonymous.TMXTile 1.3.8 → 1.5.6).
|
||||||
|
* Fixed asset propagation for `Data\MoviesReactions`.
|
||||||
|
* Fixed error in content pack path handling when you pass a null path.
|
||||||
|
|
||||||
|
* For the web UI:
|
||||||
|
* Updated the JSON validator/schema for Content Patcher 1.18.
|
||||||
|
|
||||||
|
* For SMAPI developers:
|
||||||
|
* Simplified preparing a mod build config package release.
|
||||||
|
|
||||||
## 3.7.3
|
## 3.7.3
|
||||||
Released 16 September 2020 for Stardew Valley 1.4.1 or later.
|
Released 16 September 2020 for Stardew Valley 1.4.1 or later.
|
||||||
|
|
||||||
|
|
|
@ -343,19 +343,16 @@ project | purpose
|
||||||
`StardewModdingAPI.ModBuildConfig.Analyzer` | Adds C# analyzers which show code warnings in Visual Studio.
|
`StardewModdingAPI.ModBuildConfig.Analyzer` | Adds C# analyzers which show code warnings in Visual Studio.
|
||||||
`StardewModdingAPI.ModBuildConfig.Analyzer.Tests` | Unit tests for the C# analyzers.
|
`StardewModdingAPI.ModBuildConfig.Analyzer.Tests` | Unit tests for the C# analyzers.
|
||||||
|
|
||||||
To prepare a build of the NuGet package:
|
The NuGet package is generated automatically in `StardewModdingAPI.ModBuildConfig`'s `bin` folder
|
||||||
1. Install the [NuGet CLI](https://docs.microsoft.com/en-us/nuget/install-nuget-client-tools#nugetexe-cli).
|
when you compile it.
|
||||||
1. Change the version and release notes in `package.nuspec`.
|
|
||||||
2. Rebuild the solution in _Release_ mode.
|
|
||||||
3. Open a terminal in the `bin/Pathoschild.Stardew.ModBuildConfig` folder and run this command:
|
|
||||||
```bash
|
|
||||||
nuget.exe pack
|
|
||||||
```
|
|
||||||
|
|
||||||
That will create a `Pathoschild.Stardew.ModBuildConfig-<version>.nupkg` file in the same directory
|
|
||||||
which can be uploaded to NuGet or referenced directly.
|
|
||||||
|
|
||||||
## Release notes
|
## Release notes
|
||||||
|
## 3.2.2
|
||||||
|
Released 23 September 2020.
|
||||||
|
|
||||||
|
* Reworked and streamlined how the package is compiled.
|
||||||
|
* Added [SMAPI-ModTranslationClassBuilder](https://github.com/Pathoschild/SMAPI-ModTranslationClassBuilder) files to the ignore list.
|
||||||
|
|
||||||
### 3.2.1
|
### 3.2.1
|
||||||
Released 11 September 2020.
|
Released 11 September 2020.
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="2.10.0" />
|
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="2.10.0" />
|
||||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.6.1" />
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.7.1" />
|
||||||
<PackageReference Include="NUnit" Version="3.12.0" />
|
<PackageReference Include="NUnit" Version="3.12.0" />
|
||||||
<PackageReference Include="NUnit3TestAdapter" Version="3.17.0">
|
<PackageReference Include="NUnit3TestAdapter" Version="3.17.0">
|
||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
|
|
|
@ -164,6 +164,11 @@ namespace StardewModdingAPI.ModBuildConfig.Framework
|
||||||
|| this.EqualsInvariant(file.Name, "Newtonsoft.Json.pdb")
|
|| this.EqualsInvariant(file.Name, "Newtonsoft.Json.pdb")
|
||||||
|| this.EqualsInvariant(file.Name, "Newtonsoft.Json.xml")
|
|| this.EqualsInvariant(file.Name, "Newtonsoft.Json.xml")
|
||||||
|
|
||||||
|
// mod translation class builder (not used at runtime)
|
||||||
|
|| this.EqualsInvariant(file.Name, "Pathoschild.Stardew.ModTranslationClassBuilder.dll")
|
||||||
|
|| this.EqualsInvariant(file.Name, "Pathoschild.Stardew.ModTranslationClassBuilder.pdb")
|
||||||
|
|| this.EqualsInvariant(file.Name, "Pathoschild.Stardew.ModTranslationClassBuilder.xml")
|
||||||
|
|
||||||
// code analysis files
|
// code analysis files
|
||||||
|| file.Name.EndsWith(".CodeAnalysisLog.xml", StringComparison.OrdinalIgnoreCase)
|
|| file.Name.EndsWith(".CodeAnalysisLog.xml", StringComparison.OrdinalIgnoreCase)
|
||||||
|| file.Name.EndsWith(".lastcodeanalysissucceeded", StringComparison.OrdinalIgnoreCase)
|
|| file.Name.EndsWith(".lastcodeanalysissucceeded", StringComparison.OrdinalIgnoreCase)
|
||||||
|
|
|
@ -1,10 +1,26 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
|
<!--build-->
|
||||||
<RootNamespace>StardewModdingAPI.ModBuildConfig</RootNamespace>
|
<RootNamespace>StardewModdingAPI.ModBuildConfig</RootNamespace>
|
||||||
<Version>3.2.1</Version>
|
|
||||||
<TargetFramework>net45</TargetFramework>
|
<TargetFramework>net45</TargetFramework>
|
||||||
<PlatformTarget>x86</PlatformTarget>
|
<PlatformTarget>x86</PlatformTarget>
|
||||||
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
<LangVersion>latest</LangVersion>
|
||||||
|
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||||
|
|
||||||
|
<!--NuGet package-->
|
||||||
|
<PackageId>Pathoschild.Stardew.ModBuildConfig</PackageId>
|
||||||
|
<Title>Build package for SMAPI mods</Title>
|
||||||
|
<Version>3.2.2</Version>
|
||||||
|
<Authors>Pathoschild</Authors>
|
||||||
|
<Description>Automates the build configuration for crossplatform Stardew Valley SMAPI mods. For SMAPI 3.0 or later.</Description>
|
||||||
|
<PackageLicenseExpression>MIT</PackageLicenseExpression>
|
||||||
|
<PackageIcon>images/icon.png</PackageIcon>
|
||||||
|
<PackageProjectUrl>https://smapi.io/package/readme</PackageProjectUrl>
|
||||||
|
<PackageReleaseNotes>
|
||||||
|
- Reworked and streamlined how the package is compiled.
|
||||||
|
- Added SMAPI-ModTranslationClassBuilder files to the ignore list.
|
||||||
|
</PackageReleaseNotes>
|
||||||
|
<IncludeBuildOutput>false</IncludeBuildOutput>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -16,16 +32,22 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\SMAPI.Toolkit\SMAPI.Toolkit.csproj" />
|
<ProjectReference Include="..\SMAPI.Toolkit\SMAPI.Toolkit.csproj" PrivateAssets="All" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="..\..\build\find-game-folder.targets" Link="build\find-game-folder.targets" />
|
<!--project files-->
|
||||||
<None Include="..\..\docs\technical\mod-package.md" Link="mod-package.md" />
|
<None Include="..\..\docs\technical\mod-package.md" Link="mod-package.md" />
|
||||||
<None Update="assets\nuget-icon.png" CopyToOutputDirectory="PreserveNewest" />
|
|
||||||
|
<!--NuGet package files-->
|
||||||
|
<None PackagePath="analyzers/dotnet/cs" Include="$(SolutionDir)/SMAPI.ModBuildConfig.Analyzer/bin/netstandard2.0/SMAPI.ModBuildConfig.Analyzer.dll" Pack="true" Visible="false" />
|
||||||
|
<None PackagePath="build/" Include="..\..\build\find-game-folder.targets" Link="build/find-game-folder.targets" Pack="true" />
|
||||||
|
<None PackagePath="build/" Include="$(OutputPath)\Newtonsoft.Json.dll" Pack="true" Visible="false" />
|
||||||
|
<None PackagePath="build/" Include="$(OutputPath)\SMAPI.Toolkit.dll" Pack="true" Visible="false" />
|
||||||
|
<None PackagePath="build/" Include="$(OutputPath)\SMAPI.Toolkit.CoreInterfaces.dll" Pack="true" Visible="false" />
|
||||||
|
<None PackagePath="build/SMAPI.ModBuildConfig.dll" Include="$(OutputPath)\$(AssemblyName).dll" Pack="true" Visible="false" />
|
||||||
|
<None PackagePath="build/Pathoschild.Stardew.ModBuildConfig.targets" Include="build\smapi.targets" Pack="true" />
|
||||||
|
<None PackagePath="images/icon.png" Include="assets\nuget-icon.png" Pack="true" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<Import Project="..\SMAPI.Internal\SMAPI.Internal.projitems" Label="Shared" />
|
|
||||||
<Import Project="..\..\build\common.targets" />
|
|
||||||
<Import Project="..\..\build\prepare-nuget-package.targets" />
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -1,27 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
|
|
||||||
<metadata>
|
|
||||||
<id>Pathoschild.Stardew.ModBuildConfig</id>
|
|
||||||
<version>3.2.1</version>
|
|
||||||
<title>Build package for SMAPI mods</title>
|
|
||||||
<authors>Pathoschild</authors>
|
|
||||||
<owners>Pathoschild</owners>
|
|
||||||
<requireLicenseAcceptance>false</requireLicenseAcceptance>
|
|
||||||
<license type="expression">MIT</license>
|
|
||||||
<repository type="git" url="https://github.com/Pathoschild/SMAPI" />
|
|
||||||
<projectUrl>https://smapi.io/package/readme</projectUrl>
|
|
||||||
<icon>images\icon.png</icon>
|
|
||||||
<iconUrl>https://raw.githubusercontent.com/Pathoschild/SMAPI/develop/src/SMAPI.ModBuildConfig/assets/nuget-icon.png</iconUrl>
|
|
||||||
<description>Automates the build configuration for crossplatform Stardew Valley SMAPI mods. For SMAPI 3.0 or later.</description>
|
|
||||||
<releaseNotes>
|
|
||||||
3.2.1:
|
|
||||||
- Added more detailed logging.
|
|
||||||
- Fixed "path's format is not supported" error when using default Mods path in 3.2.
|
|
||||||
</releaseNotes>
|
|
||||||
</metadata>
|
|
||||||
<files>
|
|
||||||
<file src="analyzers\**" target="analyzers" />
|
|
||||||
<file src="build\**" target="build" />
|
|
||||||
<file src="images\**" target="images" />
|
|
||||||
</files>
|
|
||||||
</package>
|
|
|
@ -1,9 +1,9 @@
|
||||||
{
|
{
|
||||||
"Name": "Console Commands",
|
"Name": "Console Commands",
|
||||||
"Author": "SMAPI",
|
"Author": "SMAPI",
|
||||||
"Version": "3.7.3",
|
"Version": "3.7.4",
|
||||||
"Description": "Adds SMAPI console commands that let you manipulate the game.",
|
"Description": "Adds SMAPI console commands that let you manipulate the game.",
|
||||||
"UniqueID": "SMAPI.ConsoleCommands",
|
"UniqueID": "SMAPI.ConsoleCommands",
|
||||||
"EntryDll": "ConsoleCommands.dll",
|
"EntryDll": "ConsoleCommands.dll",
|
||||||
"MinimumApiVersion": "3.7.3"
|
"MinimumApiVersion": "3.7.4"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
{
|
{
|
||||||
"Name": "Save Backup",
|
"Name": "Save Backup",
|
||||||
"Author": "SMAPI",
|
"Author": "SMAPI",
|
||||||
"Version": "3.7.3",
|
"Version": "3.7.4",
|
||||||
"Description": "Automatically backs up all your saves once per day into its folder.",
|
"Description": "Automatically backs up all your saves once per day into its folder.",
|
||||||
"UniqueID": "SMAPI.SaveBackup",
|
"UniqueID": "SMAPI.SaveBackup",
|
||||||
"EntryDll": "SaveBackup.dll",
|
"EntryDll": "SaveBackup.dll",
|
||||||
"MinimumApiVersion": "3.7.3"
|
"MinimumApiVersion": "3.7.4"
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup Condition="'$(BUILD_FOR_MOBILE)' == ''">
|
<ItemGroup Condition="'$(BUILD_FOR_MOBILE)' == ''">
|
||||||
<PackageReference Include="Moq" Version="4.14.5" />
|
<PackageReference Include="Moq" Version="4.14.6" />
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
|
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
|
||||||
<PackageReference Include="NUnit" Version="3.12.0" />
|
<PackageReference Include="NUnit" Version="3.12.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
|
@ -67,10 +67,10 @@ namespace StardewModdingAPI.Web.Framework.Clients.Chucklefish
|
||||||
|
|
||||||
// extract mod info
|
// extract mod info
|
||||||
string url = this.GetModUrl(parsedId);
|
string url = this.GetModUrl(parsedId);
|
||||||
string name = doc.DocumentNode.SelectSingleNode("//meta[@name='twitter:title']").Attributes["content"].Value;
|
|
||||||
if (name.StartsWith("[SMAPI] "))
|
|
||||||
name = name.Substring("[SMAPI] ".Length);
|
|
||||||
string version = doc.DocumentNode.SelectSingleNode("//h1/span")?.InnerText;
|
string version = doc.DocumentNode.SelectSingleNode("//h1/span")?.InnerText;
|
||||||
|
string name = doc.DocumentNode.SelectSingleNode("//h1").ChildNodes[0].InnerText.Trim();
|
||||||
|
if (name.StartsWith("[SMAPI]"))
|
||||||
|
name = name.Substring("[SMAPI]".Length).TrimStart();
|
||||||
|
|
||||||
// return info
|
// return info
|
||||||
return page.SetInfo(name: name, version: version, url: url, downloads: Array.Empty<IModDownload>());
|
return page.SetInfo(name: name, version: version, url: url, downloads: Array.Empty<IModDownload>());
|
||||||
|
|
|
@ -12,14 +12,14 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Azure.Storage.Blobs" Version="12.4.4" />
|
<PackageReference Include="Azure.Storage.Blobs" Version="12.6.0" />
|
||||||
<PackageReference Include="Hangfire.AspNetCore" Version="1.7.12" />
|
<PackageReference Include="Hangfire.AspNetCore" Version="1.7.14" />
|
||||||
<PackageReference Include="Hangfire.MemoryStorage" Version="1.7.0" />
|
<PackageReference Include="Hangfire.MemoryStorage" Version="1.7.0" />
|
||||||
<PackageReference Include="HtmlAgilityPack" Version="1.11.24" />
|
<PackageReference Include="HtmlAgilityPack" Version="1.11.24" />
|
||||||
<PackageReference Include="Humanizer.Core" Version="2.8.26" />
|
<PackageReference Include="Humanizer.Core" Version="2.8.26" />
|
||||||
<PackageReference Include="JetBrains.Annotations" Version="2020.1.0" />
|
<PackageReference Include="JetBrains.Annotations" Version="2020.1.0" />
|
||||||
<PackageReference Include="Markdig" Version="0.20.0" />
|
<PackageReference Include="Markdig" Version="0.21.1" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.1.6" />
|
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.1.8" />
|
||||||
<PackageReference Include="Newtonsoft.Json.Schema" Version="3.0.13" />
|
<PackageReference Include="Newtonsoft.Json.Schema" Version="3.0.13" />
|
||||||
<PackageReference Include="Pathoschild.FluentNexus" Version="1.0.1" />
|
<PackageReference Include="Pathoschild.FluentNexus" Version="1.0.1" />
|
||||||
<PackageReference Include="Pathoschild.Http.FluentClient" Version="4.0.0" />
|
<PackageReference Include="Pathoschild.Http.FluentClient" Version="4.0.0" />
|
||||||
|
|
|
@ -11,9 +11,9 @@
|
||||||
"title": "Format version",
|
"title": "Format version",
|
||||||
"description": "The format version. You should always use the latest version to enable the latest features and avoid obsolete behavior.",
|
"description": "The format version. You should always use the latest version to enable the latest features and avoid obsolete behavior.",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "1.17.0",
|
"const": "1.18.0",
|
||||||
"@errorMessages": {
|
"@errorMessages": {
|
||||||
"const": "Incorrect value '@value'. This should be set to the latest format version, currently '1.17.0'."
|
"const": "Incorrect value '@value'. This should be set to the latest format version, currently '1.18.0'."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ConfigSchema": {
|
"ConfigSchema": {
|
||||||
|
@ -43,6 +43,11 @@
|
||||||
"description": "The default values when the field is missing. Can contain multiple comma-delimited values if AllowMultiple is true. If omitted, blank fields are left blank.",
|
"description": "The default values when the field is missing. Can contain multiple comma-delimited values if AllowMultiple is true. If omitted, blank fields are left blank.",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
|
"Description": {
|
||||||
|
"title": "Description",
|
||||||
|
"description": "An optional explanation of the config field for players, shown in UIs like Generic Mod Config Menu.",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
|
||||||
"additionalProperties": false
|
"additionalProperties": false
|
||||||
},
|
},
|
||||||
|
@ -383,7 +388,6 @@
|
||||||
"enum": [
|
"enum": [
|
||||||
"Action",
|
"Action",
|
||||||
"Enabled",
|
"Enabled",
|
||||||
"FromFile",
|
|
||||||
"LogName",
|
"LogName",
|
||||||
"Target",
|
"Target",
|
||||||
"Update",
|
"Update",
|
||||||
|
@ -391,7 +395,8 @@
|
||||||
|
|
||||||
"Entries",
|
"Entries",
|
||||||
"Fields",
|
"Fields",
|
||||||
"MoveEntries"
|
"MoveEntries",
|
||||||
|
"TextOperations"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -427,6 +432,7 @@
|
||||||
"FromArea",
|
"FromArea",
|
||||||
"MapProperties",
|
"MapProperties",
|
||||||
"MapTiles",
|
"MapTiles",
|
||||||
|
"TextOperations",
|
||||||
"ToArea"
|
"ToArea"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,7 +29,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{09CF91E5
|
||||||
..\build\common.targets = ..\build\common.targets
|
..\build\common.targets = ..\build\common.targets
|
||||||
..\build\find-game-folder.targets = ..\build\find-game-folder.targets
|
..\build\find-game-folder.targets = ..\build\find-game-folder.targets
|
||||||
..\build\prepare-install-package.targets = ..\build\prepare-install-package.targets
|
..\build\prepare-install-package.targets = ..\build\prepare-install-package.targets
|
||||||
..\build\prepare-nuget-package.targets = ..\build\prepare-nuget-package.targets
|
|
||||||
..\build\define-constant.targets = ..\build\define-constant.targets
|
..\build\define-constant.targets = ..\build\define-constant.targets
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
|
@ -88,7 +87,6 @@ Global
|
||||||
GlobalSection(SharedMSBuildProjectFiles) = preSolution
|
GlobalSection(SharedMSBuildProjectFiles) = preSolution
|
||||||
SMAPI.Internal\SMAPI.Internal.projitems*{0634ea4c-3b8f-42db-aea6-ca9e4ef6e92f}*SharedItemsImports = 5
|
SMAPI.Internal\SMAPI.Internal.projitems*{0634ea4c-3b8f-42db-aea6-ca9e4ef6e92f}*SharedItemsImports = 5
|
||||||
SMAPI.Internal\SMAPI.Internal.projitems*{0a9bb24f-15ff-4c26-b1a2-81f7ae316518}*SharedItemsImports = 5
|
SMAPI.Internal\SMAPI.Internal.projitems*{0a9bb24f-15ff-4c26-b1a2-81f7ae316518}*SharedItemsImports = 5
|
||||||
SMAPI.Internal\SMAPI.Internal.projitems*{1b3821e6-d030-402c-b3a1-7ca45c2800ea}*SharedItemsImports = 5
|
|
||||||
SMAPI.Internal\SMAPI.Internal.projitems*{80efd92f-728f-41e0-8a5b-9f6f49a91899}*SharedItemsImports = 5
|
SMAPI.Internal\SMAPI.Internal.projitems*{80efd92f-728f-41e0-8a5b-9f6f49a91899}*SharedItemsImports = 5
|
||||||
SMAPI.Internal\SMAPI.Internal.projitems*{85208f8d-6fd1-4531-be05-7142490f59fe}*SharedItemsImports = 13
|
SMAPI.Internal\SMAPI.Internal.projitems*{85208f8d-6fd1-4531-be05-7142490f59fe}*SharedItemsImports = 13
|
||||||
SMAPI.Internal\SMAPI.Internal.projitems*{cd53ad6f-97f4-4872-a212-50c2a0fd3601}*SharedItemsImports = 5
|
SMAPI.Internal\SMAPI.Internal.projitems*{cd53ad6f-97f4-4872-a212-50c2a0fd3601}*SharedItemsImports = 5
|
||||||
|
|
|
@ -64,13 +64,13 @@ namespace StardewModdingAPI
|
||||||
****/
|
****/
|
||||||
/// <summary>SMAPI's current semantic version.</summary>
|
/// <summary>SMAPI's current semantic version.</summary>
|
||||||
#if SMAPI_FOR_MOBILE
|
#if SMAPI_FOR_MOBILE
|
||||||
public static ISemanticVersion ApiVersion { get; } = new Toolkit.SemanticVersion("3.7.3.4", true);
|
public static ISemanticVersion ApiVersion { get; } = new Toolkit.SemanticVersion("3.7.4");
|
||||||
|
|
||||||
/// <summary>Android SMAPI's current semantic version.</summary>
|
/// <summary>Android SMAPI's current semantic version.</summary>
|
||||||
public static ISemanticVersion AndroidApiVersion { get; } = new Toolkit.SemanticVersion("0.8.8");
|
public static ISemanticVersion AndroidApiVersion { get; } = new Toolkit.SemanticVersion("0.8.8");
|
||||||
|
|
||||||
#else
|
#else
|
||||||
public static ISemanticVersion ApiVersion { get; } = new Toolkit.SemanticVersion("3.7.3");
|
public static ISemanticVersion ApiVersion { get; } = new Toolkit.SemanticVersion("3.7.4");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ANDROID_TARGET_MOBILE_LEGACY
|
#if ANDROID_TARGET_MOBILE_LEGACY
|
||||||
|
|
|
@ -119,7 +119,7 @@ namespace StardewModdingAPI.Framework
|
||||||
if (!PathUtilities.IsSafeRelativePath(relativePath))
|
if (!PathUtilities.IsSafeRelativePath(relativePath))
|
||||||
throw new InvalidOperationException($"You must call {nameof(IContentPack)} methods with a relative path.");
|
throw new InvalidOperationException($"You must call {nameof(IContentPack)} methods with a relative path.");
|
||||||
|
|
||||||
return this.RelativePaths.TryGetValue(relativePath, out string caseInsensitivePath)
|
return !string.IsNullOrWhiteSpace(relativePath) && this.RelativePaths.TryGetValue(relativePath, out string caseInsensitivePath)
|
||||||
? caseInsensitivePath
|
? caseInsensitivePath
|
||||||
: relativePath;
|
: relativePath;
|
||||||
}
|
}
|
||||||
|
|
|
@ -298,15 +298,14 @@ namespace StardewModdingAPI.Framework
|
||||||
);
|
);
|
||||||
|
|
||||||
// add exit handler
|
// add exit handler
|
||||||
new Thread(() =>
|
this.CancellationToken.Token.Register(() =>
|
||||||
{
|
{
|
||||||
this.CancellationToken.Token.WaitHandle.WaitOne();
|
|
||||||
if (this.IsGameRunning)
|
if (this.IsGameRunning)
|
||||||
{
|
{
|
||||||
this.LogManager.WriteCrashLog();
|
this.LogManager.WriteCrashLog();
|
||||||
this.Game.Exit();
|
this.Game.Exit();
|
||||||
}
|
}
|
||||||
}).Start();
|
});
|
||||||
|
|
||||||
// set window titles
|
// set window titles
|
||||||
this.SetWindowTitles(
|
this.SetWindowTitles(
|
||||||
|
|
|
@ -37,7 +37,7 @@ namespace StardewModdingAPI.Framework.Serialization
|
||||||
if (string.IsNullOrWhiteSpace(str))
|
if (string.IsNullOrWhiteSpace(str))
|
||||||
return Rectangle.Empty;
|
return Rectangle.Empty;
|
||||||
|
|
||||||
var match = Regex.Match(str, @"^\{X:(?<x>\d+) Y:(?<y>\d+) Width:(?<width>\d+) Height:(?<height>\d+)\}$", RegexOptions.IgnoreCase);
|
var match = Regex.Match(str, @"^\{X:(?<x>-?\d+) Y:(?<y>-?\d+) Width:(?<width>-?\d+) Height:(?<height>-?\d+)\}$", RegexOptions.IgnoreCase);
|
||||||
if (!match.Success)
|
if (!match.Success)
|
||||||
throw new SParseException($"Can't parse {nameof(Rectangle)} from invalid value '{str}' (path: {path}).");
|
throw new SParseException($"Can't parse {nameof(Rectangle)} from invalid value '{str}' (path: {path}).");
|
||||||
|
|
||||||
|
|
|
@ -263,7 +263,7 @@ namespace StardewModdingAPI.Metadata
|
||||||
case "data\\farmanimals": // FarmAnimal constructor
|
case "data\\farmanimals": // FarmAnimal constructor
|
||||||
return this.ReloadFarmAnimalData();
|
return this.ReloadFarmAnimalData();
|
||||||
|
|
||||||
case "data\\moviereactions": // MovieTheater.GetMovieReactions
|
case "data\\moviesreactions": // MovieTheater.GetMovieReactions
|
||||||
this.Reflection
|
this.Reflection
|
||||||
.GetField<List<MovieCharacterReaction>>(typeof(MovieTheater), "_genericReactions")
|
.GetField<List<MovieCharacterReaction>>(typeof(MovieTheater), "_genericReactions")
|
||||||
.SetValue(content.Load<List<MovieCharacterReaction>>(key));
|
.SetValue(content.Load<List<MovieCharacterReaction>>(key));
|
||||||
|
|
|
@ -58,9 +58,9 @@
|
||||||
|
|
||||||
<ItemGroup Condition="'$(BUILD_FOR_MOBILE)' == ''">
|
<ItemGroup Condition="'$(BUILD_FOR_MOBILE)' == ''">
|
||||||
<PackageReference Include="LargeAddressAware" Version="1.0.5" />
|
<PackageReference Include="LargeAddressAware" Version="1.0.5" />
|
||||||
<PackageReference Include="Mono.Cecil" Version="0.11.2" />
|
<PackageReference Include="Mono.Cecil" Version="0.11.3" />
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
|
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
|
||||||
<PackageReference Include="Platonymous.TMXTile" Version="1.3.8" />
|
<PackageReference Include="Platonymous.TMXTile" Version="1.5.6" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup Condition="'$(BUILD_FOR_MOBILE)' == ''">
|
<ItemGroup Condition="'$(BUILD_FOR_MOBILE)' == ''">
|
||||||
|
|
Loading…
Reference in New Issue