From bda734e143a66be5888a39c4f13794294ae32c74 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Mon, 1 Jul 2019 14:25:52 -0400 Subject: [PATCH 1/6] delete unused files excluded from build, fix compile errors --- Framework/Core/UpdateInfo.cs | 137 ------------------- Framework/IContentHelper.cs | 35 ----- Framework/UI/Utility.cs | 12 -- MagicJunimoPet/Behaviours/FollowBehaviour.cs | 1 + MagicJunimoPet/SmartPet.cs | 2 +- 5 files changed, 2 insertions(+), 185 deletions(-) delete mode 100644 Framework/Core/UpdateInfo.cs delete mode 100644 Framework/IContentHelper.cs delete mode 100644 Framework/UI/Utility.cs diff --git a/Framework/Core/UpdateInfo.cs b/Framework/Core/UpdateInfo.cs deleted file mode 100644 index 74e6ddb..0000000 --- a/Framework/Core/UpdateInfo.cs +++ /dev/null @@ -1,137 +0,0 @@ -using System; -using System.IO; -using System.Net; -using System.Threading.Tasks; -using System.Collections.Generic; - -using StardewModdingAPI; - -using Newtonsoft.Json; - -using StardewValley; - -namespace Entoarox.Framework.Core -{ - internal class UpdateInfo - { - public string Latest; - public string Recommended; - public string Minimum; - - public static Dictionary Map = new Dictionary(); - - private static void HandleError(string name,WebException err) - { - switch (err.Status) - { - case WebExceptionStatus.ConnectFailure: - ModEntry.Logger.Log("[UpdateChecker] The `" + name + "` mod failed to check for updates, connection failed.", LogLevel.Error); - break; - case WebExceptionStatus.NameResolutionFailure: - ModEntry.Logger.Log("[UpdateChecker] The `" + name + "` mod failed to check for updates, DNS resolution failed", LogLevel.Error); - break; - case WebExceptionStatus.SecureChannelFailure: - ModEntry.Logger.Log("[UpdateChecker] The `" + name + "` mod failed to check for updates, SSL handshake failed", LogLevel.Error); - break; - case WebExceptionStatus.Timeout: - ModEntry.Logger.Log("[UpdateChecker] The `" + name + "` mod failed to check for updates, Connection timed out", LogLevel.Error); - break; - case WebExceptionStatus.TrustFailure: - ModEntry.Logger.Log("[UpdateChecker] The `" + name + "` mod failed to check for updates, SSL certificate cannot be validated", LogLevel.Error); - break; - case WebExceptionStatus.ProtocolError: - HttpWebResponse response = (HttpWebResponse)err.Response; - ModEntry.Logger.Log($"[UpdateChecker] The `{name}` mod failed to check for updates, Server protocol error.\n\t[{response.StatusCode}]: {response.StatusDescription}", LogLevel.Error); - break; - default: - ModEntry.Logger.Log("[UpdateChecker] The `" + name + "` mod failed to check for updates, a unknown error occured." + Environment.NewLine + err.ToString(), LogLevel.Error); - break; - } - } - public static void DoUpdateChecks() - { - try - { - string version = typeof(Game1).Assembly.GetName().Version.ToString(2); - bool Connected; - try - { - using (WebClient client = new WebClient()) - using (Stream stream = client.OpenRead("http://www.google.com")) - Connected = true; - } - catch - { - Connected = false; - } - if(Connected) - Parallel.ForEach(Map, (pair) => - { - try - { - WebClient Client = new WebClient(); - Uri uri = new Uri(pair.Value); - SemanticVersion modVersion = (SemanticVersion)pair.Key.Version; - try - { - Client.DownloadStringCompleted += (sender, evt) => - { - try - { - if (evt.Error != null) - { - HandleError(pair.Key.Name, (WebException)evt.Error); - return; - } - Dictionary Data = JsonConvert.DeserializeObject>(evt.Result); - UpdateInfo info = null; - if (Data.ContainsKey(version)) - info = Data[version]; - else if (Data.ContainsKey("Default")) - info = Data["Default"]; - else - ModEntry.Logger.ExitGameImmediately("[UpdateChecker] The `" + pair.Key.Name + "` mod does not support the current version of SDV."); - if (info != null) - { - SemanticVersion min = new SemanticVersion(info.Minimum); - SemanticVersion rec = new SemanticVersion(info.Recommended); - SemanticVersion max = new SemanticVersion(info.Latest); - if (min.IsNewerThan(modVersion)) - ModEntry.Logger.ExitGameImmediately("[UpdateChecker] The `" + pair.Key.Name + "` mod is too old, a newer version is required."); - if (rec.IsNewerThan(modVersion)) - ModEntry.Logger.Log("[UpdateChecker] The `" + pair.Key.Name + "` mod has a new version available, it is recommended you update now.", LogLevel.Alert); - if (modVersion.IsBetween(rec, max)) - ModEntry.Logger.Log("[UpdateChecker] The `" + pair.Key.Name + "` mod has a new version available.", LogLevel.Info); - } - } - catch (WebException err) - { - HandleError(pair.Key.Name, err); - } - catch (Exception err) - { - ModEntry.Logger.Log("[UpdateChecker] The `" + pair.Key.Name + "` mod failed to check for updates, unexpected error occured while reading result." + Environment.NewLine + err.ToString(), LogLevel.Error); - } - }; - Client.DownloadStringAsync(uri); - } - catch (WebException err) - { - HandleError(pair.Key.Name, err); - } - } - catch(Exception err) - { - ModEntry.Logger.Log("[UpdateChecker] The `" + pair.Key.Name + "` mod failed to check for updates, unexpected error occured." + Environment.NewLine + err.ToString(), LogLevel.Error); - } - }); - else - ModEntry.Logger.Log("[UpdateChecker] No internet connection, skipping update checks.", LogLevel.Debug); - } - catch(Exception err) - { - ModEntry.Logger.Log("[UpdateChecker] Unexpected failure, unexpected error occured."+Environment.NewLine+err.ToString(), LogLevel.Error); - } - } - } -} \ No newline at end of file diff --git a/Framework/IContentHelper.cs b/Framework/IContentHelper.cs deleted file mode 100644 index 51d3824..0000000 --- a/Framework/IContentHelper.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Collections.Generic; - -using Microsoft.Xna.Framework; -using Microsoft.Xna.Framework.Graphics; - -using StardewModdingAPI; - -namespace Entoarox.Framework -{ - public interface IContentHelper// : IContentHelper - { - /// Load content from the game folder or mod folder (if not already cached), and return it. - /// The expected data type. The main supported types are and dictionaries; other types may be supported by the game's content pipeline. - /// The asset key to fetch (if the is ), or the local path to a content file relative to the mod folder. - /// Where to search for a matching content asset. - /// The is empty or contains invalid characters. - /// The content asset couldn't be loaded (e.g. because it doesn't exist). - T Load(string key, ContentSource source = ContentSource.ModFolder); - /// Get the underlying key in the game's content cache for an asset. This can be used to load custom map tilesheets, but should be avoided when you can use the content API instead. This does not validate whether the asset exists. - /// The asset key to fetch (if the is ), or the local path to a content file relative to the mod folder. - /// Where to search for a matching content asset. - /// The is empty or contains invalid characters. - string GetActualAssetKey(string key, ContentSource source = ContentSource.ModFolder); - void RegisterContentHandler(IContentHandler handler); - void RegisterTexturePatch(string assetName, string patchAssetName, Rectangle? destination = null, Rectangle? source = null); - void RegisterTexturePatch(string assetName, Texture2D patchAsset, Rectangle? destination = null, Rectangle? source = null); - void RegisterDictionaryPatch(string assetName, string patchAssetName); - void RegisterDictionaryPatch(string assetName, Dictionary patchAsset); - void RegisterXnbReplacement(string assetName, string replacementAssetName); - void RegisterLoader(string assetName, AssetLoader assetLoader); - void RegisterLoader(AssetLoader assetLoader); - void RegisterInjector(string assetName, AssetInjector assetInjector); - void RegisterInjector(AssetInjector assetInjector); - } -} diff --git a/Framework/UI/Utility.cs b/Framework/UI/Utility.cs deleted file mode 100644 index 1b7dc36..0000000 --- a/Framework/UI/Utility.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Entoarox.Framework.UI -{ - class Utility - { - } -} diff --git a/MagicJunimoPet/Behaviours/FollowBehaviour.cs b/MagicJunimoPet/Behaviours/FollowBehaviour.cs index dfc95d9..3aca5b2 100644 --- a/MagicJunimoPet/Behaviours/FollowBehaviour.cs +++ b/MagicJunimoPet/Behaviours/FollowBehaviour.cs @@ -5,6 +5,7 @@ using System.Threading.Tasks; using Microsoft.Xna.Framework; using StardewValley; +using StardewValley.Locations; namespace MagicJunimoPet.Behaviours { diff --git a/MagicJunimoPet/SmartPet.cs b/MagicJunimoPet/SmartPet.cs index 1839033..0d931be 100644 --- a/MagicJunimoPet/SmartPet.cs +++ b/MagicJunimoPet/SmartPet.cs @@ -42,7 +42,7 @@ public void ModExperience(int amount) public void AddAbility(Ability ability) { if (ability.Pet != null) - throw new ArgumentException("Invalid ability, already assigned to a pet.", nameof(ability); + throw new ArgumentException("Invalid ability, already assigned to a pet.", nameof(ability)); this.Abilities.Add(ability.Id, ability); ability.Pet = this; } From ed7856f995366c7e8e31c22207bdea43d682542d Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Mon, 1 Jul 2019 14:26:09 -0400 Subject: [PATCH 2/6] update mod build package The new mod build package version... - adds support for SMAPI 3.0; - deploys 'assets' folders automatically; - can add a Harmony reference automatically using . --- .../AdvancedLocationLoader.csproj | 3 +- .../AdvancedLocationLoader2.csproj | 24 +--- CustomBooks/CustomBooks.csproj | 38 ++---- CustomPaths/CustomPaths.csproj | 3 +- DialogueFramework/DialogueFramework.csproj | 23 +--- DialogueFramework/packages.config | 4 - DynamicDungeons/DynamicDungeons.csproj | 78 +++--------- ExtendedMinecart/ExtendedMinecart.csproj | 2 +- FasterPaths/FasterPaths.csproj | 2 +- Framework/EntoaroxFramework.csproj | 8 +- FurnitureAnywhere/FurnitureAnywhere.csproj | 7 +- Harmony.dll | Bin 65536 -> 0 bytes LanguagePatcher/LanguagePatcher.csproj | 20 +-- LanguagePatcher/packages.config | 4 - MagicJunimoPet/MagicJunimoPet.csproj | 29 +---- MagicJunimoPet/packages.config | 4 - MoreAnimals/MoreAnimals.csproj | 114 +++++------------- PlayGround/PlayGround.csproj | 2 +- SeasonalImmersion/SeasonalImmersion.csproj | 2 +- ShopExpander/ShopExpander.csproj | 2 +- SundropCity/SundropCity.csproj | 32 ++--- SundropCity/packages.config | 5 - XnbLoader/XnbLoader.csproj | 2 +- 23 files changed, 98 insertions(+), 310 deletions(-) delete mode 100644 DialogueFramework/packages.config delete mode 100644 Harmony.dll delete mode 100644 LanguagePatcher/packages.config delete mode 100644 MagicJunimoPet/packages.config delete mode 100644 SundropCity/packages.config diff --git a/AdvancedLocationLoader/AdvancedLocationLoader.csproj b/AdvancedLocationLoader/AdvancedLocationLoader.csproj index 2fdfe86..ba9e8e1 100644 --- a/AdvancedLocationLoader/AdvancedLocationLoader.csproj +++ b/AdvancedLocationLoader/AdvancedLocationLoader.csproj @@ -36,10 +36,9 @@ - + - diff --git a/AdvancedLocationLoader2/AdvancedLocationLoader2.csproj b/AdvancedLocationLoader2/AdvancedLocationLoader2.csproj index 755e231..ac5b968 100644 --- a/AdvancedLocationLoader2/AdvancedLocationLoader2.csproj +++ b/AdvancedLocationLoader2/AdvancedLocationLoader2.csproj @@ -12,8 +12,6 @@ v4.5 512 true - - true @@ -33,9 +31,10 @@ 4 - - ..\packages\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll - + + + + @@ -58,19 +57,4 @@ - - - - - - - - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - \ No newline at end of file diff --git a/CustomBooks/CustomBooks.csproj b/CustomBooks/CustomBooks.csproj index ba155f2..1460930 100644 --- a/CustomBooks/CustomBooks.csproj +++ b/CustomBooks/CustomBooks.csproj @@ -35,7 +35,7 @@ - + @@ -71,33 +71,15 @@ - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - + + + + + + + + + \ No newline at end of file diff --git a/CustomPaths/CustomPaths.csproj b/CustomPaths/CustomPaths.csproj index 0359c80..cf107ee 100644 --- a/CustomPaths/CustomPaths.csproj +++ b/CustomPaths/CustomPaths.csproj @@ -36,10 +36,9 @@ - + - diff --git a/DialogueFramework/DialogueFramework.csproj b/DialogueFramework/DialogueFramework.csproj index fa75de7..d146c91 100644 --- a/DialogueFramework/DialogueFramework.csproj +++ b/DialogueFramework/DialogueFramework.csproj @@ -12,8 +12,8 @@ v4.5 512 true - - + + true true @@ -37,9 +37,9 @@ 7.1 - - E:\SteamGames\steamapps\common\Stardew Valley\smapi-internal\0Harmony.dll - + + + @@ -57,18 +57,5 @@ - - - - - - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - \ No newline at end of file diff --git a/DialogueFramework/packages.config b/DialogueFramework/packages.config deleted file mode 100644 index af793ad..0000000 --- a/DialogueFramework/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/DynamicDungeons/DynamicDungeons.csproj b/DynamicDungeons/DynamicDungeons.csproj index 77e3f15..453d28c 100644 --- a/DynamicDungeons/DynamicDungeons.csproj +++ b/DynamicDungeons/DynamicDungeons.csproj @@ -34,7 +34,7 @@ latest - + @@ -72,78 +72,40 @@ - - Always - + - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - + + + + - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - + + + + + + + + + + + + - - PreserveNewest - - - PreserveNewest - + + \ No newline at end of file diff --git a/ExtendedMinecart/ExtendedMinecart.csproj b/ExtendedMinecart/ExtendedMinecart.csproj index 7f64ba5..1293fdb 100644 --- a/ExtendedMinecart/ExtendedMinecart.csproj +++ b/ExtendedMinecart/ExtendedMinecart.csproj @@ -35,7 +35,7 @@ 7.1 - + diff --git a/FasterPaths/FasterPaths.csproj b/FasterPaths/FasterPaths.csproj index a4b9c81..3f2784d 100644 --- a/FasterPaths/FasterPaths.csproj +++ b/FasterPaths/FasterPaths.csproj @@ -35,7 +35,7 @@ 7.1 - + diff --git a/Framework/EntoaroxFramework.csproj b/Framework/EntoaroxFramework.csproj index 8fcf6ba..34029d6 100644 --- a/Framework/EntoaroxFramework.csproj +++ b/Framework/EntoaroxFramework.csproj @@ -11,6 +11,8 @@ EntoaroxFramework v4.5.2 512 + + true true @@ -38,13 +40,9 @@ - + - - False - ..\Harmony.dll - diff --git a/FurnitureAnywhere/FurnitureAnywhere.csproj b/FurnitureAnywhere/FurnitureAnywhere.csproj index 3c4c560..14d9314 100644 --- a/FurnitureAnywhere/FurnitureAnywhere.csproj +++ b/FurnitureAnywhere/FurnitureAnywhere.csproj @@ -11,6 +11,8 @@ FurnitureAnywhere v4.5.2 512 + + true true @@ -36,12 +38,9 @@ - + - - E:\SteamGames\steamapps\common\Stardew Valley\smapi-internal\0Harmony.dll - diff --git a/Harmony.dll b/Harmony.dll deleted file mode 100644 index a95b6df8aa6f4472d514a983bf1b9178a7283bd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65536 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 #{m2@Ill<|% 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 U0GYv2w*MD0*FXLHYe#|q3mf->X8-^I diff --git a/LanguagePatcher/LanguagePatcher.csproj b/LanguagePatcher/LanguagePatcher.csproj index a09b9f4..04ee58e 100644 --- a/LanguagePatcher/LanguagePatcher.csproj +++ b/LanguagePatcher/LanguagePatcher.csproj @@ -33,22 +33,9 @@ 7.1 - - ..\packages\Mono.Cecil.0.10.3\lib\net40\Mono.Cecil.dll - False - - - ..\packages\Mono.Cecil.0.10.3\lib\net40\Mono.Cecil.Mdb.dll - False - - - ..\packages\Mono.Cecil.0.10.3\lib\net40\Mono.Cecil.Pdb.dll - False - - - ..\packages\Mono.Cecil.0.10.3\lib\net40\Mono.Cecil.Rocks.dll - False - + + + @@ -64,7 +51,6 @@ - \ No newline at end of file diff --git a/LanguagePatcher/packages.config b/LanguagePatcher/packages.config deleted file mode 100644 index b660425..0000000 --- a/LanguagePatcher/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/MagicJunimoPet/MagicJunimoPet.csproj b/MagicJunimoPet/MagicJunimoPet.csproj index 37ec003..190c8bd 100644 --- a/MagicJunimoPet/MagicJunimoPet.csproj +++ b/MagicJunimoPet/MagicJunimoPet.csproj @@ -11,8 +11,6 @@ MagicJunimoPet v4.5 512 - - true @@ -35,6 +33,9 @@ x86 7.1 + + + @@ -66,30 +67,12 @@ - - Always - - - Always - + + - - - - - - - Always - + - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - \ No newline at end of file diff --git a/MagicJunimoPet/packages.config b/MagicJunimoPet/packages.config deleted file mode 100644 index af793ad..0000000 --- a/MagicJunimoPet/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/MoreAnimals/MoreAnimals.csproj b/MoreAnimals/MoreAnimals.csproj index 290301c..fec9c7c 100644 --- a/MoreAnimals/MoreAnimals.csproj +++ b/MoreAnimals/MoreAnimals.csproj @@ -35,7 +35,7 @@ 7.1 - + @@ -56,92 +56,36 @@ - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - + + + + + + + + + + + + + + + + + + + + + - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - + + + + + + + diff --git a/PlayGround/PlayGround.csproj b/PlayGround/PlayGround.csproj index 85edf5b..0628594 100644 --- a/PlayGround/PlayGround.csproj +++ b/PlayGround/PlayGround.csproj @@ -32,7 +32,7 @@ x86 - + diff --git a/SeasonalImmersion/SeasonalImmersion.csproj b/SeasonalImmersion/SeasonalImmersion.csproj index 15cdbcc..a61f0a7 100644 --- a/SeasonalImmersion/SeasonalImmersion.csproj +++ b/SeasonalImmersion/SeasonalImmersion.csproj @@ -34,7 +34,7 @@ - + diff --git a/ShopExpander/ShopExpander.csproj b/ShopExpander/ShopExpander.csproj index 5c0f6c7..5632321 100644 --- a/ShopExpander/ShopExpander.csproj +++ b/ShopExpander/ShopExpander.csproj @@ -35,7 +35,7 @@ 7.1 - + diff --git a/SundropCity/SundropCity.csproj b/SundropCity/SundropCity.csproj index d72683d..0690f20 100644 --- a/SundropCity/SundropCity.csproj +++ b/SundropCity/SundropCity.csproj @@ -12,8 +12,6 @@ v4.5 512 true - - true @@ -37,9 +35,10 @@ 7.1 - - ..\packages\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll - + + + + @@ -64,28 +63,11 @@ - - Always - - - Always - - - Always - + + + - - - - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - \ No newline at end of file diff --git a/SundropCity/packages.config b/SundropCity/packages.config deleted file mode 100644 index 611c7bb..0000000 --- a/SundropCity/packages.config +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/XnbLoader/XnbLoader.csproj b/XnbLoader/XnbLoader.csproj index 442b1df..b42966c 100644 --- a/XnbLoader/XnbLoader.csproj +++ b/XnbLoader/XnbLoader.csproj @@ -33,7 +33,7 @@ x86 - + From da679f9df4d0e9ae02b6e4e7c92216a6cd7b70b2 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Mon, 1 Jul 2019 14:26:26 -0400 Subject: [PATCH 3/6] migrate to new .csproj format --- .../AdvancedLocationLoader.csproj | 99 +------ .../Properties/AssemblyInfo.cs | 6 - .../AdvancedLocationLoader2.csproj | 64 +---- .../Properties/AssemblyInfo.cs | 36 --- AdvancedLocationLoader2/packages.config | 5 - CustomBooks/CustomBooks.csproj | 83 +----- CustomBooks/Properties/AssemblyInfo.cs | 6 - CustomPaths/CustomPaths.csproj | 70 +---- CustomPaths/Properties/AssemblyInfo.cs | 6 - DialogueFramework/DialogueFramework.csproj | 62 +---- DialogueFramework/Properties/AssemblyInfo.cs | 36 --- DynamicDungeons/DynamicDungeons.csproj | 113 +------- DynamicDungeons/Properties/AssemblyInfo.cs | 6 - ExtendedMinecart/ExtendedMinecart.csproj | 61 +---- ExtendedMinecart/Properties/AssemblyInfo.cs | 6 - FasterPaths/FasterPaths.csproj | 61 +---- FasterPaths/Properties/AssemblyInfo.cs | 6 - Framework/EntoaroxFramework.csproj | 208 +------------- Framework/Properties/AssemblyInfo.cs | 6 - FurnitureAnywhere/FurnitureAnywhere.csproj | 64 +---- FurnitureAnywhere/Properties/AssemblyInfo.cs | 6 - LanguagePatcher/LanguagePatcher.csproj | 60 +--- LanguagePatcher/Properties/AssemblyInfo.cs | 36 --- MagicJunimoPet/MagicJunimoPet.csproj | 79 +----- MagicJunimoPet/Properties/AssemblyInfo.cs | 36 --- MoreAnimals/MoreAnimals.csproj | 93 +------ MoreAnimals/Properties/AssemblyInfo.cs | 6 - PlayGround/PlayGround.csproj | 74 +---- PlayGround/Properties/AssemblyInfo.cs | 6 - SeasonalImmersion/Properties/AssemblyInfo.cs | 6 - SeasonalImmersion/SeasonalImmersion.csproj | 58 +--- ShopExpander/Properties/AssemblyInfo.cs | 6 - ShopExpander/ShopExpander.csproj | 62 +---- StardewMods.sln | 259 +++++++----------- SundropCity/Properties/AssemblyInfo.cs | 36 --- SundropCity/SundropCity.csproj | 73 +---- XnbLoader/Properties/AssemblyInfo.cs | 6 - XnbLoader/XnbLoader.csproj | 59 +--- 38 files changed, 285 insertions(+), 1680 deletions(-) delete mode 100644 AdvancedLocationLoader/Properties/AssemblyInfo.cs delete mode 100644 AdvancedLocationLoader2/Properties/AssemblyInfo.cs delete mode 100644 AdvancedLocationLoader2/packages.config delete mode 100644 CustomBooks/Properties/AssemblyInfo.cs delete mode 100644 CustomPaths/Properties/AssemblyInfo.cs delete mode 100644 DialogueFramework/Properties/AssemblyInfo.cs delete mode 100644 DynamicDungeons/Properties/AssemblyInfo.cs delete mode 100644 ExtendedMinecart/Properties/AssemblyInfo.cs delete mode 100644 FasterPaths/Properties/AssemblyInfo.cs delete mode 100644 Framework/Properties/AssemblyInfo.cs delete mode 100644 FurnitureAnywhere/Properties/AssemblyInfo.cs delete mode 100644 LanguagePatcher/Properties/AssemblyInfo.cs delete mode 100644 MagicJunimoPet/Properties/AssemblyInfo.cs delete mode 100644 MoreAnimals/Properties/AssemblyInfo.cs delete mode 100644 PlayGround/Properties/AssemblyInfo.cs delete mode 100644 SeasonalImmersion/Properties/AssemblyInfo.cs delete mode 100644 ShopExpander/Properties/AssemblyInfo.cs delete mode 100644 SundropCity/Properties/AssemblyInfo.cs delete mode 100644 XnbLoader/Properties/AssemblyInfo.cs diff --git a/AdvancedLocationLoader/AdvancedLocationLoader.csproj b/AdvancedLocationLoader/AdvancedLocationLoader.csproj index ba9e8e1..88c05f0 100644 --- a/AdvancedLocationLoader/AdvancedLocationLoader.csproj +++ b/AdvancedLocationLoader/AdvancedLocationLoader.csproj @@ -1,101 +1,22 @@ - - - + + - Debug - x86 - {9EA06249-2096-43E0-B616-DDD3FE731147} - Library - Properties - Entoarox.AdvancedLocationLoader AdvancedLocationLoader - v4.5.2 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - x86 - 7.1 - - - true - full - true - bin\Release\ - TRACE - prompt - 4 - x86 + Entoarox.AdvancedLocationLoader + 1.5.0 + net452 7.1 + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - {174275e7-3ae4-41a6-9884-9e08a07d1101} - EntoaroxFramework - False + false - - - - - - \ No newline at end of file + + diff --git a/AdvancedLocationLoader/Properties/AssemblyInfo.cs b/AdvancedLocationLoader/Properties/AssemblyInfo.cs deleted file mode 100644 index 0d75211..0000000 --- a/AdvancedLocationLoader/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,6 +0,0 @@ -using System.Reflection; - -[assembly: AssemblyTitle("AdvancedLocationLoader")] -[assembly: AssemblyDescription("Add new content to stardew valley without needing to learn C#!")] -[assembly: AssemblyVersion("1.4.6")] -[assembly: AssemblyFileVersion("1.4.6")] diff --git a/AdvancedLocationLoader2/AdvancedLocationLoader2.csproj b/AdvancedLocationLoader2/AdvancedLocationLoader2.csproj index ac5b968..c51cbd1 100644 --- a/AdvancedLocationLoader2/AdvancedLocationLoader2.csproj +++ b/AdvancedLocationLoader2/AdvancedLocationLoader2.csproj @@ -1,60 +1,22 @@ - - - + + - Debug - AnyCPU - {3E6083A5-7122-4E40-B720-D4436CD816B5} - Library - Properties - Entoarox.AdvancedLocationLoader2 AdvancedLocationLoader2 - v4.5 - 512 - true - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 + Entoarox.AdvancedLocationLoader2 + 1.5.0 + net452 + 7.1 + + - - - - - - - - - - - - - - - - - - - - - + + false + - \ No newline at end of file + + diff --git a/AdvancedLocationLoader2/Properties/AssemblyInfo.cs b/AdvancedLocationLoader2/Properties/AssemblyInfo.cs deleted file mode 100644 index 9f7ca8f..0000000 --- a/AdvancedLocationLoader2/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("AdvancedLocationLoader2")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("AdvancedLocationLoader2")] -[assembly: AssemblyCopyright("Copyright © 2019")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("3e6083a5-7122-4e40-b720-d4436cd816b5")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/AdvancedLocationLoader2/packages.config b/AdvancedLocationLoader2/packages.config deleted file mode 100644 index 611c7bb..0000000 --- a/AdvancedLocationLoader2/packages.config +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/CustomBooks/CustomBooks.csproj b/CustomBooks/CustomBooks.csproj index 1460930..1d33f1f 100644 --- a/CustomBooks/CustomBooks.csproj +++ b/CustomBooks/CustomBooks.csproj @@ -1,85 +1,22 @@ - - - + + - Debug - x86 - {AE56920C-7F17-4E17-B703-6586B190EF04} - Library - Properties - Entoarox.CustomBooks CustomBooks - v4.5.2 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - 7.1 - - - true - full - true - bin\Release\ - TRACE - prompt - 4 - x86 + Entoarox.CustomBooks + 0.1.0 + net452 7.1 + - - - - - - - - - - - - - - - - - - - - - - - - - - - + - {174275e7-3ae4-41a6-9884-9e08a07d1101} - EntoaroxFramework + false - - - - - - - - - - - - - \ No newline at end of file + + diff --git a/CustomBooks/Properties/AssemblyInfo.cs b/CustomBooks/Properties/AssemblyInfo.cs deleted file mode 100644 index f87ac81..0000000 --- a/CustomBooks/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,6 +0,0 @@ -using System.Reflection; - -[assembly: AssemblyTitle("CustomBooks")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyVersion("1.0.0")] -[assembly: AssemblyFileVersion("1.0.0")] diff --git a/CustomPaths/CustomPaths.csproj b/CustomPaths/CustomPaths.csproj index cf107ee..a02f001 100644 --- a/CustomPaths/CustomPaths.csproj +++ b/CustomPaths/CustomPaths.csproj @@ -1,72 +1,22 @@ - - - + + - Debug - AnyCPU - {19A8DB34-7A24-4576-B50F-7EB02D09E465} - Library - Properties - Entoarox.CustomPaths CustomPaths - v4.5.2 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - x86 - 7.1 - prompt - MinimumRecommendedRules.ruleset - - - true - full - true - bin\Release\ - TRACE - x86 - prompt - MinimumRecommendedRules.ruleset + Entoarox.CustomPaths + 1.1.2 + net452 7.1 + - - - - - - - - - - - - - - - - - - - - - - - + - {174275e7-3ae4-41a6-9884-9e08a07d1101} - EntoaroxFramework - False + false - - \ No newline at end of file + + diff --git a/CustomPaths/Properties/AssemblyInfo.cs b/CustomPaths/Properties/AssemblyInfo.cs deleted file mode 100644 index 4e49201..0000000 --- a/CustomPaths/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,6 +0,0 @@ -using System.Reflection; - -[assembly: AssemblyTitle("CustomPaths")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyVersion("1.1.2")] -[assembly: AssemblyFileVersion("1.1.2")] diff --git a/DialogueFramework/DialogueFramework.csproj b/DialogueFramework/DialogueFramework.csproj index d146c91..77771c3 100644 --- a/DialogueFramework/DialogueFramework.csproj +++ b/DialogueFramework/DialogueFramework.csproj @@ -1,61 +1,17 @@ - - - + + - Debug - AnyCPU - {1ADC0DCB-5229-4DB7-B4B1-B58F9281F1A3} - Library - Properties - DialogueFramework DialogueFramework - v4.5 - 512 - true + DialogueFramework + 1.0.0 + net452 + 7.1 true - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - x86 - 7.1 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - x86 - 7.1 - + - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + + diff --git a/DialogueFramework/Properties/AssemblyInfo.cs b/DialogueFramework/Properties/AssemblyInfo.cs deleted file mode 100644 index 0327f25..0000000 --- a/DialogueFramework/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("DialogueFramework")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("DialogueFramework")] -[assembly: AssemblyCopyright("Copyright © 2019")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("1adc0dcb-5229-4db7-b4b1-b58f9281f1a3")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/DynamicDungeons/DynamicDungeons.csproj b/DynamicDungeons/DynamicDungeons.csproj index 453d28c..6ec5072 100644 --- a/DynamicDungeons/DynamicDungeons.csproj +++ b/DynamicDungeons/DynamicDungeons.csproj @@ -1,111 +1,14 @@ - - - + + - Debug - x86 - {AE355745-73FE-45C6-BA17-DE56744BB3D6} - Library - Properties - Entoarox.DynamicDungeons DynamicDungeons - v4.5.2 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - latest - - - true - full - true - bin\Release\ - TRACE - prompt - 4 - x86 - latest + Entoarox.DynamicDungeons + 0.1.16 + net452 + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + + diff --git a/DynamicDungeons/Properties/AssemblyInfo.cs b/DynamicDungeons/Properties/AssemblyInfo.cs deleted file mode 100644 index cb59c62..0000000 --- a/DynamicDungeons/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,6 +0,0 @@ -using System.Reflection; - -[assembly: AssemblyTitle("DynamicDungeons")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyVersion("1.0.0")] -[assembly: AssemblyFileVersion("1.0.0")] diff --git a/ExtendedMinecart/ExtendedMinecart.csproj b/ExtendedMinecart/ExtendedMinecart.csproj index 1293fdb..d40c7e2 100644 --- a/ExtendedMinecart/ExtendedMinecart.csproj +++ b/ExtendedMinecart/ExtendedMinecart.csproj @@ -1,62 +1,21 @@ - - - + + - Debug - x86 - {CA467BEA-932F-4133-ACA0-D634670C2488} - Library - Properties - Entoarox.ExtendedMinecart ExtendedMinecart - v4.5.2 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - x86 - 7.1 - - - true - full - true - bin\Release\ - TRACE - prompt - 4 - x86 + Entoarox.ExtendedMinecart + 1.8.2 + net452 7.1 + - - - - - - - - + - {174275e7-3ae4-41a6-9884-9e08a07d1101} - EntoaroxFramework - False + false - - - - - - - - \ No newline at end of file + + diff --git a/ExtendedMinecart/Properties/AssemblyInfo.cs b/ExtendedMinecart/Properties/AssemblyInfo.cs deleted file mode 100644 index 8f6de21..0000000 --- a/ExtendedMinecart/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,6 +0,0 @@ -using System.Reflection; - -[assembly: AssemblyTitle("ExtendedMinecart")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyVersion("1.8.0")] -[assembly: AssemblyFileVersion("1.8.0")] diff --git a/FasterPaths/FasterPaths.csproj b/FasterPaths/FasterPaths.csproj index 3f2784d..e3c86b9 100644 --- a/FasterPaths/FasterPaths.csproj +++ b/FasterPaths/FasterPaths.csproj @@ -1,62 +1,21 @@ - - - + + - Debug - x86 - {B9CDF893-2243-46D1-8CB6-CE48B8973023} - Library - Properties - Entoarox.FasterPaths FasterPaths - v4.5.2 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - x86 - 7.1 - - - true - full - true - bin\Release\ - TRACE - prompt - 4 - x86 + Entoarox.FasterPaths + 1.3.5 + net452 7.1 + - - - - - - - - - + - {174275e7-3ae4-41a6-9884-9e08a07d1101} - EntoaroxFramework - False + false - - - - - - - \ No newline at end of file + + diff --git a/FasterPaths/Properties/AssemblyInfo.cs b/FasterPaths/Properties/AssemblyInfo.cs deleted file mode 100644 index d2d1bb4..0000000 --- a/FasterPaths/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,6 +0,0 @@ -using System.Reflection; - -[assembly: AssemblyTitle("FasterPaths")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyVersion("1.3.5")] -[assembly: AssemblyFileVersion("1.3.5")] diff --git a/Framework/EntoaroxFramework.csproj b/Framework/EntoaroxFramework.csproj index 34029d6..ef7a15a 100644 --- a/Framework/EntoaroxFramework.csproj +++ b/Framework/EntoaroxFramework.csproj @@ -1,212 +1,24 @@ - - - + + - Debug - x86 - {174275E7-3AE4-41A6-9884-9E08A07D1101} - Library - Properties - Entoarox.Framework EntoaroxFramework - v4.5.2 - 512 + Entoarox.Framework + 2.4.2 + net452 + 7.1 true - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - x86 - 1024 - 7.1 - - - true - full - true - bin\Release\ - TRACE - prompt - 4 - x86 - CS0618 - 7.1 - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Always - - \ No newline at end of file + + diff --git a/Framework/Properties/AssemblyInfo.cs b/Framework/Properties/AssemblyInfo.cs deleted file mode 100644 index 140a99e..0000000 --- a/Framework/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,6 +0,0 @@ -using System.Reflection; - -[assembly: AssemblyTitle("EntoaroxFramework")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyVersion("2.4.2")] -[assembly: AssemblyFileVersion("2.4.2")] diff --git a/FurnitureAnywhere/FurnitureAnywhere.csproj b/FurnitureAnywhere/FurnitureAnywhere.csproj index 14d9314..5ae5029 100644 --- a/FurnitureAnywhere/FurnitureAnywhere.csproj +++ b/FurnitureAnywhere/FurnitureAnywhere.csproj @@ -1,65 +1,25 @@ - - - + + - Debug - x86 - {753CFB03-2CC1-478E-AA3D-9F42CD724709} - Library - Properties - Entoarox.FurnitureAnywhere FurnitureAnywhere - v4.5.2 - 512 + Entoarox.FurnitureAnywhere + 1.1.7 + net452 + 7.1 true - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - x86 - 7.1 - - - true - full - true - bin\Release\ - TRACE - prompt - 4 - x86 - 7.1 - + + - - - - - - - - - + - {174275e7-3ae4-41a6-9884-9e08a07d1101} - EntoaroxFramework - False + false - - - - - - - \ No newline at end of file + + diff --git a/FurnitureAnywhere/Properties/AssemblyInfo.cs b/FurnitureAnywhere/Properties/AssemblyInfo.cs deleted file mode 100644 index c18665d..0000000 --- a/FurnitureAnywhere/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,6 +0,0 @@ -using System.Reflection; - -[assembly: AssemblyTitle("FurnitureAnywhere")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyVersion("1.1.7")] -[assembly: AssemblyFileVersion("1.1.7")] diff --git a/LanguagePatcher/LanguagePatcher.csproj b/LanguagePatcher/LanguagePatcher.csproj index 04ee58e..c831e4c 100644 --- a/LanguagePatcher/LanguagePatcher.csproj +++ b/LanguagePatcher/LanguagePatcher.csproj @@ -1,56 +1,18 @@ - - - + + - Debug - AnyCPU - {64EAD78D-04D6-4D96-B1B2-350865064344} - Exe - LanguagePatcher LanguagePatcher - v4.5 - 512 - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - 7.1 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 + LanguagePatcher + 1.0.0 + net452 + Exe + x86 + x86 7.1 + - - - - - - - - - - - - - - - - - - - \ No newline at end of file + + diff --git a/LanguagePatcher/Properties/AssemblyInfo.cs b/LanguagePatcher/Properties/AssemblyInfo.cs deleted file mode 100644 index 5ffc527..0000000 --- a/LanguagePatcher/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("LanguagePatcher")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("LanguagePatcher")] -[assembly: AssemblyCopyright("Copyright © 2019")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("64ead78d-04d6-4d96-b1b2-350865064344")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/MagicJunimoPet/MagicJunimoPet.csproj b/MagicJunimoPet/MagicJunimoPet.csproj index 190c8bd..7970b6f 100644 --- a/MagicJunimoPet/MagicJunimoPet.csproj +++ b/MagicJunimoPet/MagicJunimoPet.csproj @@ -1,78 +1,15 @@ - - - + + - Debug - AnyCPU - {48A2B145-8E61-4038-90E1-58367322194B} - Library - Properties - MagicJunimoPet MagicJunimoPet - v4.5 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - x86 - 7.1 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - x86 + MagicJunimoPet + 1.1.2 + net452 7.1 + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + + diff --git a/MagicJunimoPet/Properties/AssemblyInfo.cs b/MagicJunimoPet/Properties/AssemblyInfo.cs deleted file mode 100644 index 75459db..0000000 --- a/MagicJunimoPet/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("MagicJunimoPet")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("MagicJunimoPet")] -[assembly: AssemblyCopyright("Copyright © 2019")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("48a2b145-8e61-4038-90e1-58367322194b")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/MoreAnimals/MoreAnimals.csproj b/MoreAnimals/MoreAnimals.csproj index fec9c7c..b8a1592 100644 --- a/MoreAnimals/MoreAnimals.csproj +++ b/MoreAnimals/MoreAnimals.csproj @@ -1,94 +1,21 @@ - - - + + - Debug - x86 - {3710E6E1-296C-481D-B577-4BA6CCAF2E94} - Library - Properties - Entoarox.MorePetsAndAnimals MoreAnimals - v4.5.2 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - x86 - 7.1 - - - true - full - true - bin\Release\ - TRACE - prompt - 4 - x86 + Entoarox.MorePetsAndAnimals + 3.0.2 + net452 7.1 + - - - - - - - - - - - + - {174275e7-3ae4-41a6-9884-9e08a07d1101} - EntoaroxFramework - False + false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + + diff --git a/MoreAnimals/Properties/AssemblyInfo.cs b/MoreAnimals/Properties/AssemblyInfo.cs deleted file mode 100644 index 2921763..0000000 --- a/MoreAnimals/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,6 +0,0 @@ -using System.Reflection; - -[assembly: AssemblyTitle("MorePets")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyVersion("2.1.0")] -[assembly: AssemblyFileVersion("2.1.0")] diff --git a/PlayGround/PlayGround.csproj b/PlayGround/PlayGround.csproj index 0628594..429d103 100644 --- a/PlayGround/PlayGround.csproj +++ b/PlayGround/PlayGround.csproj @@ -1,74 +1,20 @@ - - - + + - Debug - x86 - {B2A28A37-3C82-4D6D-A97E-8DA9BBCBD368} - Library - Properties - PlayGround PlayGround - v4.5.2 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - true - full - true - bin\Release\ - TRACE - prompt - 4 - x86 + PlayGround + 0.0.1 + net452 + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - {174275e7-3ae4-41a6-9884-9e08a07d1101} - EntoaroxFramework - False + false - - \ No newline at end of file + + diff --git a/PlayGround/Properties/AssemblyInfo.cs b/PlayGround/Properties/AssemblyInfo.cs deleted file mode 100644 index adf0548..0000000 --- a/PlayGround/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,6 +0,0 @@ -using System.Reflection; - -[assembly: AssemblyTitle("PlayGround")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyVersion("0.0.1")] -[assembly: AssemblyFileVersion("0.0.1")] diff --git a/SeasonalImmersion/Properties/AssemblyInfo.cs b/SeasonalImmersion/Properties/AssemblyInfo.cs deleted file mode 100644 index 38b9994..0000000 --- a/SeasonalImmersion/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,6 +0,0 @@ -using System.Reflection; - -[assembly: AssemblyTitle("SeasonalImmersion")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyVersion("1.12.1")] -[assembly: AssemblyFileVersion("1.12.1")] diff --git a/SeasonalImmersion/SeasonalImmersion.csproj b/SeasonalImmersion/SeasonalImmersion.csproj index a61f0a7..bd19b32 100644 --- a/SeasonalImmersion/SeasonalImmersion.csproj +++ b/SeasonalImmersion/SeasonalImmersion.csproj @@ -1,62 +1,24 @@ - - - + + - Debug - x86 - {7AD206DC-A3A3-4DFF-9C8A-FF7F8F849DF7} - Library - Properties - Entoarox.SeasonalImmersion SeasonalImmersion - v4.5.2 - 512 - - - true - full - false - bin\Debug\ - TRACE;DEBUG - prompt - 4 - x86 - - - true - full - true - bin\Release\ - TRACE - prompt - 4 - x86 + Entoarox.SeasonalImmersion + 1.12.1 + net452 + + .\Ionic.Zip.dll False - - - - - - - - - - - - - - - + @@ -123,5 +85,5 @@ - - \ No newline at end of file + + diff --git a/ShopExpander/Properties/AssemblyInfo.cs b/ShopExpander/Properties/AssemblyInfo.cs deleted file mode 100644 index 1be65c1..0000000 --- a/ShopExpander/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,6 +0,0 @@ -using System.Reflection; - -[assembly: AssemblyTitle("ShopExpander")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyVersion("1.6.2")] -[assembly: AssemblyFileVersion("1.6.2")] diff --git a/ShopExpander/ShopExpander.csproj b/ShopExpander/ShopExpander.csproj index 5632321..cd15f6d 100644 --- a/ShopExpander/ShopExpander.csproj +++ b/ShopExpander/ShopExpander.csproj @@ -1,63 +1,21 @@ - - - + + - Debug - x86 - {99F3DE47-D310-4FD1-ACC6-8362D9D35CD7} - Library - Properties - Entoarox.ShopExpander ShopExpander - v4.5.2 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - x86 - 7.1 - - - true - full - true - bin\Release\ - TRACE - prompt - 4 - x86 + Entoarox.ShopExpander + 1.6.2 + net452 7.1 + - - - - - - - - - - + - {174275e7-3ae4-41a6-9884-9e08a07d1101} - EntoaroxFramework - False + false - - - - - - - \ No newline at end of file + + diff --git a/StardewMods.sln b/StardewMods.sln index 7615ca9..fab355b 100644 --- a/StardewMods.sln +++ b/StardewMods.sln @@ -1,191 +1,144 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27703.2026 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29020.237 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SeasonalImmersion", "SeasonalImmersion\SeasonalImmersion.csproj", "{7AD206DC-A3A3-4DFF-9C8A-FF7F8F849DF7}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".root", ".root", "{CDFE013F-220E-4430-B50A-92AE7DD51D59}" + ProjectSection(SolutionItems) = preProject + .editorconfig = .editorconfig + README.md = README.md + EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EntoaroxFramework", "Framework\EntoaroxFramework.csproj", "{174275E7-3AE4-41A6-9884-9E08A07D1101}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Black Magic", "Black Magic", "{819BEEFF-4CCF-4A5A-9B04-05DD857009E6}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdvancedLocationLoader", "AdvancedLocationLoader\AdvancedLocationLoader.csproj", "{9EA06249-2096-43E0-B616-DDD3FE731147}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Inactive", "Inactive", "{17A2E74C-37E0-4E64-9F6D-0E7560415BD9}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FurnitureAnywhere", "FurnitureAnywhere\FurnitureAnywhere.csproj", "{753CFB03-2CC1-478E-AA3D-9F42CD724709}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AdvancedLocationLoader", "AdvancedLocationLoader\AdvancedLocationLoader.csproj", "{2093F499-7320-41D9-82E2-3D48C225DBEF}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExtendedMinecart", "ExtendedMinecart\ExtendedMinecart.csproj", "{CA467BEA-932F-4133-ACA0-D634670C2488}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AdvancedLocationLoader2", "AdvancedLocationLoader2\AdvancedLocationLoader2.csproj", "{212C70A2-F2CB-4F49-8BB2-7678B0E828A7}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MoreAnimals", "MoreAnimals\MoreAnimals.csproj", "{3710E6E1-296C-481D-B577-4BA6CCAF2E94}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CustomBooks", "CustomBooks\CustomBooks.csproj", "{4DC6749D-6EBB-402C-8B56-1051384C2B4B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ShopExpander", "ShopExpander\ShopExpander.csproj", "{99F3DE47-D310-4FD1-ACC6-8362D9D35CD7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CustomPaths", "CustomPaths\CustomPaths.csproj", "{07B262A9-699B-4BB8-A412-C7A6E62C947F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XnbLoader", "XnbLoader\XnbLoader.csproj", "{3DBFB980-B11C-4171-AAD6-C39DD0AD312F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DialogueFramework", "DialogueFramework\DialogueFramework.csproj", "{04AB4256-D592-4074-8FA4-8CC2C12555BC}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FasterPaths", "FasterPaths\FasterPaths.csproj", "{B9CDF893-2243-46D1-8CB6-CE48B8973023}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DynamicDungeons", "DynamicDungeons\DynamicDungeons.csproj", "{46B6E397-C741-45C7-B753-EE1A098F8A66}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".root", ".root", "{CDFE013F-220E-4430-B50A-92AE7DD51D59}" - ProjectSection(SolutionItems) = preProject - .editorconfig = .editorconfig - README.md = README.md - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EntoaroxFramework", "Framework\EntoaroxFramework.csproj", "{D8DB5CF4-E020-4362-94B7-AAFC47574B81}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DynamicDungeons", "DynamicDungeons\DynamicDungeons.csproj", "{AE355745-73FE-45C6-BA17-DE56744BB3D6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ExtendedMinecart", "ExtendedMinecart\ExtendedMinecart.csproj", "{26551C17-0E92-455C-88B0-E5F8F033E816}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PlayGround", "PlayGround\PlayGround.csproj", "{B2A28A37-3C82-4D6D-A97E-8DA9BBCBD368}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FasterPaths", "FasterPaths\FasterPaths.csproj", "{F3FB7932-33F1-498F-B0B0-6DD013032FEF}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CustomBooks", "CustomBooks\CustomBooks.csproj", "{AE56920C-7F17-4E17-B703-6586B190EF04}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FurnitureAnywhere", "FurnitureAnywhere\FurnitureAnywhere.csproj", "{C46B4D32-E69D-4D4E-A649-580762E059A7}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CustomPaths", "CustomPaths\CustomPaths.csproj", "{19A8DB34-7A24-4576-B50F-7EB02D09E465}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LanguagePatcher", "LanguagePatcher\LanguagePatcher.csproj", "{75F03B32-DB19-4239-9967-D82C9C3365A2}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Inactive", "Inactive", "{17A2E74C-37E0-4E64-9F6D-0E7560415BD9}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MagicJunimoPet", "MagicJunimoPet\MagicJunimoPet.csproj", "{89E398E3-D8A7-4AA5-98BC-8D759F1B5A5C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Black Magic", "Black Magic", "{819BEEFF-4CCF-4A5A-9B04-05DD857009E6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MoreAnimals", "MoreAnimals\MoreAnimals.csproj", "{84F2500C-7777-41F7-AD6A-B74B6ECA54BF}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LanguagePatcher", "LanguagePatcher\LanguagePatcher.csproj", "{64EAD78D-04D6-4D96-B1B2-350865064344}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PlayGround", "PlayGround\PlayGround.csproj", "{EC78598A-BACD-4CF8-A657-1FDD0C9FEC49}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MagicJunimoPet", "MagicJunimoPet\MagicJunimoPet.csproj", "{48A2B145-8E61-4038-90E1-58367322194B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SeasonalImmersion", "SeasonalImmersion\SeasonalImmersion.csproj", "{62A65D14-235C-4CFA-A4AB-0DF266DF5D82}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SundropCity", "SundropCity\SundropCity.csproj", "{414FAE92-0580-4C5B-8187-97E260A8309A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ShopExpander", "ShopExpander\ShopExpander.csproj", "{4D1A9CED-F1DA-4045-80AE-134557D760DA}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DialogueFramework", "DialogueFramework\DialogueFramework.csproj", "{1ADC0DCB-5229-4DB7-B4B1-B58F9281F1A3}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SundropCity", "SundropCity\SundropCity.csproj", "{D6162223-CE03-4713-8D7E-102A1D445379}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdvancedLocationLoader2", "AdvancedLocationLoader2\AdvancedLocationLoader2.csproj", "{3E6083A5-7122-4E40-B720-D4436CD816B5}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XnbLoader", "XnbLoader\XnbLoader.csproj", "{78F8CDEE-5EC7-48E1-AE12-E6D76F1E15D7}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7AD206DC-A3A3-4DFF-9C8A-FF7F8F849DF7}.Debug|Any CPU.ActiveCfg = Debug|x86 - {7AD206DC-A3A3-4DFF-9C8A-FF7F8F849DF7}.Debug|x86.ActiveCfg = Debug|x86 - {7AD206DC-A3A3-4DFF-9C8A-FF7F8F849DF7}.Debug|x86.Build.0 = Debug|x86 - {7AD206DC-A3A3-4DFF-9C8A-FF7F8F849DF7}.Release|Any CPU.ActiveCfg = Release|x86 - {7AD206DC-A3A3-4DFF-9C8A-FF7F8F849DF7}.Release|x86.ActiveCfg = Release|x86 - {7AD206DC-A3A3-4DFF-9C8A-FF7F8F849DF7}.Release|x86.Build.0 = Release|x86 - {174275E7-3AE4-41A6-9884-9E08A07D1101}.Debug|Any CPU.ActiveCfg = Debug|x86 - {174275E7-3AE4-41A6-9884-9E08A07D1101}.Debug|x86.ActiveCfg = Debug|x86 - {174275E7-3AE4-41A6-9884-9E08A07D1101}.Debug|x86.Build.0 = Debug|x86 - {174275E7-3AE4-41A6-9884-9E08A07D1101}.Release|Any CPU.ActiveCfg = Release|x86 - {174275E7-3AE4-41A6-9884-9E08A07D1101}.Release|x86.ActiveCfg = Release|x86 - {174275E7-3AE4-41A6-9884-9E08A07D1101}.Release|x86.Build.0 = Release|x86 - {9EA06249-2096-43E0-B616-DDD3FE731147}.Debug|Any CPU.ActiveCfg = Debug|x86 - {9EA06249-2096-43E0-B616-DDD3FE731147}.Debug|x86.ActiveCfg = Debug|x86 - {9EA06249-2096-43E0-B616-DDD3FE731147}.Debug|x86.Build.0 = Debug|x86 - {9EA06249-2096-43E0-B616-DDD3FE731147}.Release|Any CPU.ActiveCfg = Release|x86 - {9EA06249-2096-43E0-B616-DDD3FE731147}.Release|x86.ActiveCfg = Release|x86 - {9EA06249-2096-43E0-B616-DDD3FE731147}.Release|x86.Build.0 = Release|x86 - {753CFB03-2CC1-478E-AA3D-9F42CD724709}.Debug|Any CPU.ActiveCfg = Debug|x86 - {753CFB03-2CC1-478E-AA3D-9F42CD724709}.Debug|x86.ActiveCfg = Debug|x86 - {753CFB03-2CC1-478E-AA3D-9F42CD724709}.Debug|x86.Build.0 = Debug|x86 - {753CFB03-2CC1-478E-AA3D-9F42CD724709}.Release|Any CPU.ActiveCfg = Release|x86 - {753CFB03-2CC1-478E-AA3D-9F42CD724709}.Release|x86.ActiveCfg = Release|x86 - {753CFB03-2CC1-478E-AA3D-9F42CD724709}.Release|x86.Build.0 = Release|x86 - {CA467BEA-932F-4133-ACA0-D634670C2488}.Debug|Any CPU.ActiveCfg = Debug|x86 - {CA467BEA-932F-4133-ACA0-D634670C2488}.Debug|x86.ActiveCfg = Debug|x86 - {CA467BEA-932F-4133-ACA0-D634670C2488}.Debug|x86.Build.0 = Debug|x86 - {CA467BEA-932F-4133-ACA0-D634670C2488}.Release|Any CPU.ActiveCfg = Release|x86 - {CA467BEA-932F-4133-ACA0-D634670C2488}.Release|x86.ActiveCfg = Release|x86 - {CA467BEA-932F-4133-ACA0-D634670C2488}.Release|x86.Build.0 = Release|x86 - {3710E6E1-296C-481D-B577-4BA6CCAF2E94}.Debug|Any CPU.ActiveCfg = Debug|x86 - {3710E6E1-296C-481D-B577-4BA6CCAF2E94}.Debug|x86.ActiveCfg = Debug|x86 - {3710E6E1-296C-481D-B577-4BA6CCAF2E94}.Debug|x86.Build.0 = Debug|x86 - {3710E6E1-296C-481D-B577-4BA6CCAF2E94}.Release|Any CPU.ActiveCfg = Release|x86 - {3710E6E1-296C-481D-B577-4BA6CCAF2E94}.Release|x86.ActiveCfg = Release|x86 - {3710E6E1-296C-481D-B577-4BA6CCAF2E94}.Release|x86.Build.0 = Release|x86 - {99F3DE47-D310-4FD1-ACC6-8362D9D35CD7}.Debug|Any CPU.ActiveCfg = Debug|x86 - {99F3DE47-D310-4FD1-ACC6-8362D9D35CD7}.Debug|x86.ActiveCfg = Debug|x86 - {99F3DE47-D310-4FD1-ACC6-8362D9D35CD7}.Debug|x86.Build.0 = Debug|x86 - {99F3DE47-D310-4FD1-ACC6-8362D9D35CD7}.Release|Any CPU.ActiveCfg = Release|x86 - {99F3DE47-D310-4FD1-ACC6-8362D9D35CD7}.Release|x86.ActiveCfg = Release|x86 - {99F3DE47-D310-4FD1-ACC6-8362D9D35CD7}.Release|x86.Build.0 = Release|x86 - {3DBFB980-B11C-4171-AAD6-C39DD0AD312F}.Debug|Any CPU.ActiveCfg = Debug|x86 - {3DBFB980-B11C-4171-AAD6-C39DD0AD312F}.Debug|x86.ActiveCfg = Debug|x86 - {3DBFB980-B11C-4171-AAD6-C39DD0AD312F}.Debug|x86.Build.0 = Debug|x86 - {3DBFB980-B11C-4171-AAD6-C39DD0AD312F}.Release|Any CPU.ActiveCfg = Release|x86 - {3DBFB980-B11C-4171-AAD6-C39DD0AD312F}.Release|x86.ActiveCfg = Release|x86 - {3DBFB980-B11C-4171-AAD6-C39DD0AD312F}.Release|x86.Build.0 = Release|x86 - {B9CDF893-2243-46D1-8CB6-CE48B8973023}.Debug|Any CPU.ActiveCfg = Debug|x86 - {B9CDF893-2243-46D1-8CB6-CE48B8973023}.Debug|x86.ActiveCfg = Debug|x86 - {B9CDF893-2243-46D1-8CB6-CE48B8973023}.Debug|x86.Build.0 = Debug|x86 - {B9CDF893-2243-46D1-8CB6-CE48B8973023}.Release|Any CPU.ActiveCfg = Release|x86 - {B9CDF893-2243-46D1-8CB6-CE48B8973023}.Release|x86.ActiveCfg = Release|x86 - {B9CDF893-2243-46D1-8CB6-CE48B8973023}.Release|x86.Build.0 = Release|x86 - {AE355745-73FE-45C6-BA17-DE56744BB3D6}.Debug|Any CPU.ActiveCfg = Debug|x86 - {AE355745-73FE-45C6-BA17-DE56744BB3D6}.Debug|x86.ActiveCfg = Debug|x86 - {AE355745-73FE-45C6-BA17-DE56744BB3D6}.Debug|x86.Build.0 = Debug|x86 - {AE355745-73FE-45C6-BA17-DE56744BB3D6}.Release|Any CPU.ActiveCfg = Release|x86 - {AE355745-73FE-45C6-BA17-DE56744BB3D6}.Release|x86.ActiveCfg = Release|x86 - {AE355745-73FE-45C6-BA17-DE56744BB3D6}.Release|x86.Build.0 = Release|x86 - {B2A28A37-3C82-4D6D-A97E-8DA9BBCBD368}.Debug|Any CPU.ActiveCfg = Debug|x86 - {B2A28A37-3C82-4D6D-A97E-8DA9BBCBD368}.Debug|x86.ActiveCfg = Debug|x86 - {B2A28A37-3C82-4D6D-A97E-8DA9BBCBD368}.Debug|x86.Build.0 = Debug|x86 - {B2A28A37-3C82-4D6D-A97E-8DA9BBCBD368}.Release|Any CPU.ActiveCfg = Release|x86 - {B2A28A37-3C82-4D6D-A97E-8DA9BBCBD368}.Release|x86.ActiveCfg = Release|x86 - {B2A28A37-3C82-4D6D-A97E-8DA9BBCBD368}.Release|x86.Build.0 = Release|x86 - {AE56920C-7F17-4E17-B703-6586B190EF04}.Debug|Any CPU.ActiveCfg = Debug|x86 - {AE56920C-7F17-4E17-B703-6586B190EF04}.Debug|x86.ActiveCfg = Debug|x86 - {AE56920C-7F17-4E17-B703-6586B190EF04}.Debug|x86.Build.0 = Debug|x86 - {AE56920C-7F17-4E17-B703-6586B190EF04}.Release|Any CPU.ActiveCfg = Release|x86 - {AE56920C-7F17-4E17-B703-6586B190EF04}.Release|x86.ActiveCfg = Release|x86 - {AE56920C-7F17-4E17-B703-6586B190EF04}.Release|x86.Build.0 = Release|x86 - {19A8DB34-7A24-4576-B50F-7EB02D09E465}.Debug|Any CPU.ActiveCfg = Debug|x86 - {19A8DB34-7A24-4576-B50F-7EB02D09E465}.Debug|x86.ActiveCfg = Debug|x86 - {19A8DB34-7A24-4576-B50F-7EB02D09E465}.Debug|x86.Build.0 = Debug|x86 - {19A8DB34-7A24-4576-B50F-7EB02D09E465}.Release|Any CPU.ActiveCfg = Release|x86 - {19A8DB34-7A24-4576-B50F-7EB02D09E465}.Release|x86.ActiveCfg = Release|x86 - {19A8DB34-7A24-4576-B50F-7EB02D09E465}.Release|x86.Build.0 = Release|x86 - {64EAD78D-04D6-4D96-B1B2-350865064344}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {64EAD78D-04D6-4D96-B1B2-350865064344}.Debug|Any CPU.Build.0 = Debug|Any CPU - {64EAD78D-04D6-4D96-B1B2-350865064344}.Debug|x86.ActiveCfg = Debug|Any CPU - {64EAD78D-04D6-4D96-B1B2-350865064344}.Debug|x86.Build.0 = Debug|Any CPU - {64EAD78D-04D6-4D96-B1B2-350865064344}.Release|Any CPU.ActiveCfg = Release|Any CPU - {64EAD78D-04D6-4D96-B1B2-350865064344}.Release|Any CPU.Build.0 = Release|Any CPU - {64EAD78D-04D6-4D96-B1B2-350865064344}.Release|x86.ActiveCfg = Release|Any CPU - {64EAD78D-04D6-4D96-B1B2-350865064344}.Release|x86.Build.0 = Release|Any CPU - {48A2B145-8E61-4038-90E1-58367322194B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {48A2B145-8E61-4038-90E1-58367322194B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {48A2B145-8E61-4038-90E1-58367322194B}.Debug|x86.ActiveCfg = Debug|Any CPU - {48A2B145-8E61-4038-90E1-58367322194B}.Debug|x86.Build.0 = Debug|Any CPU - {48A2B145-8E61-4038-90E1-58367322194B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {48A2B145-8E61-4038-90E1-58367322194B}.Release|Any CPU.Build.0 = Release|Any CPU - {48A2B145-8E61-4038-90E1-58367322194B}.Release|x86.ActiveCfg = Release|Any CPU - {48A2B145-8E61-4038-90E1-58367322194B}.Release|x86.Build.0 = Release|Any CPU - {414FAE92-0580-4C5B-8187-97E260A8309A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {414FAE92-0580-4C5B-8187-97E260A8309A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {414FAE92-0580-4C5B-8187-97E260A8309A}.Debug|x86.ActiveCfg = Debug|Any CPU - {414FAE92-0580-4C5B-8187-97E260A8309A}.Debug|x86.Build.0 = Debug|Any CPU - {414FAE92-0580-4C5B-8187-97E260A8309A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {414FAE92-0580-4C5B-8187-97E260A8309A}.Release|Any CPU.Build.0 = Release|Any CPU - {414FAE92-0580-4C5B-8187-97E260A8309A}.Release|x86.ActiveCfg = Release|Any CPU - {414FAE92-0580-4C5B-8187-97E260A8309A}.Release|x86.Build.0 = Release|Any CPU - {1ADC0DCB-5229-4DB7-B4B1-B58F9281F1A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1ADC0DCB-5229-4DB7-B4B1-B58F9281F1A3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1ADC0DCB-5229-4DB7-B4B1-B58F9281F1A3}.Debug|x86.ActiveCfg = Debug|Any CPU - {1ADC0DCB-5229-4DB7-B4B1-B58F9281F1A3}.Debug|x86.Build.0 = Debug|Any CPU - {1ADC0DCB-5229-4DB7-B4B1-B58F9281F1A3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1ADC0DCB-5229-4DB7-B4B1-B58F9281F1A3}.Release|Any CPU.Build.0 = Release|Any CPU - {1ADC0DCB-5229-4DB7-B4B1-B58F9281F1A3}.Release|x86.ActiveCfg = Release|Any CPU - {1ADC0DCB-5229-4DB7-B4B1-B58F9281F1A3}.Release|x86.Build.0 = Release|Any CPU - {3E6083A5-7122-4E40-B720-D4436CD816B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3E6083A5-7122-4E40-B720-D4436CD816B5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3E6083A5-7122-4E40-B720-D4436CD816B5}.Debug|x86.ActiveCfg = Debug|Any CPU - {3E6083A5-7122-4E40-B720-D4436CD816B5}.Debug|x86.Build.0 = Debug|Any CPU - {3E6083A5-7122-4E40-B720-D4436CD816B5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3E6083A5-7122-4E40-B720-D4436CD816B5}.Release|Any CPU.Build.0 = Release|Any CPU - {3E6083A5-7122-4E40-B720-D4436CD816B5}.Release|x86.ActiveCfg = Release|Any CPU - {3E6083A5-7122-4E40-B720-D4436CD816B5}.Release|x86.Build.0 = Release|Any CPU + {2093F499-7320-41D9-82E2-3D48C225DBEF}.Debug|x86.ActiveCfg = Debug|x86 + {2093F499-7320-41D9-82E2-3D48C225DBEF}.Debug|x86.Build.0 = Debug|x86 + {2093F499-7320-41D9-82E2-3D48C225DBEF}.Release|x86.ActiveCfg = Release|x86 + {2093F499-7320-41D9-82E2-3D48C225DBEF}.Release|x86.Build.0 = Release|x86 + {212C70A2-F2CB-4F49-8BB2-7678B0E828A7}.Debug|x86.ActiveCfg = Debug|x86 + {212C70A2-F2CB-4F49-8BB2-7678B0E828A7}.Debug|x86.Build.0 = Debug|x86 + {212C70A2-F2CB-4F49-8BB2-7678B0E828A7}.Release|x86.ActiveCfg = Release|x86 + {212C70A2-F2CB-4F49-8BB2-7678B0E828A7}.Release|x86.Build.0 = Release|x86 + {4DC6749D-6EBB-402C-8B56-1051384C2B4B}.Debug|x86.ActiveCfg = Debug|x86 + {4DC6749D-6EBB-402C-8B56-1051384C2B4B}.Debug|x86.Build.0 = Debug|x86 + {4DC6749D-6EBB-402C-8B56-1051384C2B4B}.Release|x86.ActiveCfg = Release|x86 + {4DC6749D-6EBB-402C-8B56-1051384C2B4B}.Release|x86.Build.0 = Release|x86 + {07B262A9-699B-4BB8-A412-C7A6E62C947F}.Debug|x86.ActiveCfg = Debug|x86 + {07B262A9-699B-4BB8-A412-C7A6E62C947F}.Debug|x86.Build.0 = Debug|x86 + {07B262A9-699B-4BB8-A412-C7A6E62C947F}.Release|x86.ActiveCfg = Release|x86 + {07B262A9-699B-4BB8-A412-C7A6E62C947F}.Release|x86.Build.0 = Release|x86 + {04AB4256-D592-4074-8FA4-8CC2C12555BC}.Debug|x86.ActiveCfg = Debug|x86 + {04AB4256-D592-4074-8FA4-8CC2C12555BC}.Debug|x86.Build.0 = Debug|x86 + {04AB4256-D592-4074-8FA4-8CC2C12555BC}.Release|x86.ActiveCfg = Release|x86 + {04AB4256-D592-4074-8FA4-8CC2C12555BC}.Release|x86.Build.0 = Release|x86 + {46B6E397-C741-45C7-B753-EE1A098F8A66}.Debug|x86.ActiveCfg = Debug|x86 + {46B6E397-C741-45C7-B753-EE1A098F8A66}.Debug|x86.Build.0 = Debug|x86 + {46B6E397-C741-45C7-B753-EE1A098F8A66}.Release|x86.ActiveCfg = Release|x86 + {46B6E397-C741-45C7-B753-EE1A098F8A66}.Release|x86.Build.0 = Release|x86 + {D8DB5CF4-E020-4362-94B7-AAFC47574B81}.Debug|x86.ActiveCfg = Debug|x86 + {D8DB5CF4-E020-4362-94B7-AAFC47574B81}.Debug|x86.Build.0 = Debug|x86 + {D8DB5CF4-E020-4362-94B7-AAFC47574B81}.Release|x86.ActiveCfg = Release|x86 + {D8DB5CF4-E020-4362-94B7-AAFC47574B81}.Release|x86.Build.0 = Release|x86 + {26551C17-0E92-455C-88B0-E5F8F033E816}.Debug|x86.ActiveCfg = Debug|x86 + {26551C17-0E92-455C-88B0-E5F8F033E816}.Debug|x86.Build.0 = Debug|x86 + {26551C17-0E92-455C-88B0-E5F8F033E816}.Release|x86.ActiveCfg = Release|x86 + {26551C17-0E92-455C-88B0-E5F8F033E816}.Release|x86.Build.0 = Release|x86 + {F3FB7932-33F1-498F-B0B0-6DD013032FEF}.Debug|x86.ActiveCfg = Debug|x86 + {F3FB7932-33F1-498F-B0B0-6DD013032FEF}.Debug|x86.Build.0 = Debug|x86 + {F3FB7932-33F1-498F-B0B0-6DD013032FEF}.Release|x86.ActiveCfg = Release|x86 + {F3FB7932-33F1-498F-B0B0-6DD013032FEF}.Release|x86.Build.0 = Release|x86 + {C46B4D32-E69D-4D4E-A649-580762E059A7}.Debug|x86.ActiveCfg = Debug|x86 + {C46B4D32-E69D-4D4E-A649-580762E059A7}.Debug|x86.Build.0 = Debug|x86 + {C46B4D32-E69D-4D4E-A649-580762E059A7}.Release|x86.ActiveCfg = Release|x86 + {C46B4D32-E69D-4D4E-A649-580762E059A7}.Release|x86.Build.0 = Release|x86 + {75F03B32-DB19-4239-9967-D82C9C3365A2}.Debug|x86.ActiveCfg = Debug|x86 + {75F03B32-DB19-4239-9967-D82C9C3365A2}.Debug|x86.Build.0 = Debug|x86 + {75F03B32-DB19-4239-9967-D82C9C3365A2}.Release|x86.ActiveCfg = Release|x86 + {75F03B32-DB19-4239-9967-D82C9C3365A2}.Release|x86.Build.0 = Release|x86 + {89E398E3-D8A7-4AA5-98BC-8D759F1B5A5C}.Debug|x86.ActiveCfg = Debug|x86 + {89E398E3-D8A7-4AA5-98BC-8D759F1B5A5C}.Debug|x86.Build.0 = Debug|x86 + {89E398E3-D8A7-4AA5-98BC-8D759F1B5A5C}.Release|x86.ActiveCfg = Release|x86 + {89E398E3-D8A7-4AA5-98BC-8D759F1B5A5C}.Release|x86.Build.0 = Release|x86 + {84F2500C-7777-41F7-AD6A-B74B6ECA54BF}.Debug|x86.ActiveCfg = Debug|x86 + {84F2500C-7777-41F7-AD6A-B74B6ECA54BF}.Debug|x86.Build.0 = Debug|x86 + {84F2500C-7777-41F7-AD6A-B74B6ECA54BF}.Release|x86.ActiveCfg = Release|x86 + {84F2500C-7777-41F7-AD6A-B74B6ECA54BF}.Release|x86.Build.0 = Release|x86 + {EC78598A-BACD-4CF8-A657-1FDD0C9FEC49}.Debug|x86.ActiveCfg = Debug|x86 + {EC78598A-BACD-4CF8-A657-1FDD0C9FEC49}.Debug|x86.Build.0 = Debug|x86 + {EC78598A-BACD-4CF8-A657-1FDD0C9FEC49}.Release|x86.ActiveCfg = Release|x86 + {EC78598A-BACD-4CF8-A657-1FDD0C9FEC49}.Release|x86.Build.0 = Release|x86 + {62A65D14-235C-4CFA-A4AB-0DF266DF5D82}.Debug|x86.ActiveCfg = Debug|x86 + {62A65D14-235C-4CFA-A4AB-0DF266DF5D82}.Debug|x86.Build.0 = Debug|x86 + {62A65D14-235C-4CFA-A4AB-0DF266DF5D82}.Release|x86.ActiveCfg = Release|x86 + {62A65D14-235C-4CFA-A4AB-0DF266DF5D82}.Release|x86.Build.0 = Release|x86 + {4D1A9CED-F1DA-4045-80AE-134557D760DA}.Debug|x86.ActiveCfg = Debug|x86 + {4D1A9CED-F1DA-4045-80AE-134557D760DA}.Debug|x86.Build.0 = Debug|x86 + {4D1A9CED-F1DA-4045-80AE-134557D760DA}.Release|x86.ActiveCfg = Release|x86 + {4D1A9CED-F1DA-4045-80AE-134557D760DA}.Release|x86.Build.0 = Release|x86 + {D6162223-CE03-4713-8D7E-102A1D445379}.Debug|x86.ActiveCfg = Debug|x86 + {D6162223-CE03-4713-8D7E-102A1D445379}.Debug|x86.Build.0 = Debug|x86 + {D6162223-CE03-4713-8D7E-102A1D445379}.Release|x86.ActiveCfg = Release|x86 + {D6162223-CE03-4713-8D7E-102A1D445379}.Release|x86.Build.0 = Release|x86 + {78F8CDEE-5EC7-48E1-AE12-E6D76F1E15D7}.Debug|x86.ActiveCfg = Debug|x86 + {78F8CDEE-5EC7-48E1-AE12-E6D76F1E15D7}.Debug|x86.Build.0 = Debug|x86 + {78F8CDEE-5EC7-48E1-AE12-E6D76F1E15D7}.Release|x86.ActiveCfg = Release|x86 + {78F8CDEE-5EC7-48E1-AE12-E6D76F1E15D7}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {7AD206DC-A3A3-4DFF-9C8A-FF7F8F849DF7} = {17A2E74C-37E0-4E64-9F6D-0E7560415BD9} - {3DBFB980-B11C-4171-AAD6-C39DD0AD312F} = {17A2E74C-37E0-4E64-9F6D-0E7560415BD9} - {AE355745-73FE-45C6-BA17-DE56744BB3D6} = {17A2E74C-37E0-4E64-9F6D-0E7560415BD9} - {B2A28A37-3C82-4D6D-A97E-8DA9BBCBD368} = {17A2E74C-37E0-4E64-9F6D-0E7560415BD9} - {AE56920C-7F17-4E17-B703-6586B190EF04} = {17A2E74C-37E0-4E64-9F6D-0E7560415BD9} - {64EAD78D-04D6-4D96-B1B2-350865064344} = {819BEEFF-4CCF-4A5A-9B04-05DD857009E6} + {4DC6749D-6EBB-402C-8B56-1051384C2B4B} = {17A2E74C-37E0-4E64-9F6D-0E7560415BD9} + {07B262A9-699B-4BB8-A412-C7A6E62C947F} = {17A2E74C-37E0-4E64-9F6D-0E7560415BD9} + {46B6E397-C741-45C7-B753-EE1A098F8A66} = {17A2E74C-37E0-4E64-9F6D-0E7560415BD9} + {75F03B32-DB19-4239-9967-D82C9C3365A2} = {819BEEFF-4CCF-4A5A-9B04-05DD857009E6} + {EC78598A-BACD-4CF8-A657-1FDD0C9FEC49} = {17A2E74C-37E0-4E64-9F6D-0E7560415BD9} + {62A65D14-235C-4CFA-A4AB-0DF266DF5D82} = {17A2E74C-37E0-4E64-9F6D-0E7560415BD9} + {78F8CDEE-5EC7-48E1-AE12-E6D76F1E15D7} = {17A2E74C-37E0-4E64-9F6D-0E7560415BD9} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {71BE6CBB-13AD-4DAC-8B44-35F22FBE1E8F} diff --git a/SundropCity/Properties/AssemblyInfo.cs b/SundropCity/Properties/AssemblyInfo.cs deleted file mode 100644 index 541a45b..0000000 --- a/SundropCity/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("SundropCity")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("SundropCity")] -[assembly: AssemblyCopyright("Copyright © 2019")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("414fae92-0580-4c5b-8187-97e260a8309a")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/SundropCity/SundropCity.csproj b/SundropCity/SundropCity.csproj index 0690f20..0d1b1b2 100644 --- a/SundropCity/SundropCity.csproj +++ b/SundropCity/SundropCity.csproj @@ -1,73 +1,16 @@ - - - + + - Debug - AnyCPU - {414FAE92-0580-4C5B-8187-97E260A8309A} - Library - Properties - SundropCity SundropCity - v4.5 - 512 - true - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - x86 - 7.1 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - x86 + SundropCity + 0.1.0 + net452 7.1 + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + + diff --git a/XnbLoader/Properties/AssemblyInfo.cs b/XnbLoader/Properties/AssemblyInfo.cs deleted file mode 100644 index e948866..0000000 --- a/XnbLoader/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,6 +0,0 @@ -using System.Reflection; - -[assembly: AssemblyTitle("XnbLoader")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyVersion("1.1.11")] -[assembly: AssemblyFileVersion("1.1.11")] diff --git a/XnbLoader/XnbLoader.csproj b/XnbLoader/XnbLoader.csproj index b42966c..0c2d121 100644 --- a/XnbLoader/XnbLoader.csproj +++ b/XnbLoader/XnbLoader.csproj @@ -1,59 +1,20 @@ - - - + + - Debug - x86 - {3DBFB980-B11C-4171-AAD6-C39DD0AD312F} - Library - Properties - Entoarox.XnbLoader XnbLoader - v4.5.2 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - x86 - - - true - full - true - bin\Release\ - TRACE - prompt - 4 - x86 + Entoarox.XnbLoader + 1.1.11 + net452 + - - - - - - - - - - - - - + - {174275e7-3ae4-41a6-9884-9e08a07d1101} - EntoaroxFramework - False + false - - \ No newline at end of file + + From d41b4209caeace3a626892ad2655f0e8a6bfd6ee Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Mon, 1 Jul 2019 14:26:58 -0400 Subject: [PATCH 4/6] update for SMAPI 3.0 loading mods earlier The game is no longer fully initialised when Entry is called, so this commit moves affected logic into GameLaunched. --- AdvancedLocationLoader/ModEntry.cs | 16 ++++++++--- AdvancedLocationLoader2/ALLModEntry.cs | 27 ++++++++++++++----- CustomBooks/ModEntry.cs | 1 + CustomPaths/CustomPathsMod.cs | 13 +++++++++ DialogueFramework/DialogueFrameworkMod.cs | 6 +++++ DynamicDungeons/ModEntry.cs | 12 +++++++++ ExtendedMinecart/ModEntry.cs | 1 + FasterPaths/ModEntry.cs | 19 ++++++++++--- Framework/Core/EntoaroxFrameworkMod.cs | 2 ++ FurnitureAnywhere/ModEntry.cs | 1 + MagicJunimoPet/MJPModEntry.cs | 5 ++++ MoreAnimals/ModEntry.cs | 19 +++++++++---- PlayGround/ModWrapper.cs | 3 +++ SeasonalImmersion/ModEntry.cs | 19 +++++++++---- ShopExpander/ModEntry.cs | 1 + SundropCity/SundropCityMod.cs | 33 ++++++++++++++++------- XnbLoader/ModEntry.cs | 18 ++++++++++--- 17 files changed, 157 insertions(+), 39 deletions(-) diff --git a/AdvancedLocationLoader/ModEntry.cs b/AdvancedLocationLoader/ModEntry.cs index af9d1ae..bae1244 100644 --- a/AdvancedLocationLoader/ModEntry.cs +++ b/AdvancedLocationLoader/ModEntry.cs @@ -18,6 +18,7 @@ namespace Entoarox.AdvancedLocationLoader { + /// The mod entry class. internal class ModEntry : Mod { /********* @@ -46,6 +47,7 @@ public override void Entry(IModHelper helper) ModEntry.Strings = helper.Translation; MoreEvents.ActionTriggered += this.OnActionTriggered; + helper.Events.GameLoop.GameLaunched += this.OnGameLaunched; helper.Events.Specialised.UnvalidatedUpdateTicked += this.OnUnvalidatedUpdateTick; helper.Events.Player.Warped += this.OnWarped; helper.Events.Player.Warped += this.DrawFarBack; @@ -54,10 +56,6 @@ public override void Entry(IModHelper helper) this.Helper.Content.RegisterSerializerType(); this.Helper.Content.RegisterSerializerType(); this.Helper.Content.RegisterSerializerType(); - - // load content packs - ContentPackData[] contentPacks = this.LoadContentPackData().ToArray(); - this.Patcher = new Patcher(this.Monitor, this.Helper.Content, contentPacks); } internal static void UpdateConditionalEdits() @@ -97,6 +95,16 @@ internal static void UpdateTilesheets() /********* ** Private methods *********/ + /// Raised after the game is launched, right before the first update tick. This happens once per game session (unrelated to loading saves). All mods are loaded and initialised at this point, so this is a good time to set up mod integrations. + /// The event sender. + /// The event data. + private void OnGameLaunched(object sender, GameLaunchedEventArgs e) + { + // load content packs + ContentPackData[] contentPacks = this.LoadContentPackData().ToArray(); + this.Patcher = new Patcher(this.Monitor, this.Helper.Content, contentPacks); + } + /// Load the data from each available content pack. private IEnumerable LoadContentPackData() { diff --git a/AdvancedLocationLoader2/ALLModEntry.cs b/AdvancedLocationLoader2/ALLModEntry.cs index f056d0f..0a784cb 100644 --- a/AdvancedLocationLoader2/ALLModEntry.cs +++ b/AdvancedLocationLoader2/ALLModEntry.cs @@ -1,23 +1,36 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - using StardewModdingAPI; +using StardewModdingAPI.Events; namespace Entoarox.AdvancedLocationLoader2 { + /// The mod entry class. public class ALLModEntry : Mod { + /********* + ** Public methods + *********/ + /// The mod entry point, called after the mod is first loaded. + /// Provides simplified APIs for writing mods. public override void Entry(IModHelper helper) + { + helper.Events.GameLoop.GameLaunched += this.OnGameLaunched; + } + + + /********* + ** Private methods + *********/ + /// Raised after the game is launched, right before the first update tick. This happens once per game session (unrelated to loading saves). All mods are loaded and initialised at this point, so this is a good time to set up mod integrations. + /// The event sender. + /// The event data. + private void OnGameLaunched(object sender, GameLaunchedEventArgs e) { this.LoadContent(); } private void LoadContent() { - foreach(var pack in this.Helper.ContentPacks.GetOwned()) + foreach (var pack in this.Helper.ContentPacks.GetOwned()) { } diff --git a/CustomBooks/ModEntry.cs b/CustomBooks/ModEntry.cs index ed4c175..1367b2a 100644 --- a/CustomBooks/ModEntry.cs +++ b/CustomBooks/ModEntry.cs @@ -9,6 +9,7 @@ namespace Entoarox.CustomBooks { + /// The mod entry class. internal class ModEntry : Mod { /********* diff --git a/CustomPaths/CustomPathsMod.cs b/CustomPaths/CustomPathsMod.cs index 21b2566..7229c39 100644 --- a/CustomPaths/CustomPathsMod.cs +++ b/CustomPaths/CustomPathsMod.cs @@ -11,14 +11,27 @@ namespace Entoarox.CustomPaths { + /// The mod entry class. public class CustomPathsMod : Mod { public static Dictionary Map = new Dictionary(); private static readonly string[] Seasons = { "spring", "summer", "fall", "winter" }; private PlayerModifier Modifier; + /// The mod entry point, called after the mod is first loaded. + /// Provides simplified APIs for writing mods. public override void Entry(IModHelper helper) { + helper.Events.GameLoop.GameLaunched += this.OnGameLaunched; + } + + /// Raised after the game is launched, right before the first update tick. This happens once per game session (unrelated to loading saves). All mods are loaded and initialised at this point, so this is a good time to set up mod integrations. + /// The event sender. + /// The event data. + private void OnGameLaunched(object sender, GameLaunchedEventArgs e) + { + var helper = this.Helper; + foreach (IContentPack pack in helper.ContentPacks.GetOwned()) { foreach (CustomPathConfig path in pack.ReadJsonFile>("paths.json")) diff --git a/DialogueFramework/DialogueFrameworkMod.cs b/DialogueFramework/DialogueFrameworkMod.cs index f5d1ef8..35338cc 100644 --- a/DialogueFramework/DialogueFrameworkMod.cs +++ b/DialogueFramework/DialogueFrameworkMod.cs @@ -8,13 +8,19 @@ namespace DialogueFramework { + /// The mod entry class. public class DialogueFrameworkMod : Mod { internal static ModApi Api; + + /// The mod entry point, called after the mod is first loaded. + /// Provides simplified APIs for writing mods. public override void Entry(IModHelper helper) { Api = new ModApi(); } + + /// Get an API that other mods can access. This is always called after . public override object GetApi() { return Api; diff --git a/DynamicDungeons/ModEntry.cs b/DynamicDungeons/ModEntry.cs index 306b3de..38d7c56 100644 --- a/DynamicDungeons/ModEntry.cs +++ b/DynamicDungeons/ModEntry.cs @@ -14,6 +14,7 @@ namespace Entoarox.DynamicDungeons { + /// The mod entry class. internal class ModEntry : Mod { /********* @@ -34,12 +35,23 @@ internal class ModEntry : Mod /********* ** Public methods *********/ + /// The mod entry point, called after the mod is first loaded. + /// Provides simplified APIs for writing mods. public override void Entry(IModHelper helper) { ModEntry.SMonitor = this.Monitor; ModEntry.SHelper = this.Helper; helper.Events.GameLoop.UpdateTicked+= this.GameEvents_UpdateTick; + helper.Events.GameLoop.GameLaunched += this.OnGameLaunched; helper.ConsoleCommands.Add("dd_fromseed", "dd_fromseed | Generate a dungeon from a specific seed", this.Command_Fromseed); + } + + /// Raised after the game is launched, right before the first update tick. This happens once per game session (unrelated to loading saves). All mods are loaded and initialised at this point, so this is a good time to set up mod integrations. + /// The event sender. + /// The event data. + private void OnGameLaunched(object sender, GameLaunchedEventArgs e) + { + var helper = this.Helper; this.InfoBook = new BookMenu(new List { new TitlePage(helper.Translation.Get("Book_Title"), helper.Translation.Get("Book_Subtitle"), helper.Translation.Get("Book_Introduction")), diff --git a/ExtendedMinecart/ModEntry.cs b/ExtendedMinecart/ModEntry.cs index 1488fdc..1d15201 100644 --- a/ExtendedMinecart/ModEntry.cs +++ b/ExtendedMinecart/ModEntry.cs @@ -16,6 +16,7 @@ */ namespace Entoarox.ExtendedMinecart { + /// The mod entry class. internal class ModEntry : Mod { /********* diff --git a/FasterPaths/ModEntry.cs b/FasterPaths/ModEntry.cs index 830e3d3..66eb88a 100644 --- a/FasterPaths/ModEntry.cs +++ b/FasterPaths/ModEntry.cs @@ -3,11 +3,13 @@ using Entoarox.Framework; using Microsoft.Xna.Framework; using StardewModdingAPI; +using StardewModdingAPI.Events; using StardewValley; using StardewValley.TerrainFeatures; namespace Entoarox.FasterPaths { + /// The mod entry class. [SuppressMessage("ReSharper", "UnusedMember.Global", Justification = "Used by SMAPI.")] internal class ModEntry : Mod { @@ -28,8 +30,21 @@ public override void Entry(IModHelper helper) { this.Config = this.Helper.ReadConfig(); + helper.Events.GameLoop.GameLaunched += this.OnGameLaunched; helper.Events.GameLoop.UpdateTicked += this.OnUpdateTicked; + helper.ConsoleCommands.Add("fp_info", "Gives info about the path you are currently standing on", this.CommandInfo); + } + + + /********* + ** Protected methods + *********/ + /// Raised after the game is launched, right before the first update tick. This happens once per game session (unrelated to loading saves). All mods are loaded and initialised at this point, so this is a good time to set up mod integrations. + /// The event sender. + /// The event data. + private void OnGameLaunched(object sender, GameLaunchedEventArgs e) + { this.Modifiers = new[] { new PlayerModifier { WalkSpeedModifier = this.Config.WoodFloorBoost, RunSpeedModifier = this.Config.WoodFloorBoost }, @@ -46,10 +61,6 @@ public override void Entry(IModHelper helper) this.Helper.Player().Modifiers.Add(new PlayerModifier { WalkSpeedModifier = this.Config.WalkSpeedBoost, RunSpeedModifier = this.Config.RunSpeedBoost }); } - - /********* - ** Protected methods - *********/ /// Raised after the game state is updated (≈60 times per second). /// The event sender. /// The event arguments. diff --git a/Framework/Core/EntoaroxFrameworkMod.cs b/Framework/Core/EntoaroxFrameworkMod.cs index b647363..3233c95 100644 --- a/Framework/Core/EntoaroxFrameworkMod.cs +++ b/Framework/Core/EntoaroxFrameworkMod.cs @@ -26,6 +26,7 @@ namespace Entoarox.Framework.Core { + /// The mod entry class. internal class EntoaroxFrameworkMod : Mod { /********* @@ -157,6 +158,7 @@ public override void Entry(IModHelper helper) helper.Events.Input.ButtonReleased += this.OnButtonReleased; } + /// Get an API that other mods can access. This is always called after . public override object GetApi() { return new EntoaroxFrameworkAPI(); diff --git a/FurnitureAnywhere/ModEntry.cs b/FurnitureAnywhere/ModEntry.cs index badfb14..cfade9c 100644 --- a/FurnitureAnywhere/ModEntry.cs +++ b/FurnitureAnywhere/ModEntry.cs @@ -14,6 +14,7 @@ namespace Entoarox.FurnitureAnywhere { + /// The mod entry class. [SuppressMessage("ReSharper", "UnusedMember.Global", Justification = "Used by SMAPI.")] internal class ModEntry : Mod { diff --git a/MagicJunimoPet/MJPModEntry.cs b/MagicJunimoPet/MJPModEntry.cs index 7fa8452..33d4978 100644 --- a/MagicJunimoPet/MJPModEntry.cs +++ b/MagicJunimoPet/MJPModEntry.cs @@ -8,11 +8,15 @@ namespace MagicJunimoPet { + /// The mod entry class. public class MJPModEntry : Mod { internal static string TexturePath; internal static MagicJunimo Junimo; internal static IModHelper SHelper; + + /// The mod entry point, called after the mod is first loaded. + /// Provides simplified APIs for writing mods. public override void Entry(IModHelper helper) { SHelper = helper; @@ -22,6 +26,7 @@ public override void Entry(IModHelper helper) helper.Events.GameLoop.DayStarted += this.OnDayStarted; helper.Events.Input.ButtonReleased += this.OnButtonReleased; } + private void SpawnJunimo() { Junimo = new MagicJunimo diff --git a/MoreAnimals/ModEntry.cs b/MoreAnimals/ModEntry.cs index 87b8c42..9e9cf13 100644 --- a/MoreAnimals/ModEntry.cs +++ b/MoreAnimals/ModEntry.cs @@ -24,6 +24,7 @@ namespace Entoarox.MorePetsAndAnimals { + /// The mod entry class. internal class ModEntry : Mod { /********* @@ -76,6 +77,7 @@ public override void Entry(IModHelper helper) ModEntry.SMonitor = this.Monitor; // Event listeners + helper.Events.GameLoop.GameLaunched += this.OnGameLaunched; helper.Events.GameLoop.ReturnedToTitle += this.OnReturnedToTitle; helper.Events.GameLoop.SaveLoaded += this.LoadSkinMap; helper.Events.GameLoop.Saving += this.SaveSkinMap; @@ -87,7 +89,13 @@ public override void Entry(IModHelper helper) helper.ConsoleCommands.Add("list_animal_types", "Lists all animal types on your farm.", this.OnCommandReceived); helper.ConsoleCommands.Add("list_animal_skins", "Lists all animal skins used on your farm.", this.OnCommandReceived); helper.ConsoleCommands.Add("reset_animal_skins", "Lists all animal skins used on your farm.", this.OnCommandReceived); + } + /// Raised after the game is launched, right before the first update tick. This happens once per game session (unrelated to loading saves). All mods are loaded and initialised at this point, so this is a good time to set up mod integrations. + /// The event sender. + /// The event data. + private void OnGameLaunched(object sender, GameLaunchedEventArgs e) + { // Prepare BabyDuck override try { @@ -95,9 +103,9 @@ public override void Entry(IModHelper helper) Game1.content.Load(asset); BabyDuck = new AnimalSkin("BabyDuck", 0, asset); } - catch (Exception e) + catch (Exception ex) { - this.Monitor.Log("Unable to patch BabyDuck due to exception:", LogLevel.Error, e); + this.Monitor.Log("Unable to patch BabyDuck due to exception:", LogLevel.Error, ex); } // Register default supported animal types @@ -114,9 +122,9 @@ public override void Entry(IModHelper helper) Api.RegisterAnimalType("White Chicken"); Api.RegisterAnimalType("White Cow"); - if(Config.ExtraTypes!=null && Config.ExtraTypes.Length>0) - foreach (string type in Config.ExtraTypes) - Api.RegisterAnimalType(type, false); + if (Config.ExtraTypes != null && Config.ExtraTypes.Length > 0) + foreach (string type in Config.ExtraTypes) + Api.RegisterAnimalType(type, false); // Register default supported pet types Api.RegisterPetType("cat", typeof(Cat)); @@ -125,6 +133,7 @@ public override void Entry(IModHelper helper) // Trigger setup this.DoSetup(); } + private void DoSetup() { if (ModEntry.Config.AnimalsOnly) diff --git a/PlayGround/ModWrapper.cs b/PlayGround/ModWrapper.cs index bb3f796..bb8fe76 100644 --- a/PlayGround/ModWrapper.cs +++ b/PlayGround/ModWrapper.cs @@ -17,8 +17,11 @@ namespace PlayGround { + /// The mod entry class. class ModWrapper : Mod { + /// The mod entry point, called after the mod is first loaded. + /// Provides simplified APIs for writing mods. public override void Entry(IModHelper helper) { this.Helper.ConsoleCommands.Add("pg_debug", "pg_debug ", (cmd, args) => diff --git a/SeasonalImmersion/ModEntry.cs b/SeasonalImmersion/ModEntry.cs index 5fe6145..4ac22e5 100644 --- a/SeasonalImmersion/ModEntry.cs +++ b/SeasonalImmersion/ModEntry.cs @@ -16,6 +16,7 @@ namespace Entoarox.SeasonalImmersion { + /// The mod entry class. public class ModEntry : Mod { /********* @@ -63,6 +64,18 @@ public override void Entry(IModHelper helper) this.Config = helper.ReadConfig(); ModEntry.FilePath = helper.DirectoryPath; + helper.Events.GameLoop.GameLaunched += this.OnGameLaunched; + } + + + /********* + ** Protected methods + *********/ + /// Raised after the game is launched, right before the first update tick. This happens once per game session (unrelated to loading saves). All mods are loaded and initialised at this point, so this is a good time to set up mod integrations. + /// The event sender. + /// The event data. + private void OnGameLaunched(object sender, GameLaunchedEventArgs e) + { try { this.VerboseLog("Loading Seasonal Immersion ContentPack..."); @@ -73,13 +86,9 @@ public override void Entry(IModHelper helper) this.Monitor.Log($"Could not load ContentPack\n{ex.Message}\n{ex.StackTrace}", LogLevel.Error); } - helper.Content.AssetLoaders.Add(new SeasonalTextureLoader()); + this.Helper.Content.AssetLoaders.Add(new SeasonalTextureLoader()); } - - /********* - ** Protected methods - *********/ private Texture2D PreMultiply(Texture2D texture) { try diff --git a/ShopExpander/ModEntry.cs b/ShopExpander/ModEntry.cs index 5364a45..d9810fd 100644 --- a/ShopExpander/ModEntry.cs +++ b/ShopExpander/ModEntry.cs @@ -10,6 +10,7 @@ namespace Entoarox.ShopExpander { + /// The mod entry class. internal class ModEntry : Mod { /********* diff --git a/SundropCity/SundropCityMod.cs b/SundropCity/SundropCityMod.cs index 717ccda..6c3db35 100644 --- a/SundropCity/SundropCityMod.cs +++ b/SundropCity/SundropCityMod.cs @@ -22,6 +22,7 @@ namespace SundropCity { + /// The mod entry class. public class SundropCityMod : Mod { internal static IModHelper SHelper; @@ -31,6 +32,8 @@ public class SundropCityMod : Mod private List Maps; + /// The mod entry point, called after the mod is first loaded. + /// Provides simplified APIs for writing mods. public override void Entry(IModHelper helper) { // Define internals @@ -40,9 +43,27 @@ public override void Entry(IModHelper helper) // Add custom loader to make custom tree work helper.Content.AssetLoaders.Add(new SundropLoader()); + // Setup events + helper.Events.GameLoop.GameLaunched += this.OnGameLaunched; + helper.Events.GameLoop.SaveLoaded += this.OnSaveLoaded; + helper.Events.GameLoop.Saved += this.OnSaved; + helper.Events.GameLoop.Saving += this.OnSaving; + + // Handle ALL not providing extra layer drawing + if (!helper.ModRegistry.IsLoaded("Entoarox.AdvancedLocationLoader") || helper.ModRegistry.Get("Entoarox.AdvancedLocationLoader").Manifest.Version.IsOlderThan("1.5.0")) + helper.Events.Player.Warped += this.OnWarped; + } + + /// Raised after the game is launched, right before the first update tick. This happens once per game session (unrelated to loading saves). All mods are loaded and initialised at this point, so this is a good time to set up mod integrations. + /// The event sender. + /// The event data. + private void OnGameLaunched(object sender, GameLaunchedEventArgs e) + { + var helper = this.Helper; + // Load maps List maps = new List(); - foreach(string file in Directory.EnumerateFiles(Path.Combine(helper.DirectoryPath,"assets","Maps"))) + foreach (string file in Directory.EnumerateFiles(Path.Combine(this.Helper.DirectoryPath, "assets", "Maps"))) { string ext = Path.GetExtension(file); this.Monitor.Log($"Checking file: {file} (ext: {ext})", LogLevel.Trace); @@ -52,7 +73,7 @@ public override void Entry(IModHelper helper) this.Monitor.Log("Found sundrop location: " + map, LogLevel.Trace); try { - helper.Content.Load(Path.Combine("assets", "Maps", map)); + this.Helper.Content.Load(Path.Combine("assets", "Maps", map)); maps.Add(map); } catch(Exception err) @@ -62,14 +83,6 @@ public override void Entry(IModHelper helper) } this.Maps = maps; - // Setup events - helper.Events.GameLoop.SaveLoaded += this.OnSaveLoaded; - helper.Events.GameLoop.Saved += this.OnSaved; - helper.Events.GameLoop.Saving += this.OnSaving; - - // Handle ALL not providing extra layer drawing - if (!helper.ModRegistry.IsLoaded("Entoarox.AdvancedLocationLoader") || helper.ModRegistry.Get("Entoarox.AdvancedLocationLoader").Manifest.Version.IsOlderThan("1.5.0")) - helper.Events.Player.Warped += this.OnWarped; JObject dict = helper.Content.Load("assets/Data/ParkingSpots.json"); foreach(JProperty map in dict.Properties()) diff --git a/XnbLoader/ModEntry.cs b/XnbLoader/ModEntry.cs index 7680676..8b8b5cf 100644 --- a/XnbLoader/ModEntry.cs +++ b/XnbLoader/ModEntry.cs @@ -3,10 +3,12 @@ using System.IO; using Entoarox.Framework; using StardewModdingAPI; +using StardewModdingAPI.Events; using StardewValley; namespace Entoarox.XnbLoader { + /// The mod entry class. [SuppressMessage("ReSharper", "UnusedMember.Global", Justification = "Used by SMAPI.")] internal class ModEntry : Mod { @@ -54,6 +56,18 @@ public override void Entry(IModHelper helper) { this.Config = helper.ReadConfig(); + helper.Events.GameLoop.GameLaunched += this.OnGameLaunched; + } + + + /********* + ** Private methods + *********/ + /// Raised after the game is launched, right before the first update tick. This happens once per game session (unrelated to loading saves). All mods are loaded and initialised at this point, so this is a good time to set up mod integrations. + /// The event sender. + /// The event data. + private void OnGameLaunched(object sender, GameLaunchedEventArgs e) + { // prepare directory structure string contentPath = Path.Combine(this.Helper.DirectoryPath, this.ContentFolderName); foreach (string path in this.PathsToCreate) @@ -68,10 +82,6 @@ public override void Entry(IModHelper helper) this.Monitor.Log($"Found and redirected [{overrides}] files", LogLevel.Info); } - - /********* - ** Private methods - *********/ /// Recursively find XNBs and register them with the content registry. /// The root path being searched. /// The path for which to load XNBs. From ba1103d82b290a69991dcd2e092e0008cfa0feb3 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Mon, 1 Jul 2019 14:27:29 -0400 Subject: [PATCH 5/6] update legacy APIs for SMAPI 3.0 --- Framework/Core/EntoaroxFrameworkMod.cs | 9 ++++----- SeasonalImmersion/ModEntry.cs | 16 +++++++++++----- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/Framework/Core/EntoaroxFrameworkMod.cs b/Framework/Core/EntoaroxFrameworkMod.cs index 3233c95..14d7f70 100644 --- a/Framework/Core/EntoaroxFrameworkMod.cs +++ b/Framework/Core/EntoaroxFrameworkMod.cs @@ -553,15 +553,14 @@ private void OnSaving(object sender, SavingEventArgs e) } Game1.player.Items = this.Serialize(data, Game1.player.Items.ToList()); var house = (Game1.getLocationFromName("FarmHouse") as FarmHouse); - if (house.fridge.Value != null) - house.fridge.Value.items.Set(this.Serialize(data, house.fridge.Value.items.ToList())); + house.fridge.Value?.items.Set(this.Serialize(data, house.fridge.Value.items.ToList())); this.Monitor.Log("Found and serialized [" + data.Count + "] Item instances", LogLevel.Trace); this.Monitor.Log("Found and serialized [" + features.Count + "] TerrainFeature instances", LogLevel.Trace); this.Monitor.Log("Found and serialized [" + locations.Count + "] GameLocation instances", LogLevel.Trace); string path = Path.Combine(Constants.CurrentSavePath, "Entoarox.Framework"); - this.Helper.WriteJsonFile(Path.Combine(path, "CustomItems.json"), data); - this.Helper.WriteJsonFile(Path.Combine(path, "CustomTerrain.json"), features); - this.Helper.WriteJsonFile(Path.Combine(path, "CustomLocations.json"), locations); + this.Helper.Data.WriteJsonFile(Path.Combine(path, "CustomItems.json"), data); + this.Helper.Data.WriteJsonFile(Path.Combine(path, "CustomTerrain.json"), features); + this.Helper.Data.WriteJsonFile(Path.Combine(path, "CustomLocations.json"), locations); ItemEvents.FireAfterSerialize(); this.Monitor.Log("Packing complete", LogLevel.Trace); /* diff --git a/SeasonalImmersion/ModEntry.cs b/SeasonalImmersion/ModEntry.cs index 4ac22e5..dd77bd5 100644 --- a/SeasonalImmersion/ModEntry.cs +++ b/SeasonalImmersion/ModEntry.cs @@ -205,8 +205,8 @@ private void LoadContent() ModEntry.SeasonTextures.Add(name, textures); } - PlayerEvents.Warped += this.PlayerEvents_Warped; - TimeEvents.AfterDayStarted += this.TimeEvents_AfterDayStarted; + this.Helper.Events.Player.Warped += this.OnWarped; + this.Helper.Events.GameLoop.DayStarted += this.OnDayStarted; this.Monitor.Log($"ContentPack processed, found [{ModEntry.SeasonTextures.Count}] seasonal files", LogLevel.Info); } @@ -318,15 +318,21 @@ private void UpdateTextures() } } - private void TimeEvents_AfterDayStarted(object s, EventArgs e) + /// Raised after the game begins a new day (including when the player loads a save). + /// The event sender. + /// The event data. + private void OnDayStarted(object sender, DayStartedEventArgs e) { if (Game1.dayOfMonth == 1) this.UpdateTextures(); } - private void PlayerEvents_Warped(object s, EventArgsPlayerWarped e) + /// Raised after a player warps to a new location. NOTE: this event is currently only raised for the current player. + /// The event sender. + /// The event data. + private void OnWarped(object sender, WarpedEventArgs e) { - if (e.NewLocation.Name == "Farm" || (e.PriorLocation != null && e.PriorLocation.IsOutdoors != e.NewLocation.IsOutdoors)) + if (e.NewLocation.Name == "Farm" || (e.OldLocation != null && e.OldLocation.IsOutdoors != e.NewLocation.IsOutdoors)) this.UpdateTextures(); } From e1e26595f7b720ec366fe53d0aab3c8569cf41b3 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Mon, 1 Jul 2019 14:59:21 -0400 Subject: [PATCH 6/6] add .targets file for common build settings --- .../AdvancedLocationLoader.csproj | 3 ++- .../AdvancedLocationLoader2.csproj | 3 ++- CustomBooks/CustomBooks.csproj | 3 ++- CustomPaths/CustomPaths.csproj | 3 ++- DialogueFramework/DialogueFramework.csproj | 3 ++- DynamicDungeons/DynamicDungeons.csproj | 2 ++ ExtendedMinecart/ExtendedMinecart.csproj | 3 ++- FasterPaths/FasterPaths.csproj | 3 ++- Framework/EntoaroxFramework.csproj | 3 ++- FurnitureAnywhere/FurnitureAnywhere.csproj | 3 ++- LanguagePatcher/LanguagePatcher.csproj | 5 ++--- MagicJunimoPet/MagicJunimoPet.csproj | 3 ++- MoreAnimals/MoreAnimals.csproj | 3 ++- PlayGround/PlayGround.csproj | 2 ++ SeasonalImmersion/SeasonalImmersion.csproj | 2 ++ ShopExpander/ShopExpander.csproj | 3 ++- StardewMods.sln | 3 +++ SundropCity/SundropCity.csproj | 3 ++- XnbLoader/XnbLoader.csproj | 2 ++ common.targets | 15 +++++++++++++++ 20 files changed, 54 insertions(+), 16 deletions(-) create mode 100644 common.targets diff --git a/AdvancedLocationLoader/AdvancedLocationLoader.csproj b/AdvancedLocationLoader/AdvancedLocationLoader.csproj index 88c05f0..a560e89 100644 --- a/AdvancedLocationLoader/AdvancedLocationLoader.csproj +++ b/AdvancedLocationLoader/AdvancedLocationLoader.csproj @@ -5,7 +5,6 @@ Entoarox.AdvancedLocationLoader 1.5.0 net452 - 7.1 @@ -19,4 +18,6 @@ + + diff --git a/AdvancedLocationLoader2/AdvancedLocationLoader2.csproj b/AdvancedLocationLoader2/AdvancedLocationLoader2.csproj index c51cbd1..1a42cff 100644 --- a/AdvancedLocationLoader2/AdvancedLocationLoader2.csproj +++ b/AdvancedLocationLoader2/AdvancedLocationLoader2.csproj @@ -5,7 +5,6 @@ Entoarox.AdvancedLocationLoader2 1.5.0 net452 - 7.1 @@ -19,4 +18,6 @@ + + diff --git a/CustomBooks/CustomBooks.csproj b/CustomBooks/CustomBooks.csproj index 1d33f1f..fb3d7bc 100644 --- a/CustomBooks/CustomBooks.csproj +++ b/CustomBooks/CustomBooks.csproj @@ -5,7 +5,6 @@ Entoarox.CustomBooks 0.1.0 net452 - 7.1 @@ -19,4 +18,6 @@ + + diff --git a/CustomPaths/CustomPaths.csproj b/CustomPaths/CustomPaths.csproj index a02f001..221d7eb 100644 --- a/CustomPaths/CustomPaths.csproj +++ b/CustomPaths/CustomPaths.csproj @@ -5,7 +5,6 @@ Entoarox.CustomPaths 1.1.2 net452 - 7.1 @@ -19,4 +18,6 @@ + + diff --git a/DialogueFramework/DialogueFramework.csproj b/DialogueFramework/DialogueFramework.csproj index 77771c3..e326065 100644 --- a/DialogueFramework/DialogueFramework.csproj +++ b/DialogueFramework/DialogueFramework.csproj @@ -5,7 +5,6 @@ DialogueFramework 1.0.0 net452 - 7.1 true @@ -14,4 +13,6 @@ + + diff --git a/DynamicDungeons/DynamicDungeons.csproj b/DynamicDungeons/DynamicDungeons.csproj index 6ec5072..32fefb4 100644 --- a/DynamicDungeons/DynamicDungeons.csproj +++ b/DynamicDungeons/DynamicDungeons.csproj @@ -11,4 +11,6 @@ + + diff --git a/ExtendedMinecart/ExtendedMinecart.csproj b/ExtendedMinecart/ExtendedMinecart.csproj index d40c7e2..c9c0cf0 100644 --- a/ExtendedMinecart/ExtendedMinecart.csproj +++ b/ExtendedMinecart/ExtendedMinecart.csproj @@ -5,7 +5,6 @@ Entoarox.ExtendedMinecart 1.8.2 net452 - 7.1 @@ -18,4 +17,6 @@ + + diff --git a/FasterPaths/FasterPaths.csproj b/FasterPaths/FasterPaths.csproj index e3c86b9..438f2ab 100644 --- a/FasterPaths/FasterPaths.csproj +++ b/FasterPaths/FasterPaths.csproj @@ -5,7 +5,6 @@ Entoarox.FasterPaths 1.3.5 net452 - 7.1 @@ -18,4 +17,6 @@ + + diff --git a/Framework/EntoaroxFramework.csproj b/Framework/EntoaroxFramework.csproj index ef7a15a..2f45558 100644 --- a/Framework/EntoaroxFramework.csproj +++ b/Framework/EntoaroxFramework.csproj @@ -5,7 +5,6 @@ Entoarox.Framework 2.4.2 net452 - 7.1 true @@ -21,4 +20,6 @@ + + diff --git a/FurnitureAnywhere/FurnitureAnywhere.csproj b/FurnitureAnywhere/FurnitureAnywhere.csproj index 5ae5029..fe22b01 100644 --- a/FurnitureAnywhere/FurnitureAnywhere.csproj +++ b/FurnitureAnywhere/FurnitureAnywhere.csproj @@ -5,7 +5,6 @@ Entoarox.FurnitureAnywhere 1.1.7 net452 - 7.1 true @@ -22,4 +21,6 @@ + + diff --git a/LanguagePatcher/LanguagePatcher.csproj b/LanguagePatcher/LanguagePatcher.csproj index c831e4c..7eb650c 100644 --- a/LanguagePatcher/LanguagePatcher.csproj +++ b/LanguagePatcher/LanguagePatcher.csproj @@ -6,13 +6,12 @@ 1.0.0 net452 Exe - x86 - x86 - 7.1 + + diff --git a/MagicJunimoPet/MagicJunimoPet.csproj b/MagicJunimoPet/MagicJunimoPet.csproj index 7970b6f..a7b00f1 100644 --- a/MagicJunimoPet/MagicJunimoPet.csproj +++ b/MagicJunimoPet/MagicJunimoPet.csproj @@ -5,11 +5,12 @@ MagicJunimoPet 1.1.2 net452 - 7.1 + + diff --git a/MoreAnimals/MoreAnimals.csproj b/MoreAnimals/MoreAnimals.csproj index b8a1592..1751fbe 100644 --- a/MoreAnimals/MoreAnimals.csproj +++ b/MoreAnimals/MoreAnimals.csproj @@ -5,7 +5,6 @@ Entoarox.MorePetsAndAnimals 3.0.2 net452 - 7.1 @@ -18,4 +17,6 @@ + + diff --git a/PlayGround/PlayGround.csproj b/PlayGround/PlayGround.csproj index 429d103..f6c66a0 100644 --- a/PlayGround/PlayGround.csproj +++ b/PlayGround/PlayGround.csproj @@ -17,4 +17,6 @@ + + diff --git a/SeasonalImmersion/SeasonalImmersion.csproj b/SeasonalImmersion/SeasonalImmersion.csproj index bd19b32..04b335b 100644 --- a/SeasonalImmersion/SeasonalImmersion.csproj +++ b/SeasonalImmersion/SeasonalImmersion.csproj @@ -86,4 +86,6 @@ + + diff --git a/ShopExpander/ShopExpander.csproj b/ShopExpander/ShopExpander.csproj index cd15f6d..13e030c 100644 --- a/ShopExpander/ShopExpander.csproj +++ b/ShopExpander/ShopExpander.csproj @@ -5,7 +5,6 @@ Entoarox.ShopExpander 1.6.2 net452 - 7.1 @@ -18,4 +17,6 @@ + + diff --git a/StardewMods.sln b/StardewMods.sln index fab355b..b9a520e 100644 --- a/StardewMods.sln +++ b/StardewMods.sln @@ -6,6 +6,9 @@ MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".root", ".root", "{CDFE013F-220E-4430-B50A-92AE7DD51D59}" ProjectSection(SolutionItems) = preProject .editorconfig = .editorconfig + .gitattributes = .gitattributes + .gitignore = .gitignore + common.targets = common.targets README.md = README.md EndProjectSection EndProject diff --git a/SundropCity/SundropCity.csproj b/SundropCity/SundropCity.csproj index 0d1b1b2..532c0b3 100644 --- a/SundropCity/SundropCity.csproj +++ b/SundropCity/SundropCity.csproj @@ -5,7 +5,6 @@ SundropCity 0.1.0 net452 - 7.1 @@ -13,4 +12,6 @@ + + diff --git a/XnbLoader/XnbLoader.csproj b/XnbLoader/XnbLoader.csproj index 0c2d121..2eec9e4 100644 --- a/XnbLoader/XnbLoader.csproj +++ b/XnbLoader/XnbLoader.csproj @@ -17,4 +17,6 @@ + + diff --git a/common.targets b/common.targets new file mode 100644 index 0000000..ecb3456 --- /dev/null +++ b/common.targets @@ -0,0 +1,15 @@ + + + + + Entoarox + https://github.com/Entoarox/StardewMods + git + + + 7.1 + x86 + x86 + + +