Finished restructuring of the menu. Maybe add a multi select button?
|
@ -79,6 +79,7 @@ namespace StardewSymphonyRemastered.Framework.V2
|
||||||
}
|
}
|
||||||
|
|
||||||
// play sound
|
// play sound
|
||||||
|
this.StopSong();
|
||||||
this.CurrentSongName = name;
|
this.CurrentSongName = name;
|
||||||
this.CurrentSound = sound;
|
this.CurrentSound = sound;
|
||||||
this.CurrentSound.Play();
|
this.CurrentSound.Play();
|
||||||
|
|
|
@ -251,6 +251,13 @@ namespace StardewSymphonyRemastered
|
||||||
textureManager.addTexture("WinterIcon", LoadTexture("SeasonIcon_Winter.png"));
|
textureManager.addTexture("WinterIcon", LoadTexture("SeasonIcon_Winter.png"));
|
||||||
|
|
||||||
//Day Icons
|
//Day Icons
|
||||||
|
textureManager.addTexture("CalendarMonday", LoadTexture("CalendarMonday.png"));
|
||||||
|
textureManager.addTexture("CalendarTuesday", LoadTexture("CalendarTuesday.png"));
|
||||||
|
textureManager.addTexture("CalendarWednesday", LoadTexture("CalendarWednesday.png"));
|
||||||
|
textureManager.addTexture("CalendarThursday", LoadTexture("CalendarThursday.png"));
|
||||||
|
textureManager.addTexture("CalendarFriday", LoadTexture("CalendarFriday.png"));
|
||||||
|
textureManager.addTexture("CalendarSaturday", LoadTexture("CalendarSaturday.png"));
|
||||||
|
textureManager.addTexture("CalendarSunday", LoadTexture("CalendarSunday.png"));
|
||||||
textureManager.addTexture("MondayIcon", LoadTexture("DayIcons_Monday.png"));
|
textureManager.addTexture("MondayIcon", LoadTexture("DayIcons_Monday.png"));
|
||||||
textureManager.addTexture("TuesdayIcon", LoadTexture("DayIcons_Tuesday.png"));
|
textureManager.addTexture("TuesdayIcon", LoadTexture("DayIcons_Tuesday.png"));
|
||||||
textureManager.addTexture("WednesdayIcon", LoadTexture("DayIcons_Wednesday.png"));
|
textureManager.addTexture("WednesdayIcon", LoadTexture("DayIcons_Wednesday.png"));
|
||||||
|
@ -265,6 +272,8 @@ namespace StardewSymphonyRemastered
|
||||||
textureManager.addTexture("StopButton", LoadTexture("StopButton.png"));
|
textureManager.addTexture("StopButton", LoadTexture("StopButton.png"));
|
||||||
textureManager.addTexture("BackButton", LoadTexture("BackButton.png"));
|
textureManager.addTexture("BackButton", LoadTexture("BackButton.png"));
|
||||||
|
|
||||||
|
|
||||||
|
textureManager.addTexture("DayNightIcon", LoadTexture("DayNightIcon.png"));
|
||||||
textureManager.addTexture("12AM", LoadTexture("12AM.png"));
|
textureManager.addTexture("12AM", LoadTexture("12AM.png"));
|
||||||
textureManager.addTexture("1AM", LoadTexture("1AM.png"));
|
textureManager.addTexture("1AM", LoadTexture("1AM.png"));
|
||||||
textureManager.addTexture("2AM", LoadTexture("2AM.png"));
|
textureManager.addTexture("2AM", LoadTexture("2AM.png"));
|
||||||
|
|
|
@ -170,6 +170,27 @@
|
||||||
<Content Include="assets\BackButton.png">
|
<Content Include="assets\BackButton.png">
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
<Content Include="assets\CalendarFriday.png">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="assets\CalendarMonday.png">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="assets\CalendarSaturday.png">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="assets\CalendarSunday.png">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="assets\CalendarThursday.png">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="assets\CalendarTuesday.png">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="assets\CalendarWednesday.png">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
<Content Include="assets\DayIcons_Friday.png">
|
<Content Include="assets\DayIcons_Friday.png">
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
@ -191,6 +212,9 @@
|
||||||
<Content Include="assets\DayIcons_Wednesday.png">
|
<Content Include="assets\DayIcons_Wednesday.png">
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
<Content Include="assets\DayNightIcon.png">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
<Content Include="assets\DeleteButton.png">
|
<Content Include="assets\DeleteButton.png">
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
|
After Width: | Height: | Size: 364 B |
After Width: | Height: | Size: 354 B |
After Width: | Height: | Size: 396 B |
After Width: | Height: | Size: 383 B |
After Width: | Height: | Size: 358 B |
After Width: | Height: | Size: 355 B |
After Width: | Height: | Size: 371 B |
After Width: | Height: | Size: 490 B |
|
@ -24,31 +24,36 @@ namespace StardustCore.UIUtilities.MenuComponents
|
||||||
/// <summary>A list of textures to be drawn on top of the button.</summary>
|
/// <summary>A list of textures to be drawn on top of the button.</summary>
|
||||||
public List<KeyValuePair<ClickableTextureComponent, ExtraTextureDrawOrder>> extraTextures;
|
public List<KeyValuePair<ClickableTextureComponent, ExtraTextureDrawOrder>> extraTextures;
|
||||||
|
|
||||||
|
public bool drawLabel;
|
||||||
|
|
||||||
/// <summary>Empty Constructor.</summary>
|
/// <summary>Empty Constructor.</summary>
|
||||||
public Button(Rectangle bounds, Texture2DExtended texture, Rectangle sourceRect, float scale)
|
public Button(Rectangle bounds, Texture2DExtended texture, Rectangle sourceRect, float scale, bool DrawLabel = true)
|
||||||
: base(bounds, texture.getTexture(), sourceRect, scale)
|
: base(bounds, texture.getTexture(), sourceRect, scale)
|
||||||
{
|
{
|
||||||
this.animationManager = new Animations.AnimationManager(texture, new Animations.Animation(sourceRect), false);
|
this.animationManager = new Animations.AnimationManager(texture, new Animations.Animation(sourceRect), false);
|
||||||
|
this.drawLabel = DrawLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Button(string name, Rectangle bounds, Texture2DExtended texture, Rectangle sourceRect, float scale)
|
public Button(string name, Rectangle bounds, Texture2DExtended texture, Rectangle sourceRect, float scale,bool DrawLabel=true)
|
||||||
: base(bounds, texture.getTexture(), sourceRect, scale)
|
: base(bounds, texture.getTexture(), sourceRect, scale)
|
||||||
{
|
{
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.animationManager = new Animations.AnimationManager(texture, new Animations.Animation(sourceRect), false);
|
this.animationManager = new Animations.AnimationManager(texture, new Animations.Animation(sourceRect), false);
|
||||||
|
this.drawLabel = DrawLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Button(string name, string displayText, Rectangle bounds, Texture2DExtended texture, Rectangle sourceRect, float scale)
|
public Button(string name, string displayText, Rectangle bounds, Texture2DExtended texture, Rectangle sourceRect, float scale,bool DrawLabel=true)
|
||||||
: base(bounds, texture.getTexture(), sourceRect, scale)
|
: base(bounds, texture.getTexture(), sourceRect, scale)
|
||||||
{
|
{
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.label = displayText;
|
this.label = displayText;
|
||||||
this.animationManager = new Animations.AnimationManager(texture, new Animations.Animation(sourceRect), false);
|
this.animationManager = new Animations.AnimationManager(texture, new Animations.Animation(sourceRect), false);
|
||||||
|
this.drawLabel = DrawLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>Basic Button constructor.</summary>
|
/// <summary>Basic Button constructor.</summary>
|
||||||
/// <param name="texture">The texture sheet to be drawn to the screen. Used with the animation manager this allows you to reference different parts of the sheet at any given time.</param>
|
/// <param name="texture">The texture sheet to be drawn to the screen. Used with the animation manager this allows you to reference different parts of the sheet at any given time.</param>
|
||||||
public Button(string name, Rectangle bounds, Texture2DExtended texture, string displayText, Rectangle sourceRect, float scale, Animations.Animation defaultAnimation, Color drawColor, Color textColor, ButtonFunctionality functionality, bool animationEnabled = true, List<KeyValuePair<ClickableTextureComponent, ExtraTextureDrawOrder>> extraTexture = null)
|
public Button(string name, Rectangle bounds, Texture2DExtended texture, string displayText, Rectangle sourceRect, float scale, Animations.Animation defaultAnimation, Color drawColor, Color textColor, ButtonFunctionality functionality, bool animationEnabled = true, List<KeyValuePair<ClickableTextureComponent, ExtraTextureDrawOrder>> extraTexture = null, bool DrawLabel=true)
|
||||||
: base(bounds, texture.getTexture(), sourceRect, scale)
|
: base(bounds, texture.getTexture(), sourceRect, scale)
|
||||||
{
|
{
|
||||||
this.animationManager = new Animations.AnimationManager(texture, defaultAnimation, animationEnabled);
|
this.animationManager = new Animations.AnimationManager(texture, defaultAnimation, animationEnabled);
|
||||||
|
@ -59,10 +64,11 @@ namespace StardustCore.UIUtilities.MenuComponents
|
||||||
this.buttonFunctionality = functionality;
|
this.buttonFunctionality = functionality;
|
||||||
this.extraTextures = extraTexture ?? new List<KeyValuePair<ClickableTextureComponent, ExtraTextureDrawOrder>>();
|
this.extraTextures = extraTexture ?? new List<KeyValuePair<ClickableTextureComponent, ExtraTextureDrawOrder>>();
|
||||||
this.scale = scale;
|
this.scale = scale;
|
||||||
|
this.drawLabel = DrawLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>A more advanced Button constructor that deals with an animation manager.</summary>
|
/// <summary>A more advanced Button constructor that deals with an animation manager.</summary>
|
||||||
public Button(string name, Rectangle bounds, Texture2DExtended texture, string displayText, Rectangle sourceRect, float scale, Animations.Animation defaultAnimation, Dictionary<string, List<Animations.Animation>> animationsToPlay, string startingAnimationKey, Color drawColor, Color textColor, ButtonFunctionality functionality, int startingAnimationFrame = 0, bool animationEnabled = true, List<KeyValuePair<ClickableTextureComponent, ExtraTextureDrawOrder>> extraTexture = null)
|
public Button(string name, Rectangle bounds, Texture2DExtended texture, string displayText, Rectangle sourceRect, float scale, Animations.Animation defaultAnimation, Dictionary<string, List<Animations.Animation>> animationsToPlay, string startingAnimationKey, Color drawColor, Color textColor, ButtonFunctionality functionality, int startingAnimationFrame = 0, bool animationEnabled = true, List<KeyValuePair<ClickableTextureComponent, ExtraTextureDrawOrder>> extraTexture = null,bool DrawLabel=true)
|
||||||
: base(bounds, texture.getTexture(), sourceRect, scale)
|
: base(bounds, texture.getTexture(), sourceRect, scale)
|
||||||
{
|
{
|
||||||
this.animationManager = new Animations.AnimationManager(texture, defaultAnimation, animationsToPlay, startingAnimationKey, startingAnimationFrame, animationEnabled);
|
this.animationManager = new Animations.AnimationManager(texture, defaultAnimation, animationsToPlay, startingAnimationKey, startingAnimationFrame, animationEnabled);
|
||||||
|
@ -73,6 +79,7 @@ namespace StardustCore.UIUtilities.MenuComponents
|
||||||
this.buttonFunctionality = functionality;
|
this.buttonFunctionality = functionality;
|
||||||
this.extraTextures = extraTexture ?? new List<KeyValuePair<ClickableTextureComponent, ExtraTextureDrawOrder>>();
|
this.extraTextures = extraTexture ?? new List<KeyValuePair<ClickableTextureComponent, ExtraTextureDrawOrder>>();
|
||||||
this.scale = scale;
|
this.scale = scale;
|
||||||
|
this.drawLabel = DrawLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>Draws the button and all of it's components.</summary>
|
/// <summary>Draws the button and all of it's components.</summary>
|
||||||
|
@ -96,7 +103,7 @@ namespace StardustCore.UIUtilities.MenuComponents
|
||||||
b.Draw(this.texture, new Vector2((float)this.bounds.X + (float)(this.sourceRect.Width / 2) * this.baseScale, (float)this.bounds.Y + (float)(this.sourceRect.Height / 2) * this.baseScale), new Rectangle?(this.sourceRect), this.textureColor, 0.0f, new Vector2((float)(this.sourceRect.Width / 2), (float)(this.sourceRect.Height / 2)), this.scale, SpriteEffects.None, layerDepth);
|
b.Draw(this.texture, new Vector2((float)this.bounds.X + (float)(this.sourceRect.Width / 2) * this.baseScale, (float)this.bounds.Y + (float)(this.sourceRect.Height / 2) * this.baseScale), new Rectangle?(this.sourceRect), this.textureColor, 0.0f, new Vector2((float)(this.sourceRect.Width / 2), (float)(this.sourceRect.Height / 2)), this.scale, SpriteEffects.None, layerDepth);
|
||||||
if (!string.IsNullOrEmpty(this.label))
|
if (!string.IsNullOrEmpty(this.label))
|
||||||
{
|
{
|
||||||
b.DrawString(Game1.smallFont, this.label, new Vector2((float)(this.bounds.X + this.bounds.Width), (float)this.bounds.Y + ((float)(this.bounds.Height / 2) - Game1.smallFont.MeasureString(this.label).Y / 2f)), this.textColor);
|
if(this.drawLabel)b.DrawString(Game1.smallFont, this.label, new Vector2((float)(this.bounds.X + this.bounds.Width), (float)this.bounds.Y + ((float)(this.bounds.Height / 2) - Game1.smallFont.MeasureString(this.label).Y / 2f)), this.textColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.hoverText != "")
|
if (this.hoverText != "")
|
||||||
|
@ -156,7 +163,7 @@ namespace StardustCore.UIUtilities.MenuComponents
|
||||||
}
|
}
|
||||||
if (string.IsNullOrEmpty(this.label))
|
if (string.IsNullOrEmpty(this.label))
|
||||||
return;
|
return;
|
||||||
b.DrawString(Game1.smallFont, this.label, new Vector2((float)(this.bounds.X + this.bounds.Width), (float)this.bounds.Y + ((float)(this.bounds.Height / 2) - Game1.smallFont.MeasureString(this.label).Y / 2f)), this.textColor);
|
if (this.drawLabel) b.DrawString(Game1.smallFont, this.label, new Vector2((float)(this.bounds.X + this.bounds.Width), (float)this.bounds.Y + ((float)(this.bounds.Height / 2) - Game1.smallFont.MeasureString(this.label).Y / 2f)), this.textColor);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -183,7 +190,7 @@ namespace StardustCore.UIUtilities.MenuComponents
|
||||||
}
|
}
|
||||||
if (string.IsNullOrEmpty(this.label))
|
if (string.IsNullOrEmpty(this.label))
|
||||||
return;
|
return;
|
||||||
b.DrawString(Game1.smallFont, this.label, new Vector2((float)(this.bounds.X + this.bounds.Width), (float)this.bounds.Y + ((float)(this.bounds.Height / 2) - Game1.smallFont.MeasureString(this.label).Y / 2f)), this.textColor);
|
if (this.drawLabel) b.DrawString(Game1.smallFont, this.label, new Vector2((float)(this.bounds.X + this.bounds.Width), (float)this.bounds.Y + ((float)(this.bounds.Height / 2) - Game1.smallFont.MeasureString(this.label).Y / 2f)), this.textColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>Swaps if the button is visible or not. Also toggles the animation manager appropriately.</summary>
|
/// <summary>Swaps if the button is visible or not. Also toggles the animation manager appropriately.</summary>
|
||||||
|
@ -238,7 +245,20 @@ namespace StardustCore.UIUtilities.MenuComponents
|
||||||
/// <param name="newPosition"></param>
|
/// <param name="newPosition"></param>
|
||||||
public virtual Button clone(Vector2 newPosition)
|
public virtual Button clone(Vector2 newPosition)
|
||||||
{
|
{
|
||||||
return new Button(this.name, new Rectangle((int)newPosition.X, (int)newPosition.Y, this.bounds.Width, this.bounds.Height), this.animationManager.getExtendedTexture(), this.label, this.sourceRect, this.scale, this.animationManager.defaultDrawFrame, this.textureColor, this.textColor, this.buttonFunctionality, true);
|
return new Button(this.name, new Rectangle((int)newPosition.X, (int)newPosition.Y, this.bounds.Width, this.bounds.Height), this.animationManager.getExtendedTexture(), this.label, this.sourceRect, this.scale, this.animationManager.defaultDrawFrame, this.textureColor, this.textColor, this.buttonFunctionality, true, this.extraTextures == null? null:this.extraTextures,this.drawLabel);
|
||||||
|
//if (b.buttonFunctionality.hover == null)
|
||||||
|
// StardustCore.ModCore.ModMonitor.Log("I'm null!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get's a clone of the button.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="newPosition">The new position for the cloned button.</param>
|
||||||
|
/// <param name="DrawLabel">If the cloned button should also draw it's label</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public virtual Button clone(Vector2 newPosition,bool DrawLabel)
|
||||||
|
{
|
||||||
|
return new Button(this.name, new Rectangle((int)newPosition.X, (int)newPosition.Y, this.bounds.Width, this.bounds.Height), this.animationManager.getExtendedTexture(), this.label, this.sourceRect, this.scale, this.animationManager.defaultDrawFrame, this.textureColor, this.textColor, this.buttonFunctionality, true, this.extraTextures == null ? null : this.extraTextures, DrawLabel);
|
||||||
//if (b.buttonFunctionality.hover == null)
|
//if (b.buttonFunctionality.hover == null)
|
||||||
// StardustCore.ModCore.ModMonitor.Log("I'm null!");
|
// StardustCore.ModCore.ModMonitor.Log("I'm null!");
|
||||||
}
|
}
|
||||||
|
|