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; } } }