72 lines
2.0 KiB
C#
72 lines
2.0 KiB
C#
using System;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
namespace BrewMonster
|
|
{
|
|
public class AUIClockIcon : MonoBehaviour
|
|
{
|
|
[SerializeField] private Image m_ClockIcon;
|
|
[SerializeField] private int m_iMin;
|
|
[SerializeField] private int m_iMax;
|
|
[SerializeField] private int m_iPos;
|
|
[SerializeField] private int m_skillGroupIndex = -1;
|
|
|
|
private Color m_dwCol;
|
|
|
|
public Image GetClockIcon() => m_ClockIcon;
|
|
public void SetProgressPos(int progress)
|
|
{
|
|
m_iPos = Math.Clamp(progress, m_iMin, m_iMax);
|
|
|
|
UpdateClockIcon();
|
|
}
|
|
public void SetProgressRange(int min, int max)
|
|
{
|
|
if (min >= max)
|
|
{
|
|
BMLogger.LogError("AUIClockIcon SetProgressRange min should be greater than max ");
|
|
return;
|
|
}
|
|
m_iMin = min;
|
|
m_iMax = max;
|
|
m_iPos = Math.Clamp(m_iPos, m_iMin, m_iMax);
|
|
}
|
|
private void UpdateClockIcon()
|
|
{
|
|
if (m_ClockIcon == null)
|
|
return;
|
|
int range = m_iMax - m_iMin;
|
|
if (range <= 0)
|
|
{
|
|
m_ClockIcon.fillAmount = 0f;
|
|
return;
|
|
}
|
|
float progress = (float)(m_iMax - m_iPos) / range;
|
|
//BMLogger.LogError($"UpdateClockIcon progress:{progress}, m_iMax:{m_iMax}, m_iPos:{m_iPos}, m_iMin:{m_iMin}" );
|
|
m_ClockIcon.fillAmount = progress;
|
|
}
|
|
|
|
public void SetColor(Color dwCol)
|
|
{
|
|
m_dwCol = dwCol;
|
|
if (m_ClockIcon != null)
|
|
{
|
|
m_ClockIcon.color = m_dwCol;
|
|
}
|
|
}
|
|
|
|
public void BindSkillGroup(int groupIndex)
|
|
{
|
|
m_skillGroupIndex = groupIndex;
|
|
}
|
|
|
|
public int GetBoundSkillGroup() => m_skillGroupIndex;
|
|
|
|
public void ClearSkillGroupBinding()
|
|
{
|
|
m_skillGroupIndex = -1;
|
|
}
|
|
}
|
|
}
|