using SoulHarvest.Common;
using SoulHarvest.Items;
using SoulHarvest.Tiles;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using System;
using System.Collections.Generic;
using Terraria;
using Terraria.Audio;
using Terraria.GameContent;
using Terraria.GameContent.UI.Elements;
using Terraria.ID;
using Terraria.Localization;
using Terraria.ModLoader;
using Terraria.UI;
namespace SoulHarvest.UI;
internal sealed class AltarTextButton : UITextPanel<string>
{
private readonly Color normalColor;
private readonly Color hoverColor;
private readonly Color activeBorderColor;
private bool enabled = true;
public bool Enabled
{
get => enabled;
set
{
enabled = value;
IgnoresMouseInteraction = !value;
ApplyVisualState();
}
}
public AltarTextButton(string text, float textScale, Color normalColor, Color hoverColor, Color activeBorderColor)
: base(text, textScale)
{
this.normalColor = normalColor;
this.hoverColor = hoverColor;
this.activeBorderColor = activeBorderColor;
SetPadding(0f);
ApplyVisualState();
}
public override void Update(GameTime gameTime)
{
base.Update(gameTime);
ApplyVisualState();
}
private void ApplyVisualState()
{
if (!enabled)
{
BackgroundColor = Color.Lerp(normalColor, new Color(22, 19, 34), 0.62f) * 0.78f;
BorderColor = new Color(65, 57, 78) * 0.72f;
TextColor = new Color(117, 109, 127);
return;
}
BackgroundColor = IsMouseHovering ? hoverColor : normalColor;
BorderColor = IsMouseHovering ? activeBorderColor : activeBorderColor * 0.72f;
TextColor = Color.White;
}
}
using SoulHarvest.Common;
using SoulHarvest.Items;
using SoulHarvest.Tiles;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using System;
using System.Collections.Generic;
using Terraria;
using Terraria.Audio;
using Terraria.GameContent;
using Terraria.GameContent.UI.Elements;
using Terraria.ID;
using Terraria.Localization;
using Terraria.ModLoader;
using Terraria.UI;
namespace SoulHarvest.UI;
internal sealed class AltarTextButton : UITextPanel<string>
{
private readonly Color normalColor;
private readonly Color hoverColor;
private readonly Color activeBorderColor;
private bool enabled = true;
public bool Enabled
{
get => enabled;
set
{
enabled = value;
IgnoresMouseInteraction = !value;
ApplyVisualState();
}
}
public AltarTextButton(string text, float textScale, Color normalColor, Color hoverColor, Color activeBorderColor)
: base(text, textScale)
{
this.normalColor = normalColor;
this.hoverColor = hoverColor;
this.activeBorderColor = activeBorderColor;
SetPadding(0f);
ApplyVisualState();
}
public override void Update(GameTime gameTime)
{
base.Update(gameTime);
ApplyVisualState();
}
private void ApplyVisualState()
{
if (!enabled)
{
BackgroundColor = Color.Lerp(normalColor, new Color(22, 19, 34), 0.62f) * 0.78f;
BorderColor = new Color(65, 57, 78) * 0.72f;
TextColor = new Color(117, 109, 127);
return;
}
BackgroundColor = IsMouseHovering ? hoverColor : normalColor;
BorderColor = IsMouseHovering ? activeBorderColor : activeBorderColor * 0.72f;
TextColor = Color.White;
}
}