Files
UltimateFishing/Assets/Scripts/Assembly-CSharp/EnergyBar.cs
2026-02-21 16:45:37 +08:00

92 lines
1.5 KiB
C#

using UnityEngine;
using UnityEngine.Serialization;
public class EnergyBar : MonoBehaviour
{
[FormerlySerializedAs("valueCurrent")]
[SerializeField]
private int _valueCurrent = 50;
public int valueMin;
public int valueMax = 100;
[HideInInspector]
public bool animationEnabled;
[HideInInspector]
public float animValueF;
public int valueCurrent
{
get
{
return Mathf.Clamp(_valueCurrent, valueMin, valueMax);
}
set
{
_valueCurrent = value;
}
}
public float ValueF
{
get
{
if (valueMax == valueMin)
{
return 0f;
}
if (!animationEnabled)
{
return Mathf.Clamp((float)(valueCurrent - valueMin) / (float)(valueMax - valueMin), 0f, 1f);
}
return Mathf.Clamp(animValueF, 0f, 1f);
}
set
{
valueCurrent = Mathf.RoundToInt(value * (float)(valueMax - valueMin) + (float)valueMin);
}
}
protected void Update()
{
if (animationEnabled)
{
valueCurrent = valueMin + (int)(animValueF * (float)(valueMax - valueMin));
}
}
public void SetValueCurrent(int valueCurrent)
{
this.valueCurrent = valueCurrent;
}
public void SetValueMin(int valueMin)
{
this.valueMin = valueMin;
}
public void SetValueMax(int valueMax)
{
this.valueMax = valueMax;
}
public void SetValueF(float valueF)
{
ValueF = valueF;
}
public void ChangeValueF(float valueF)
{
ValueF += valueF;
ValueF = Mathf.Clamp01(ValueF);
}
public void ChangeValueCurrent(int value)
{
valueCurrent += value;
ValueF = Mathf.Clamp01(ValueF);
}
}