Rename save backup, fix happy birthday, disable net core, add info to symphony for first page of icons.

This commit is contained in:
2018-05-18 14:24:59 -07:00
parent 651cd8a26b
commit 6afca47caa
152 changed files with 724 additions and 86 deletions

View File

@ -8,7 +8,7 @@
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Omegasis.SaveBackup</RootNamespace>
<AssemblyName>SaveBackup</AssemblyName>
<AssemblyName>AdvancedSaveBackup</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<NuGetPackageImportStamp>

View File

@ -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" ]
}

View File

@ -1,4 +1,4 @@
using ModdedUtilitiesNetworking.Framework;

using StardewValley;
using System.Collections.Generic;

View File

@ -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);
}
}
*/
}
}

View File

@ -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");

View File

@ -71,9 +71,6 @@
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="ModdedUtilitiesNetworking">
<HintPath>..\ModdedUtilitiesNetworking\bin\Release\ModdedUtilitiesNetworking.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Xml" />
</ItemGroup>

View File

@ -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" ]
}

View File

@ -27,6 +27,7 @@ namespace ModdedUtilitiesNetworking.Framework
}
/*
public override void writeObjectFull<T>(BinaryWriter writer, NetRoot<T> root, long? peer)
{
try
@ -38,7 +39,8 @@ namespace ModdedUtilitiesNetworking.Framework
}
}
*/
/*
public override void readObjectDelta<T>(BinaryReader reader, NetRoot<T> root)
{
try
@ -50,6 +52,7 @@ namespace ModdedUtilitiesNetworking.Framework
}
}
*/
public override void receiveWorldState(BinaryReader msg)
{

View File

@ -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
{
/// <summary>A marker subclass to detect when a custom save is in progress.</summary>
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<int> 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<int>)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;
}
}
}

View File

@ -61,7 +61,7 @@ namespace Omegasis.SaveAnywhere.Framework
/// <summary>Clear saved data.</summary>
public void ClearData()
{
Directory.Delete(this.SavePath, recursive: true);
File.Delete(this.SavePath);
this.RemoveLegacyDataForThisPlayer();
}

View File

@ -47,6 +47,7 @@ namespace Omegasis.SaveAnywhere
/// <param name="helper">Provides simplified APIs for writing mods.</param>
public override void Entry(IModHelper helper)
{
this.Config = helper.ReadConfig<ModConfig>();
SaveEvents.AfterLoad += this.SaveEvents_AfterLoad;
@ -100,9 +101,14 @@ namespace Omegasis.SaveAnywhere
/// <param name="e">The event data.</param>
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,8 +143,12 @@ namespace Omegasis.SaveAnywhere
if (!Context.IsPlayerFree)
return;
// initiate save (if valid context)
if (e.KeyPressed.ToString() == this.Config.SaveKey)
{
if (Game1.client==null)
{
// validate: community center Junimos can't be saved
@ -151,6 +161,11 @@ namespace Omegasis.SaveAnywhere
// save
this.SaveManager.BeginSaveData();
}
else
{
Game1.addHUDMessage(new HUDMessage("Only server hosts can save anywhere.",HUDMessage.error_type));
}
}
}
/// <summary>Apply the NPC schedules to each NPC.</summary>

View File

@ -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" ]
}

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 363 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 351 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 381 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 637 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 295 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 743 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 447 B

View File

@ -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
*
*/
/// <summary>
@ -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)));
}
}
/// <summary>
@ -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<string, MusicPack>)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
}
}

View File

@ -90,7 +90,6 @@ namespace StardewSymphonyRemastered.Framework
#region
/// <summary>
/// TODO: Add functionality for events and festivals
/// Sum up some conditionals to parse the correct string key to access the songs list.
/// </summary>
/// <returns></returns>
@ -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;

View File

@ -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();
}
/// <summary>
/// Raised when the player changes locations. This should determine the next song to play.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void PlayerEvents_Warped(object sender, StardewModdingAPI.Events.EventArgsPlayerWarped e)
{
musicManager.selectMusic(SongSpecifics.getCurrentConditionalString());
}
/// <summary>
/// Ran once all of teh entry methods are ran. This will ensure that all custom music from other mods has been properly loaded in.
/// </summary>
@ -209,15 +222,7 @@ namespace StardewSymphonyRemastered
}
/// <summary>
/// Raised when the player changes locations. This should determine the next song to play.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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);

View File

@ -96,12 +96,42 @@
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="Content\Graphics\MusicMenu\OutlineBox.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="Content\Music\Templates\WAV\MusicPackInformation.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="Content\Music\Templates\WAV\Songs\SongsGoHere.txt">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="Content\Music\Templates\XACT\MusicPackInformation.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<None Include="manifest.json" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<Analyzer Include="..\..\packages\Pathoschild.Stardew.ModBuildConfig.2.1.0-beta-20180428\analyzers\dotnet\cs\StardewModdingAPI.ModBuildConfig.Analyzer.dll" />
</ItemGroup>
<ItemGroup>
<Content Include="Content\Graphics\MusicMenu\MusicDisk.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="Content\Graphics\MusicMenu\MusicNote.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="Content\Music\Templates\WAV\readme.txt">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="Content\Music\Templates\XACT\readme.txt">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<Folder Include="Content\Music\Wav\" />
<Folder Include="Content\Music\XACT\" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\Pathoschild.Stardew.ModBuildConfig.2.0.2\build\Pathoschild.Stardew.ModBuildConfig.targets" Condition="Exists('..\packages\Pathoschild.Stardew.ModBuildConfig.2.0.2\build\Pathoschild.Stardew.ModBuildConfig.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 241 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 255 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 260 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 277 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 255 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 241 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 235 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 241 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 B

Some files were not shown because too many files have changed in this diff Show More