diff --git a/GeneralMods/SaveBackup/SaveBackup.csproj b/GeneralMods/AdvancedSaveBackup/AdvancedSaveBackup.csproj similarity index 98% rename from GeneralMods/SaveBackup/SaveBackup.csproj rename to GeneralMods/AdvancedSaveBackup/AdvancedSaveBackup.csproj index df7d88fc..8303620d 100644 --- a/GeneralMods/SaveBackup/SaveBackup.csproj +++ b/GeneralMods/AdvancedSaveBackup/AdvancedSaveBackup.csproj @@ -8,7 +8,7 @@ Library Properties Omegasis.SaveBackup - SaveBackup + AdvancedSaveBackup v4.5 512 diff --git a/GeneralMods/SaveBackup/Framework/ModConfig.cs b/GeneralMods/AdvancedSaveBackup/Framework/ModConfig.cs similarity index 100% rename from GeneralMods/SaveBackup/Framework/ModConfig.cs rename to GeneralMods/AdvancedSaveBackup/Framework/ModConfig.cs diff --git a/GeneralMods/SaveBackup/Properties/AssemblyInfo.cs b/GeneralMods/AdvancedSaveBackup/Properties/AssemblyInfo.cs similarity index 100% rename from GeneralMods/SaveBackup/Properties/AssemblyInfo.cs rename to GeneralMods/AdvancedSaveBackup/Properties/AssemblyInfo.cs diff --git a/GeneralMods/SaveBackup/ReadMe.md b/GeneralMods/AdvancedSaveBackup/ReadMe.md similarity index 100% rename from GeneralMods/SaveBackup/ReadMe.md rename to GeneralMods/AdvancedSaveBackup/ReadMe.md diff --git a/GeneralMods/SaveBackup/SaveBackup.cs b/GeneralMods/AdvancedSaveBackup/SaveBackup.cs similarity index 100% rename from GeneralMods/SaveBackup/SaveBackup.cs rename to GeneralMods/AdvancedSaveBackup/SaveBackup.cs diff --git a/GeneralMods/AdvancedSaveBackup/manifest.json b/GeneralMods/AdvancedSaveBackup/manifest.json new file mode 100644 index 00000000..e4f73e74 --- /dev/null +++ b/GeneralMods/AdvancedSaveBackup/manifest.json @@ -0,0 +1,10 @@ +{ + "Name": "Advanced Save Backup", + "Author": "Alpha_Omegasis", + "Version": "1.4.0", + "Description": "Backs up your save files when loading SMAPI and every in game night when saving.", + "UniqueID": "Omegasis.AdvancedSaveBackup", + "EntryDll": "AdvancedSaveBackup.dll", + "MinimumApiVersion": "2.0", + "UpdateKeys": [ "Nexus:435" ] +} diff --git a/GeneralMods/SaveBackup/packages.config b/GeneralMods/AdvancedSaveBackup/packages.config similarity index 100% rename from GeneralMods/SaveBackup/packages.config rename to GeneralMods/AdvancedSaveBackup/packages.config diff --git a/GeneralMods/HappyBirthday/Framework/Messages.cs b/GeneralMods/HappyBirthday/Framework/Messages.cs index 7ddbb5e1..14d720bd 100644 --- a/GeneralMods/HappyBirthday/Framework/Messages.cs +++ b/GeneralMods/HappyBirthday/Framework/Messages.cs @@ -1,4 +1,4 @@ -using ModdedUtilitiesNetworking.Framework; + using StardewValley; using System.Collections.Generic; diff --git a/GeneralMods/HappyBirthday/Framework/MultiplayerSupport.cs b/GeneralMods/HappyBirthday/Framework/MultiplayerSupport.cs index 3dbd8fcb..c8a7c49b 100644 --- a/GeneralMods/HappyBirthday/Framework/MultiplayerSupport.cs +++ b/GeneralMods/HappyBirthday/Framework/MultiplayerSupport.cs @@ -1,17 +1,16 @@ -using ModdedUtilitiesNetworking.Framework; + using StardewValley; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; -using static ModdedUtilitiesNetworking.Framework.Delegates.DelegateInfo; namespace Omegasis.HappyBirthday.Framework { public class MultiplayerSupport { - + /* public static string FSTRING_SendBirthdayMessageToOthers = "Omegasis.HappyBirthday.Framework.Messages.SendBirthdayMessageToOtherPlayers"; public static void initializeMultiplayerSupport() @@ -52,5 +51,6 @@ namespace Omegasis.HappyBirthday.Framework ModdedUtilitiesNetworking.ModCore.multiplayer.sendMessage(FSTRING_SendBirthdayMessageToOthers, ModdedUtilitiesNetworking.Framework.Extentions.StrardewValleyExtentions.MessagesExtentions.HUDMessageIconIdentifier, message, ModdedUtilitiesNetworking.Framework.Enums.MessageTypes.messageTypes.SendToSpecific, f); } } + */ } } diff --git a/GeneralMods/HappyBirthday/HappyBirthday.cs b/GeneralMods/HappyBirthday/HappyBirthday.cs index d5dfa8ef..6eca492f 100644 --- a/GeneralMods/HappyBirthday/HappyBirthday.cs +++ b/GeneralMods/HappyBirthday/HappyBirthday.cs @@ -126,7 +126,7 @@ namespace Omegasis.HappyBirthday SaveEvents.BeforeSave += this.SaveEvents_BeforeSave; ControlEvents.KeyPressed += this.ControlEvents_KeyPressed; - MultiplayerSupport.initializeMultiplayerSupport(); + //MultiplayerSupport.initializeMultiplayerSupport(); } @@ -197,7 +197,7 @@ namespace Omegasis.HappyBirthday if (this.IsBirthday()) { Messages.ShowStarMessage("It's your birthday today! Happy birthday!"); - MultiplayerSupport.SendBirthdayMessageToOtherPlayers(); + //MultiplayerSupport.SendBirthdayMessageToOtherPlayers(); Game1.player.mailbox.Add("birthdayMom"); diff --git a/GeneralMods/HappyBirthday/HappyBirthday.csproj b/GeneralMods/HappyBirthday/HappyBirthday.csproj index 63581378..dd2bfbb9 100644 --- a/GeneralMods/HappyBirthday/HappyBirthday.csproj +++ b/GeneralMods/HappyBirthday/HappyBirthday.csproj @@ -71,9 +71,6 @@ MinimumRecommendedRules.ruleset - - ..\ModdedUtilitiesNetworking\bin\Release\ModdedUtilitiesNetworking.dll - diff --git a/GeneralMods/HappyBirthday/manifest.json b/GeneralMods/HappyBirthday/manifest.json index 7676feeb..43131b79 100644 --- a/GeneralMods/HappyBirthday/manifest.json +++ b/GeneralMods/HappyBirthday/manifest.json @@ -12,11 +12,5 @@ "UniqueID": "Omegasis.HappyBirthday", "EntryDll": "HappyBirthday.dll", "MinimumApiVersion": "2.0", - "UpdateKeys": [ "Nexus:520" ], - "Dependencies": [ - { - "UniqueID": "Omegasis.ModdedUtilitiesNetworking", - "IsRequired": true - } -] + "UpdateKeys": [ "Nexus:520" ] } diff --git a/GeneralMods/ModdedUtilitiesNetworking/Framework/CustomMultiplayer.cs b/GeneralMods/ModdedUtilitiesNetworking/Framework/CustomMultiplayer.cs index aba2e3e7..c6da707e 100644 --- a/GeneralMods/ModdedUtilitiesNetworking/Framework/CustomMultiplayer.cs +++ b/GeneralMods/ModdedUtilitiesNetworking/Framework/CustomMultiplayer.cs @@ -27,6 +27,7 @@ namespace ModdedUtilitiesNetworking.Framework } + /* public override void writeObjectFull(BinaryWriter writer, NetRoot root, long? peer) { try @@ -38,7 +39,8 @@ namespace ModdedUtilitiesNetworking.Framework } } - + */ + /* public override void readObjectDelta(BinaryReader reader, NetRoot root) { try @@ -50,6 +52,7 @@ namespace ModdedUtilitiesNetworking.Framework } } + */ public override void receiveWorldState(BinaryReader msg) { diff --git a/GeneralMods/SaveAnywhere/Framework/NewSaveMenu.cs b/GeneralMods/SaveAnywhere/Framework/NewSaveMenu.cs index a4df8f50..10c00854 100644 --- a/GeneralMods/SaveAnywhere/Framework/NewSaveMenu.cs +++ b/GeneralMods/SaveAnywhere/Framework/NewSaveMenu.cs @@ -1,9 +1,173 @@ -using StardewValley.Menus; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; +using StardewValley; +using StardewValley.BellsAndWhistles; +using StardewValley.Menus; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; namespace Omegasis.SaveAnywhere.Framework { /// A marker subclass to detect when a custom save is in progress. - internal class NewSaveGameMenu : SaveGameMenu {} + internal class NewSaveGameMenu : IClickableMenu { + + private int completePause = -1; + private int margin = 500; + private StringBuilder _stringBuilder = new StringBuilder(); + private float _ellipsisDelay = 0.5f; + private IEnumerator loader; + public bool quit; + public bool hasDrawn; + private SparklingText saveText; + private int _ellipsisCount; + + public NewSaveGameMenu() + { + this.saveText = new SparklingText(Game1.dialogueFont, Game1.content.LoadString("Strings\\StringsFromCSFiles:SaveGameMenu.cs.11378"), Color.LimeGreen, new Color((int)(Color.Black.R * (1.0 / 1000.0)),(int)( Color.Black.G * (1.0 / 1000.0)),(int)( Color.Black.B * (1.0 / 1000.0)),255), false, 0.1, 1500, 32, 500); + } + + public override void receiveRightClick(int x, int y, bool playSound = true) + { + } + + public void complete() + { + Game1.playSound("money"); + this.completePause = 1500; + this.loader = (IEnumerator)null; + Game1.game1.IsSaving = false; + } + + public override void update(GameTime time) + { + if (this.quit) + return; + base.update(time); + if (Game1.client != null && Game1.client.timedOut) + { + this.quit = true; + if (!Game1.activeClickableMenu.Equals((object)this)) + return; + Game1.player.checkForLevelTenStatus(); + Game1.exitActiveMenu(); + } + else + { + TimeSpan elapsedGameTime; + if (this.loader != null) + { + this.loader.MoveNext(); + if (this.loader.Current >= 100) + { + int num = this.margin; + elapsedGameTime = time.ElapsedGameTime; + int milliseconds = elapsedGameTime.Milliseconds; + this.margin = num - milliseconds; + if (this.margin <= 0) + this.complete(); + } + double num1 = (double)this._ellipsisDelay; + elapsedGameTime = time.ElapsedGameTime; + double totalSeconds = elapsedGameTime.TotalSeconds; + this._ellipsisDelay = (float)(num1 - totalSeconds); + if ((double)this._ellipsisDelay <= 0.0) + { + this._ellipsisDelay = this._ellipsisDelay + 0.75f; + this._ellipsisCount = this._ellipsisCount + 1; + if (this._ellipsisCount > 3) + this._ellipsisCount = 1; + } + } + else if (this.hasDrawn && this.completePause == -1) + { + Game1.game1.IsSaving = true; + if (Game1.IsMasterGame) + { + if (Game1.saveOnNewDay) + { + this.loader = SaveGame.Save(); + } + else + { + this.margin = -1; + this.complete(); + } + } + else + { + NewSaveGameMenu.saveClientOptions(); + this.complete(); + } + + } + if (this.completePause < 0) + return; + int num2 = this.completePause; + elapsedGameTime = time.ElapsedGameTime; + int milliseconds1 = elapsedGameTime.Milliseconds; + this.completePause = num2 - milliseconds1; + this.saveText.update(time); + if (this.completePause >= 0) + return; + this.quit = true; + this.completePause = -9999; + if (Game1.activeClickableMenu.Equals((object)this)) + { + Game1.player.checkForLevelTenStatus(); + Game1.exitActiveMenu(); + } + Game1.currentLocation.resetForPlayerEntry(); + } + } + + private static void saveClientOptions() + { + StartupPreferences startupPreferences = new StartupPreferences(); + int num1 = 0; + int num2 = 1; + startupPreferences.loadPreferences(num1 != 0, num2 != 0); + Options options = Game1.options; + startupPreferences.clientOptions = options; + int num3 = 0; + startupPreferences.savePreferences(num3 != 0); + } + + public override void draw(SpriteBatch b) + { + base.draw(b); + Vector2 vector2 = Utility.makeSafe(new Vector2(64f, (float)(Game1.viewport.Height - 64)), new Vector2(64f, 64f)); + if (this.completePause >= 0) + { + if (Game1.saveOnNewDay) + this.saveText.draw(b, vector2); + } + else if (this.margin < 0 || Game1.IsClient) + { + this._stringBuilder.Clear(); + for (int index = 0; index < this._ellipsisCount; ++index) + this._stringBuilder.Append("."); + b.DrawString(Game1.dialogueFont, this._stringBuilder, vector2, Color.White); + } + else + { + this._stringBuilder.Clear(); + this._stringBuilder.Append(Game1.content.LoadString("Strings\\StringsFromCSFiles:SaveGameMenu.cs.11381")); + for (int index = 0; index < this._ellipsisCount; ++index) + this._stringBuilder.Append("."); + b.DrawString(Game1.dialogueFont, this._stringBuilder, vector2, Color.White); + } + this.hasDrawn = true; + } + + public void Dispose() + { + Game1.game1.IsSaving = false; + } + } + - } + + diff --git a/GeneralMods/SaveAnywhere/Framework/SaveManager.cs b/GeneralMods/SaveAnywhere/Framework/SaveManager.cs index 671a9aa2..f6c10f89 100644 --- a/GeneralMods/SaveAnywhere/Framework/SaveManager.cs +++ b/GeneralMods/SaveAnywhere/Framework/SaveManager.cs @@ -61,7 +61,7 @@ namespace Omegasis.SaveAnywhere.Framework /// Clear saved data. public void ClearData() { - Directory.Delete(this.SavePath, recursive: true); + File.Delete(this.SavePath); this.RemoveLegacyDataForThisPlayer(); } diff --git a/GeneralMods/SaveAnywhere/SaveAnywhere.cs b/GeneralMods/SaveAnywhere/SaveAnywhere.cs index 454217a0..99e32f40 100644 --- a/GeneralMods/SaveAnywhere/SaveAnywhere.cs +++ b/GeneralMods/SaveAnywhere/SaveAnywhere.cs @@ -47,6 +47,7 @@ namespace Omegasis.SaveAnywhere /// Provides simplified APIs for writing mods. public override void Entry(IModHelper helper) { + this.Config = helper.ReadConfig(); SaveEvents.AfterLoad += this.SaveEvents_AfterLoad; @@ -100,9 +101,14 @@ namespace Omegasis.SaveAnywhere /// The event data. private void GameEvents_UpdateTick(object sender, EventArgs e) { + // let save manager run background logic if (Context.IsWorldReady) + { + if (Game1.player.IsMainPlayer == false) return; this.SaveManager.Update(); + } + // reset NPC schedules if (Context.IsWorldReady && this.ShouldResetSchedules) @@ -137,19 +143,28 @@ namespace Omegasis.SaveAnywhere if (!Context.IsPlayerFree) return; + + // initiate save (if valid context) if (e.KeyPressed.ToString() == this.Config.SaveKey) { - // validate: community center Junimos can't be saved - - if (Game1.player.currentLocation.getCharacters().OfType().Any()) + if (Game1.client==null) { - Game1.addHUDMessage(new HUDMessage("The spirits don't want you to save here.", HUDMessage.error_type)); - return; - } + // validate: community center Junimos can't be saved - // save - this.SaveManager.BeginSaveData(); + if (Game1.player.currentLocation.getCharacters().OfType().Any()) + { + Game1.addHUDMessage(new HUDMessage("The spirits don't want you to save here.", HUDMessage.error_type)); + return; + } + + // save + this.SaveManager.BeginSaveData(); + } + else + { + Game1.addHUDMessage(new HUDMessage("Only server hosts can save anywhere.",HUDMessage.error_type)); + } } } diff --git a/GeneralMods/SaveBackup/manifest.json b/GeneralMods/SaveBackup/manifest.json deleted file mode 100644 index f4a680d1..00000000 --- a/GeneralMods/SaveBackup/manifest.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "Name": "Save Backup", - "Author": "Alpha_Omegasis", - "Version": "1.3.1", - "Description": "Backs up your save files at regular intervals.", - "UniqueID": "Omegasis.SaveBackup", - "EntryDll": "SaveBackup.dll", - "MinimumApiVersion": "2.0", - "UpdateKeys": [ "Nexus:435" ] -} diff --git a/GeneralMods/StardewMods.sln b/GeneralMods/StardewMods.sln index afc1e0d9..0c1a96af 100644 --- a/GeneralMods/StardewMods.sln +++ b/GeneralMods/StardewMods.sln @@ -20,9 +20,6 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Fall28SnowDay", "Fall28SnowDay\Fall28SnowDay.csproj", "{1DBB583D-4A4F-4A46-8CC5-42017C93D292}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HappyBirthday", "HappyBirthday\HappyBirthday.csproj", "{A7A4B67B-3CD7-421F-A4A7-2D656F0AB4D9}" - ProjectSection(ProjectDependencies) = postProject - {8DB124E3-E892-4E7C-A782-2DA47771338C} = {8DB124E3-E892-4E7C-A782-2DA47771338C} - EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MoreRain", "MoreRain\MoreRain.csproj", "{45721A43-630A-461F-9A50-E47D3D1926D0}" EndProject @@ -34,8 +31,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NightOwl", "NightOwl\NightO EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SaveAnywhere", "SaveAnywhere\SaveAnywhere.csproj", "{E17855AD-DBAF-49BD-B3E2-9899403252F6}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SaveBackup", "SaveBackup\SaveBackup.csproj", "{12984468-2B79-4B3B-B045-EE917301DEE0}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StardewSymphony", "StardewSymphony\StardewSymphony.csproj", "{697F7EC8-02C6-4F39-A917-EE45955CFFF9}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TimeFreeze", "TimeFreeze\TimeFreeze.csproj", "{07410BC3-9B33-40E9-A2EF-B8EDF983F0A3}" @@ -79,7 +74,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DebugSandBoxAndReferences", EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdditionalCropsFramework", "AdditionalCropsFramework\AdditionalCropsFramework.csproj", "{C5F88D48-EA20-40CD-91E2-C8725DC11795}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ModdedUtilitiesNetworking", "ModdedUtilitiesNetworking\ModdedUtilitiesNetworking.csproj", "{8DB124E3-E892-4E7C-A782-2DA47771338C}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdvancedSaveBackup", "AdvancedSaveBackup\AdvancedSaveBackup.csproj", "{12984468-2B79-4B3B-B045-EE917301DEE0}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -259,18 +254,6 @@ Global {E17855AD-DBAF-49BD-B3E2-9899403252F6}.x86|Any CPU.Build.0 = x86|Any CPU {E17855AD-DBAF-49BD-B3E2-9899403252F6}.x86|x86.ActiveCfg = x86|x86 {E17855AD-DBAF-49BD-B3E2-9899403252F6}.x86|x86.Build.0 = x86|x86 - {12984468-2B79-4B3B-B045-EE917301DEE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {12984468-2B79-4B3B-B045-EE917301DEE0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {12984468-2B79-4B3B-B045-EE917301DEE0}.Debug|x86.ActiveCfg = Debug|x86 - {12984468-2B79-4B3B-B045-EE917301DEE0}.Debug|x86.Build.0 = Debug|x86 - {12984468-2B79-4B3B-B045-EE917301DEE0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {12984468-2B79-4B3B-B045-EE917301DEE0}.Release|Any CPU.Build.0 = Release|Any CPU - {12984468-2B79-4B3B-B045-EE917301DEE0}.Release|x86.ActiveCfg = Release|x86 - {12984468-2B79-4B3B-B045-EE917301DEE0}.Release|x86.Build.0 = Release|x86 - {12984468-2B79-4B3B-B045-EE917301DEE0}.x86|Any CPU.ActiveCfg = x86|Any CPU - {12984468-2B79-4B3B-B045-EE917301DEE0}.x86|Any CPU.Build.0 = x86|Any CPU - {12984468-2B79-4B3B-B045-EE917301DEE0}.x86|x86.ActiveCfg = x86|x86 - {12984468-2B79-4B3B-B045-EE917301DEE0}.x86|x86.Build.0 = x86|x86 {697F7EC8-02C6-4F39-A917-EE45955CFFF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {697F7EC8-02C6-4F39-A917-EE45955CFFF9}.Debug|Any CPU.Build.0 = Debug|Any CPU {697F7EC8-02C6-4F39-A917-EE45955CFFF9}.Debug|x86.ActiveCfg = Debug|x86 @@ -403,18 +386,18 @@ Global {C5F88D48-EA20-40CD-91E2-C8725DC11795}.x86|Any CPU.Build.0 = x86|Any CPU {C5F88D48-EA20-40CD-91E2-C8725DC11795}.x86|x86.ActiveCfg = x86|x86 {C5F88D48-EA20-40CD-91E2-C8725DC11795}.x86|x86.Build.0 = x86|x86 - {8DB124E3-E892-4E7C-A782-2DA47771338C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8DB124E3-E892-4E7C-A782-2DA47771338C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8DB124E3-E892-4E7C-A782-2DA47771338C}.Debug|x86.ActiveCfg = Debug|Any CPU - {8DB124E3-E892-4E7C-A782-2DA47771338C}.Debug|x86.Build.0 = Debug|Any CPU - {8DB124E3-E892-4E7C-A782-2DA47771338C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8DB124E3-E892-4E7C-A782-2DA47771338C}.Release|Any CPU.Build.0 = Release|Any CPU - {8DB124E3-E892-4E7C-A782-2DA47771338C}.Release|x86.ActiveCfg = Release|Any CPU - {8DB124E3-E892-4E7C-A782-2DA47771338C}.Release|x86.Build.0 = Release|Any CPU - {8DB124E3-E892-4E7C-A782-2DA47771338C}.x86|Any CPU.ActiveCfg = Release|Any CPU - {8DB124E3-E892-4E7C-A782-2DA47771338C}.x86|Any CPU.Build.0 = Release|Any CPU - {8DB124E3-E892-4E7C-A782-2DA47771338C}.x86|x86.ActiveCfg = Release|Any CPU - {8DB124E3-E892-4E7C-A782-2DA47771338C}.x86|x86.Build.0 = Release|Any CPU + {12984468-2B79-4B3B-B045-EE917301DEE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {12984468-2B79-4B3B-B045-EE917301DEE0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {12984468-2B79-4B3B-B045-EE917301DEE0}.Debug|x86.ActiveCfg = Debug|x86 + {12984468-2B79-4B3B-B045-EE917301DEE0}.Debug|x86.Build.0 = Debug|x86 + {12984468-2B79-4B3B-B045-EE917301DEE0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {12984468-2B79-4B3B-B045-EE917301DEE0}.Release|Any CPU.Build.0 = Release|Any CPU + {12984468-2B79-4B3B-B045-EE917301DEE0}.Release|x86.ActiveCfg = Release|x86 + {12984468-2B79-4B3B-B045-EE917301DEE0}.Release|x86.Build.0 = Release|x86 + {12984468-2B79-4B3B-B045-EE917301DEE0}.x86|Any CPU.ActiveCfg = x86|Any CPU + {12984468-2B79-4B3B-B045-EE917301DEE0}.x86|Any CPU.Build.0 = x86|Any CPU + {12984468-2B79-4B3B-B045-EE917301DEE0}.x86|x86.ActiveCfg = x86|x86 + {12984468-2B79-4B3B-B045-EE917301DEE0}.x86|x86.Build.0 = x86|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/AddButton.png b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/AddButton.png new file mode 100644 index 00000000..b5adea0d Binary files /dev/null and b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/AddButton.png differ diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/DayIcons_Friday.png b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/DayIcons_Friday.png new file mode 100644 index 00000000..420adf65 Binary files /dev/null and b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/DayIcons_Friday.png differ diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/DayIcons_Monday.png b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/DayIcons_Monday.png new file mode 100644 index 00000000..0141d007 Binary files /dev/null and b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/DayIcons_Monday.png differ diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/DayIcons_Saturday.png b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/DayIcons_Saturday.png new file mode 100644 index 00000000..4a37dfbd Binary files /dev/null and b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/DayIcons_Saturday.png differ diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/DayIcons_Sunday.png b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/DayIcons_Sunday.png new file mode 100644 index 00000000..c9f4f3ab Binary files /dev/null and b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/DayIcons_Sunday.png differ diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/DayIcons_Thursday.png b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/DayIcons_Thursday.png new file mode 100644 index 00000000..775f345e Binary files /dev/null and b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/DayIcons_Thursday.png differ diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/DayIcons_Tuesday.png b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/DayIcons_Tuesday.png new file mode 100644 index 00000000..4f30fc66 Binary files /dev/null and b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/DayIcons_Tuesday.png differ diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/DayIcons_Wednesday.png b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/DayIcons_Wednesday.png new file mode 100644 index 00000000..5ee84bd9 Binary files /dev/null and b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/DayIcons_Wednesday.png differ diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/DeleteButton.png b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/DeleteButton.png new file mode 100644 index 00000000..1a6c820b Binary files /dev/null and b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/DeleteButton.png differ diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/EventIcon.png b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/EventIcon.png new file mode 100644 index 00000000..d2b15447 Binary files /dev/null and b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/EventIcon.png differ diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/FestivalIcon.png b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/FestivalIcon.png new file mode 100644 index 00000000..999b6a75 Binary files /dev/null and b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/FestivalIcon.png differ diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/GreenBallon.png b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/GreenBallon.png new file mode 100644 index 00000000..fa082117 Binary files /dev/null and b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/GreenBallon.png differ diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/MenuIcon.png b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/MenuIcon.png new file mode 100644 index 00000000..943920ee Binary files /dev/null and b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/MenuIcon.png differ diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/OutlineBox.png b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/OutlineBox.png new file mode 100644 index 00000000..a0a61aee Binary files /dev/null and b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/OutlineBox.png differ diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/RedBallon.png b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/RedBallon.png new file mode 100644 index 00000000..c09838d5 Binary files /dev/null and b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/RedBallon.png differ diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/SeasonIcon_Fall.png b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/SeasonIcon_Fall.png new file mode 100644 index 00000000..c1d5b8c5 Binary files /dev/null and b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/SeasonIcon_Fall.png differ diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/SeasonIcon_Spring.png b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/SeasonIcon_Spring.png new file mode 100644 index 00000000..a444aaf2 Binary files /dev/null and b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/SeasonIcon_Spring.png differ diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/SeasonIcon_Summer.png b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/SeasonIcon_Summer.png new file mode 100644 index 00000000..a809f665 Binary files /dev/null and b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/SeasonIcon_Summer.png differ diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/SeasonIcon_Winter.png b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/SeasonIcon_Winter.png new file mode 100644 index 00000000..9a3ad70a Binary files /dev/null and b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/SeasonIcon_Winter.png differ diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/StarIcon.png b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/StarIcon.png new file mode 100644 index 00000000..db1b77a5 Binary files /dev/null and b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/StarIcon.png differ diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/TimeIcon_Day.png b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/TimeIcon_Day.png new file mode 100644 index 00000000..c5782d9b Binary files /dev/null and b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/TimeIcon_Day.png differ diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/TimeIcon_Night.png b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/TimeIcon_Night.png new file mode 100644 index 00000000..6a369931 Binary files /dev/null and b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/TimeIcon_Night.png differ diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/WeatherIcon_DebrisFall.png b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/WeatherIcon_DebrisFall.png new file mode 100644 index 00000000..3cf3ba39 Binary files /dev/null and b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/WeatherIcon_DebrisFall.png differ diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/WeatherIcon_DebrisSpring.png b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/WeatherIcon_DebrisSpring.png new file mode 100644 index 00000000..d99ee28e Binary files /dev/null and b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/WeatherIcon_DebrisSpring.png differ diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/WeatherIcon_DebrisSummer.png b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/WeatherIcon_DebrisSummer.png new file mode 100644 index 00000000..4f6dad45 Binary files /dev/null and b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/WeatherIcon_DebrisSummer.png differ diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/WeatherIcon_Festival.png b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/WeatherIcon_Festival.png new file mode 100644 index 00000000..9022344a Binary files /dev/null and b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/WeatherIcon_Festival.png differ diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/WeatherIcon_Rainy.png b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/WeatherIcon_Rainy.png new file mode 100644 index 00000000..a00cc5a8 Binary files /dev/null and b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/WeatherIcon_Rainy.png differ diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/WeatherIcon_Snowing.png b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/WeatherIcon_Snowing.png new file mode 100644 index 00000000..204298ba Binary files /dev/null and b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/WeatherIcon_Snowing.png differ diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/WeatherIcon_Stormy.png b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/WeatherIcon_Stormy.png new file mode 100644 index 00000000..ca422d09 Binary files /dev/null and b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/WeatherIcon_Stormy.png differ diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/WeatherIcon_Sunny.png b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/WeatherIcon_Sunny.png new file mode 100644 index 00000000..85bb52be Binary files /dev/null and b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/WeatherIcon_Sunny.png differ diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/WeatherIcon_WeddingHeart.png b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/WeatherIcon_WeddingHeart.png new file mode 100644 index 00000000..06fca706 Binary files /dev/null and b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/WeatherIcon_WeddingHeart.png differ diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/WeatherIcon_WeddingLetter.png b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/WeatherIcon_WeddingLetter.png new file mode 100644 index 00000000..c6d3a5f7 Binary files /dev/null and b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Graphics/MusicMenu/WeatherIcon_WeddingLetter.png differ diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Music/Templates/WAV/Songs/SongsGoHere.txt b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Content/Music/Templates/WAV/Songs/SongsGoHere.txt new file mode 100644 index 00000000..e69de29b diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Framework/Menus/MusicManagerMenu.cs b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Framework/Menus/MusicManagerMenu.cs index b918a81d..d94cbe40 100644 --- a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Framework/Menus/MusicManagerMenu.cs +++ b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Framework/Menus/MusicManagerMenu.cs @@ -17,12 +17,15 @@ using StardustCore.UIUtilities.SpriteFonts.Components; namespace StardewSymphonyRemastered.Framework.Menus { /* TODO: Make the different menus for the conditional keys - * Normal (locations, season, weather,date, time) + * Normal (season, weather,time, location, ,date) * Festival * Event * * once song is selected also have play and stop button to see how song plays. * + * + * Figure out positioning for icons on fancy icons + * */ /// @@ -293,6 +296,71 @@ namespace StardewSymphonyRemastered.Framework.Menus } } + + if (this.drawMode == DrawMode.DifferntSelectionTypesMode) + { + + this.fancyButtons.Clear(); + + //Season Icon placement. + Vector4 seasonPlacement = new Vector4(this.width * .2f + 400, this.height * .05f, 5 * 100, this.height * .9f); + if (Game1.currentSeason == "spring") + { + + Texture2DExtended springTexture = StardewSymphony.textureManager.getTexture("SpringIcon"); + float scale = 1.00f / ((float)springTexture.texture.Width / 64f); + Rectangle srcRect = new Rectangle(0, 0, springTexture.texture.Width, springTexture.texture.Height); + this.fancyButtons.Add(new Button("SeasonIcon", new Rectangle((int)seasonPlacement.X, (int)seasonPlacement.Y, 64, 64), springTexture, "SeasonIcon", srcRect, scale, new Animation(srcRect), Color.White, Color.White, new ButtonFunctionality(null, null, null))); + } + if (Game1.currentSeason == "summer") + { + + Texture2DExtended summerTexture = StardewSymphony.textureManager.getTexture("SummerIcon"); + float scale = 1.00f / ((float)summerTexture.texture.Width / 64f); + Rectangle srcRect = new Rectangle(0, 0, summerTexture.texture.Width, summerTexture.texture.Height); + this.fancyButtons.Add(new Button("SeasonIcon", new Rectangle((int)seasonPlacement.X, (int)seasonPlacement.Y, 64, 64), summerTexture, "SeasonIcon", srcRect, scale, new Animation(srcRect), Color.White, Color.White, new ButtonFunctionality(null, null, null))); + } + if (Game1.currentSeason == "fall") + { + + Texture2DExtended fallTexture = StardewSymphony.textureManager.getTexture("FalIcon"); + float scale = 1.00f / ((float)fallTexture.texture.Width / 64f); + Rectangle srcRect = new Rectangle(0, 0, fallTexture.texture.Width, fallTexture.texture.Height); + this.fancyButtons.Add(new Button("SeasonIcon", new Rectangle((int)seasonPlacement.X, (int)seasonPlacement.Y, 64, 64), fallTexture, "SeasonIcon", srcRect, scale, new Animation(srcRect), Color.White, Color.White, new ButtonFunctionality(null, null, null))); + } + if (Game1.currentSeason == "winter") + { + + Texture2DExtended winterTexture = StardewSymphony.textureManager.getTexture("WinterIcon"); + float scale = 1.00f / ((float)winterTexture.texture.Width / 64f); + Rectangle srcRect = new Rectangle(0, 0, winterTexture.texture.Width, winterTexture.texture.Height); + this.fancyButtons.Add(new Button("SeasonIcon", new Rectangle((int)seasonPlacement.X, (int)seasonPlacement.Y, 64, 64), winterTexture, "SeasonIcon", srcRect, scale, new Animation(srcRect), Color.White, Color.White, new ButtonFunctionality(null, null, null))); + } + + Vector4 festivalPlacement = new Vector4(this.width * .2f + 400, this.height * .05f, 5 * 100, this.height * .9f); + Vector4 eventPlacement = new Vector4(this.width * .2f + 400, this.height * .05f, 5 * 100, this.height * .9f); + Vector4 menuPlacement = new Vector4(this.width * .2f + 400, this.height * .05f, 5 * 100, this.height * .9f); + + //Festival Icon placement. + Texture2DExtended festivalTexture = StardewSymphony.textureManager.getTexture("FestivalIcon"); + float festivalScale = 1.00f / ((float)festivalTexture.texture.Width / 64f); + Rectangle festivalSrcRect = new Rectangle(0, 0, festivalTexture.texture.Width, festivalTexture.texture.Height); + this.fancyButtons.Add(new Button("FestivalIcon", new Rectangle((int)festivalPlacement.X, (int)festivalPlacement.Y, 64, 64), festivalTexture, "FestivalIcon", festivalSrcRect, festivalScale, new Animation(festivalSrcRect), Color.White, Color.White, new ButtonFunctionality(null, null, null))); + + + //Event Icon placement. + Texture2DExtended eventTexture = StardewSymphony.textureManager.getTexture("EventIcon"); + float eventScale = 1.00f / ((float)eventTexture.texture.Width / 64f); + Rectangle eventSrcRectangle = new Rectangle(0, 0, eventTexture.texture.Width, eventTexture.texture.Height); + this.fancyButtons.Add(new Button("EventIcon", new Rectangle((int)eventPlacement.X, (int)eventPlacement.Y, 64, 64), eventTexture, "EventIcon", eventSrcRectangle, eventScale, new Animation(eventSrcRectangle), Color.White, Color.White, new ButtonFunctionality(null, null, null))); + + //Menu Icon placement. + Texture2DExtended menuTexture = StardewSymphony.textureManager.getTexture("MenuIcon"); + float menuScale = 1.00f / ((float)menuTexture.texture.Width / 64f); + Rectangle menuSrcRectangle = new Rectangle(0, 0, menuTexture.texture.Width, menuTexture.texture.Height); + this.fancyButtons.Add(new Button("MenuIcon", new Rectangle((int)menuPlacement.X, (int)menuPlacement.Y, 64, 64), menuTexture, "MenuIcon", menuSrcRectangle, menuScale, new Animation(menuSrcRectangle), Color.White, Color.White, new ButtonFunctionality(null, null, null))); + + } } /// @@ -477,7 +545,7 @@ namespace StardewSymphonyRemastered.Framework.Menus } var drawList = this.fancyButtons.GetRange(0 + (this.currentSongPageIndex * (amountToShow)), amount); - + //Get a list of components to draw. And if I click one select the song. foreach (var v in drawList) { if (v.containsPoint(x, y)) @@ -605,13 +673,18 @@ namespace StardewSymphonyRemastered.Framework.Menus { if (b.label == "Null") return; this.currentSelectedSong = b; + /* StardewSymphony.ModMonitor.Log("Song Selected!" + b.name); var info = (KeyValuePair)this.currentMusicPackAlbum.buttonFunctionality.leftClick.paramaters[0]; StardewSymphony.ModMonitor.Log("Select Pack:"+info.Key); StardewSymphony.musicManager.swapMusicPacks(info.Key); StardewSymphony.musicManager.playSongFromCurrentPack(b.name); + */ + this.drawMode = DrawMode.DifferntSelectionTypesMode; } + + #endregion } } diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Framework/Music/SongSpecifics.cs b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Framework/Music/SongSpecifics.cs index 8fef7c7d..f2fb5ecf 100644 --- a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Framework/Music/SongSpecifics.cs +++ b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/Framework/Music/SongSpecifics.cs @@ -90,7 +90,6 @@ namespace StardewSymphonyRemastered.Framework #region /// - /// TODO: Add functionality for events and festivals /// Sum up some conditionals to parse the correct string key to access the songs list. /// /// @@ -137,12 +136,12 @@ namespace StardewSymphonyRemastered.Framework } else { - key = getLocationString() + seperator + getSeasonNameString() + seperator + getWeatherString() + seperator + getDayOfWeekString() + seperator + getTimeOfDayString(); + key = getSeasonNameString() + seperator + getWeatherString() + seperator + getTimeOfDayString() + seperator + getLocationString() + seperator + getDayOfWeekString(); } if(foundMenuString==false && key == "") { - key = getLocationString() + seperator + getSeasonNameString() + seperator + getWeatherString() + seperator + getDayOfWeekString() + seperator + getTimeOfDayString(); + key = getSeasonNameString() + seperator + getWeatherString() + seperator + getTimeOfDayString() + seperator + getLocationString() + seperator + getDayOfWeekString(); } return key; diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/StardewSymphony.cs b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/StardewSymphony.cs index 747c3712..0d57fcea 100644 --- a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/StardewSymphony.cs +++ b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/StardewSymphony.cs @@ -75,7 +75,9 @@ namespace StardewSymphonyRemastered ModMonitor = Monitor; StardewModdingAPI.Events.SaveEvents.AfterLoad += SaveEvents_AfterLoad; - StardewModdingAPI.Events.LocationEvents.CurrentLocationChanged += LocationEvents_CurrentLocationChanged; + // StardewModdingAPI.Events.EventArgsLocationsChanged += LocationEvents_CurrentLocationChanged; + + StardewModdingAPI.Events.PlayerEvents.Warped += PlayerEvents_Warped; StardewModdingAPI.Events.GameEvents.UpdateTick += GameEvents_UpdateTick; StardewModdingAPI.Events.ControlEvents.KeyPressed += ControlEvents_KeyPressed; StardewModdingAPI.Events.SaveEvents.BeforeSave += SaveEvents_BeforeSave; @@ -111,6 +113,17 @@ namespace StardewSymphonyRemastered initializeMusicPacks(); } + /// + /// Raised when the player changes locations. This should determine the next song to play. + /// + /// + /// + private void PlayerEvents_Warped(object sender, StardewModdingAPI.Events.EventArgsPlayerWarped e) + { + musicManager.selectMusic(SongSpecifics.getCurrentConditionalString()); + + } + /// /// Ran once all of teh entry methods are ran. This will ensure that all custom music from other mods has been properly loaded in. /// @@ -209,15 +222,7 @@ namespace StardewSymphonyRemastered } - /// - /// Raised when the player changes locations. This should determine the next song to play. - /// - /// - /// - private void LocationEvents_CurrentLocationChanged(object sender, StardewModdingAPI.Events.EventArgsCurrentLocationChanged e) - { - musicManager.selectMusic(SongSpecifics.getCurrentConditionalString()); - } + @@ -238,13 +243,99 @@ namespace StardewSymphonyRemastered { string path = Path.Combine(ModHelper.DirectoryPath, "Content", "Graphics", "MusicMenu"); if (!Directory.Exists(path)) Directory.CreateDirectory(path); + + //Generic Icons string musicNote = Path.Combine(path, "MusicNote.png"); string musicCD = Path.Combine(path, "MusicDisk.png"); string outlineBox = Path.Combine(path, "OutlineBox.png"); + + string addIcon = Path.Combine(path, "AddButton.png"); + string deleteButton = Path.Combine(path, "DeleteButton.png"); + + string greenBallon = Path.Combine(path, "GreenBallon.png"); + string redBallon = Path.Combine(path, "RedBallon.png"); + string starIcon = Path.Combine(path, "StarIcon.png"); + + string menuIcon = Path.Combine(path, "MenuIcon.png"); + + //Time Icons + string dayIcon = Path.Combine(path, "TimeIcon_Day.png"); + string nightIcon = Path.Combine(path, "TimeIcon_Night.png"); + + + //Fun Icons + string eventIcon = Path.Combine(path, "EventIcon.png"); + string festivalIcon = Path.Combine(path, "FestivalIcon.png"); + + //WeatherIcons + string sunnyIcon = Path.Combine(path, "WeatherIcon_Sunny.png"); + string rainyIcon = Path.Combine(path, "WeatherIcon_Rainy.png"); + string debrisIconSpring = Path.Combine(path, "WeatherIcon_DebrisSpring.png"); + string debrisIconSummer = Path.Combine(path, "WeatherIcon_DebrisSummer.png"); + string debrisIconFall = Path.Combine(path, "WeatherIcon_DebrisFall.png"); + string weatherFestivalIcon = Path.Combine(path, "WeatherIcon_Festival.png"); + string snowIcon = Path.Combine(path, "WeatherIcon_Snowing.png"); + string stormIcon = Path.Combine(path, "WeatherIcon_Stormy.png"); + string weddingIcon = Path.Combine(path, "WeatherIcon_WeddingHeart.png"); + + + + //Season Icons + string springIcon = Path.Combine(path, "SeasonIcon_Spring.png"); + string summerIcon = Path.Combine(path, "SeasonIcon_Summer.png"); + string fallIcon = Path.Combine(path, "SeasonIcon_Fall.png"); + string winterIcon = Path.Combine(path, "SeasonIcon_Winter.png"); + + + //Day Icons + string mondayIcon = Path.Combine(path, "DayIcons_Monday.png"); + string tuesdayIcon = Path.Combine(path, "DayIcons_Tuesday.png"); + string wednesdayIcon = Path.Combine(path, "DayIcons_Wednesday.png"); + string thursdayIcon = Path.Combine(path, "DayIcons_Thursday.png"); + string fridayIcon = Path.Combine(path, "DayIcons_Friday.png"); + string saturdayIcon = Path.Combine(path, "DayIcons_Saturday.png"); + string sundayIcon = Path.Combine(path, "DayIcons_Sunday.png"); + + + + textureManager.addTexture("MusicNote",new Texture2DExtended(ModHelper,StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", musicNote))); textureManager.addTexture("MusicDisk", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", musicCD))); textureManager.addTexture("MusicCD", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", musicCD))); textureManager.addTexture("OutlineBox", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", outlineBox))); + textureManager.addTexture("AddIcon", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", addIcon))); + textureManager.addTexture("DeleteIcon", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", deleteButton))); + textureManager.addTexture("GreenBallon", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", greenBallon))); + textureManager.addTexture("RedBallon", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", redBallon))); + textureManager.addTexture("StarIcon", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", starIcon))); + textureManager.addTexture("MenuIcon", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", menuIcon))); + textureManager.addTexture("DayIcon", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", dayIcon))); + textureManager.addTexture("NightIcon", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", nightIcon))); + textureManager.addTexture("EventIcon", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", eventIcon))); + textureManager.addTexture("FestivalIcon", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", festivalIcon))); + textureManager.addTexture("SunnyIcon", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", sunnyIcon))); + textureManager.addTexture("RainyIcon", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", rainyIcon))); + textureManager.addTexture("DebrisSpringIcon", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", debrisIconSpring))); + textureManager.addTexture("DebrisSummerIcon", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", debrisIconSummer))); + textureManager.addTexture("DebrisIconFall", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", debrisIconFall))); + textureManager.addTexture("WeatherFestivalIcon", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", weatherFestivalIcon))); + textureManager.addTexture("SnowIcon", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", snowIcon))); + textureManager.addTexture("StormIcon", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", stormIcon))); + textureManager.addTexture("WeddingIcon", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", weddingIcon))); + textureManager.addTexture("SpringIcon", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", springIcon))); + textureManager.addTexture("SummerIcon", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", summerIcon))); + textureManager.addTexture("FallIcon", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", fallIcon))); + textureManager.addTexture("WinterIcon", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", winterIcon))); + textureManager.addTexture("MondayIcon", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", mondayIcon))); + textureManager.addTexture("TuesdayIcon", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", tuesdayIcon))); + textureManager.addTexture("WednesdayIcon", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", wednesdayIcon))); + textureManager.addTexture("ThursdayIcon", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", thursdayIcon))); + textureManager.addTexture("FridayIcon", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", fridayIcon))); + textureManager.addTexture("SaturdayIcon", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", saturdayIcon))); + textureManager.addTexture("SundayIcon", new Texture2DExtended(ModHelper, StardustCore.Utilities.getRelativeDirectory("StardewSymphonyRemastered", sundayIcon))); + + + if (!Directory.Exists(MusicPath)) Directory.CreateDirectory(MusicPath); if (!Directory.Exists(WavMusicDirectory)) Directory.CreateDirectory(WavMusicDirectory); diff --git a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/StardewSymphonyRemastered.csproj b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/StardewSymphonyRemastered.csproj index bc031154..453d538f 100644 --- a/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/StardewSymphonyRemastered.csproj +++ b/GeneralMods/StardewSymphonyRemastered/StardewSymphonyRemastered/StardewSymphonyRemastered.csproj @@ -96,12 +96,42 @@ + + Always + + + Always + + + Always + + + Always + + + + Always + + + Always + + + Always + + + Always + + + + + + diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/0.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/0.png new file mode 100644 index 00000000..3486f952 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/0.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/1.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/1.png new file mode 100644 index 00000000..e1097191 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/1.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/2.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/2.png new file mode 100644 index 00000000..a2293e9f Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/2.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/3.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/3.png new file mode 100644 index 00000000..e6e43538 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/3.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/4.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/4.png new file mode 100644 index 00000000..89f34404 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/4.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/5.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/5.png new file mode 100644 index 00000000..a729872f Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/5.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/6.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/6.png new file mode 100644 index 00000000..7f508e38 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/6.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/7.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/7.png new file mode 100644 index 00000000..fa52ec42 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/7.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/8.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/8.png new file mode 100644 index 00000000..9f2bb4e8 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/8.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/9.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/9.png new file mode 100644 index 00000000..dde91eb1 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/9.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/ampersand.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/ampersand.png new file mode 100644 index 00000000..a265193e Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/ampersand.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/asterisk.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/asterisk.png new file mode 100644 index 00000000..ec33bd57 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/asterisk.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/backSlash.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/backSlash.png new file mode 100644 index 00000000..e2454d01 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/backSlash.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/blankBackground.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/blankBackground.png new file mode 100644 index 00000000..41abb68c Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/blankBackground.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalA.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalA.png new file mode 100644 index 00000000..ac5d6459 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalA.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalB.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalB.png new file mode 100644 index 00000000..2a3067e8 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalB.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalC.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalC.png new file mode 100644 index 00000000..a904c1b7 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalC.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalD.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalD.png new file mode 100644 index 00000000..3145f9b9 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalD.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalE.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalE.png new file mode 100644 index 00000000..3e04d38d Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalE.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalF.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalF.png new file mode 100644 index 00000000..6a92c789 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalF.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalG.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalG.png new file mode 100644 index 00000000..3ff5982f Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalG.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalH.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalH.png new file mode 100644 index 00000000..e0734b25 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalH.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalI.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalI.png new file mode 100644 index 00000000..cac06719 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalI.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalJ.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalJ.png new file mode 100644 index 00000000..4f883e1e Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalJ.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalK.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalK.png new file mode 100644 index 00000000..f73f1bf6 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalK.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalL.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalL.png new file mode 100644 index 00000000..0432be00 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalL.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalM.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalM.png new file mode 100644 index 00000000..663b855d Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalM.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalN.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalN.png new file mode 100644 index 00000000..901cd80b Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalN.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalO.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalO.png new file mode 100644 index 00000000..d1601e60 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalO.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalP.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalP.png new file mode 100644 index 00000000..305d1728 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalP.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalQ.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalQ.png new file mode 100644 index 00000000..e4f449fa Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalQ.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalR.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalR.png new file mode 100644 index 00000000..cd111805 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalR.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalS.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalS.png new file mode 100644 index 00000000..e0b6ee03 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalS.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalT.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalT.png new file mode 100644 index 00000000..39fb9693 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalT.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalU.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalU.png new file mode 100644 index 00000000..073b7e89 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalU.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalV.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalV.png new file mode 100644 index 00000000..c2757084 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalV.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalW.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalW.png new file mode 100644 index 00000000..f0767485 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalW.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalX.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalX.png new file mode 100644 index 00000000..1660bf2a Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalX.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalY.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalY.png new file mode 100644 index 00000000..5478b156 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalY.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalZ.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalZ.png new file mode 100644 index 00000000..d08e46a5 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/capitalZ.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/caret.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/caret.png new file mode 100644 index 00000000..f9e76888 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/caret.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/coin.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/coin.png new file mode 100644 index 00000000..a0521501 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/coin.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/colon.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/colon.png new file mode 100644 index 00000000..29293733 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/colon.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/comma.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/comma.png new file mode 100644 index 00000000..6bfb8001 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/comma.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/doubleQuotes.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/doubleQuotes.png new file mode 100644 index 00000000..0392e319 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/doubleQuotes.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/exclamationMark.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/exclamationMark.png new file mode 100644 index 00000000..0c0841d1 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/exclamationMark.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/forwardSlash.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/forwardSlash.png new file mode 100644 index 00000000..e4e592b0 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/forwardSlash.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/grave.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/grave.png new file mode 100644 index 00000000..68ca6f40 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/grave.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/heart.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/heart.png new file mode 100644 index 00000000..8f9b7586 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/heart.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/leftArrow.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/leftArrow.png new file mode 100644 index 00000000..e288356f Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/leftArrow.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/leftBracket.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/leftBracket.png new file mode 100644 index 00000000..35151776 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/leftBracket.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/leftCurlyBracket.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/leftCurlyBracket.png new file mode 100644 index 00000000..9a99b14e Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/leftCurlyBracket.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/leftParenthesis.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/leftParenthesis.png new file mode 100644 index 00000000..9be4a413 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/leftParenthesis.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseA.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseA.png new file mode 100644 index 00000000..78cdb3b3 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseA.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseB.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseB.png new file mode 100644 index 00000000..b4c469bc Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseB.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseC.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseC.png new file mode 100644 index 00000000..b553ff83 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseC.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseD.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseD.png new file mode 100644 index 00000000..efbc06d7 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseD.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseE.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseE.png new file mode 100644 index 00000000..ff99a31f Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseE.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseF.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseF.png new file mode 100644 index 00000000..fb4c22c2 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseF.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseG.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseG.png new file mode 100644 index 00000000..270ee60d Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseG.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseH.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseH.png new file mode 100644 index 00000000..b113029a Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseH.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseI.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseI.png new file mode 100644 index 00000000..eb69f48f Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseI.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseJ.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseJ.png new file mode 100644 index 00000000..bf67e16f Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseJ.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseK.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseK.png new file mode 100644 index 00000000..03251fbd Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseK.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseL.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseL.png new file mode 100644 index 00000000..3263691a Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseL.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseM.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseM.png new file mode 100644 index 00000000..37a4fa1b Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseM.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseN.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseN.png new file mode 100644 index 00000000..28995f2e Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseN.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseO.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseO.png new file mode 100644 index 00000000..02eb070e Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseO.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseP.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseP.png new file mode 100644 index 00000000..32d00957 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseP.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseQ.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseQ.png new file mode 100644 index 00000000..37e897ea Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseQ.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseR.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseR.png new file mode 100644 index 00000000..bfc2a9f8 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseR.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseS.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseS.png new file mode 100644 index 00000000..17451472 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseS.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseT.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseT.png new file mode 100644 index 00000000..5c55fc4f Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseT.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseU.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseU.png new file mode 100644 index 00000000..aee164f5 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseU.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseV.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseV.png new file mode 100644 index 00000000..4f730853 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseV.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseW.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseW.png new file mode 100644 index 00000000..a86f673c Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseW.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseX.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseX.png new file mode 100644 index 00000000..edb5cef2 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseX.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseY.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseY.png new file mode 100644 index 00000000..818b656e Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseY.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseZ.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseZ.png new file mode 100644 index 00000000..fee24fa9 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/lowercaseZ.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/minus.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/minus.png new file mode 100644 index 00000000..309230e4 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/minus.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/percent.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/percent.png new file mode 100644 index 00000000..ccf2a656 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/percent.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/period.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/period.png new file mode 100644 index 00000000..c775ed99 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/period.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/plus.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/plus.png new file mode 100644 index 00000000..938c1f69 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/plus.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/pound.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/pound.png new file mode 100644 index 00000000..351642db Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/pound.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/questionMark.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/questionMark.png new file mode 100644 index 00000000..d92a7782 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/questionMark.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/rightArrow.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/rightArrow.png new file mode 100644 index 00000000..eb1de3c0 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/rightArrow.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/rightBracket.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/rightBracket.png new file mode 100644 index 00000000..a2208352 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/rightBracket.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/rightCurlyBracket.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/rightCurlyBracket.png new file mode 100644 index 00000000..2dbaeadd Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/rightCurlyBracket.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/rightParenthesis.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/rightParenthesis.png new file mode 100644 index 00000000..428b40f9 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/rightParenthesis.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/semicolon.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/semicolon.png new file mode 100644 index 00000000..346b08b8 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/semicolon.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/singleQuote.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/singleQuote.png new file mode 100644 index 00000000..8b54e77f Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/singleQuote.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/space.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/space.png new file mode 100644 index 00000000..41abb68c Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/space.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/star.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/star.png new file mode 100644 index 00000000..a7c3093f Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/star.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/tilde.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/tilde.png new file mode 100644 index 00000000..4b8a8471 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/tilde.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/underScore.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/underScore.png new file mode 100644 index 00000000..1baa8ad6 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/underScore.png differ diff --git a/GeneralMods/StardustCore/Content/Fonts/Vanilla/verticalLine.png b/GeneralMods/StardustCore/Content/Fonts/Vanilla/verticalLine.png new file mode 100644 index 00000000..37b32b11 Binary files /dev/null and b/GeneralMods/StardustCore/Content/Fonts/Vanilla/verticalLine.png differ diff --git a/GeneralMods/StardustCore/StardustCore.csproj b/GeneralMods/StardustCore/StardustCore.csproj index 19d2d1c6..eda79044 100644 --- a/GeneralMods/StardustCore/StardustCore.csproj +++ b/GeneralMods/StardustCore/StardustCore.csproj @@ -119,7 +119,296 @@ - + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + +