public void SendRedPointNotify(ERedPointType redPointType) { if (redPointType == ERedPointType.None) { return; } RedPointDelegateInfo delegateInfo = GetRedPointDelegate(redPointType); if (delegateInfo != null) { int num = GetRedPointNum(redPointType); for (int i = 0; i < delegateInfo.delegates.Count; i++) { if (delegateInfo.delegates[i] != null) { delegateInfo.delegates[i].OnTipsChanged(redPointType, num); } } } ERedPointType parentType = RedPointParentData.GetRedPointParentType(redPointType); if (parentType != ERedPointType.None) { SendRedPointNotify(parentType); } }
public FunctionListItemData(string desc, UnityAction callback = null, EFunctionItemType itemType = EFunctionItemType.normal, ERedPointType redPoint = ERedPointType.None) { Desc = desc; Callback = callback; eFunctionItemType = itemType; redPointType = redPoint; }
public int GetRedPointNum(ERedPointType redPointType) { int result = 0; redPointDict.TryGetValue(redPointType, out result); return(result); }
private RedPointDelegateInfo GetRedPointDelegate(ERedPointType redPointType) { if (redPointDelegateDict.ContainsKey(redPointType)) { return(redPointDelegateDict[redPointType]); } return(null); }
public void OnTipsChanged(ERedPointType redPointType, int number) { if (redPointGO != null) { redPointGO.SetActive(number > 0); } if (redPointNumText != null) { redPointNumText.text = number > 99 ? "99" : number > 1 ? number.ToString() : ""; } }
private IRedPointData CreateRedPointData(string id, ERedPointType type) { switch (type) { case ERedPointType.Simple: return(new SimpleRedPointData(id)); case ERedPointType.Number: return(new NumberRedPointData(id)); } return(null); }
/// <summary> /// 获得红点父类型 /// </summary> /// <param name="redPointType"></param> /// <returns></returns> public static ERedPointType GetRedPointParentType(ERedPointType redPointType) { ERedPointType result = ERedPointType.None; for (int i = 0; i < TupleList.Count; i++) { var tuple = TupleList[i]; if (tuple.Item1 == redPointType) { result = tuple.Item2; break; } } return(result); }
/// <summary> /// 获得所有红点子类型 /// </summary> /// <returns></returns> public static List <ERedPointType> GetRedPointSubTypes(ERedPointType redPointType) { List <ERedPointType> result = null; for (int i = 0; i < TupleList.Count; i++) { var tuple = TupleList[i]; if (tuple.Item2 == redPointType) { if (result == null) { result = new List <ERedPointType>(); } result.Add(tuple.Item1); } } return(result); }
public bool UnRegisterTipsDelegate(ERedPointType redPointType) { if (redPointType == ERedPointType.None) { return(false); } bool result = false; RedPointDelegateInfo delegateInfo = GetRedPointDelegate(redPointType); if (delegateInfo != null) { result = redPointDelegateDict.Remove(redPointType); delegateInfo.OnRecycle(); SimplePool <RedPointDelegateInfo> .Release(delegateInfo); } return(result); }
public int GetRedPointNum(ERedPointType redPointType) { int result = 0; List <ERedPointType> subTypes = RedPointParentData.GetRedPointSubTypes(redPointType); if (subTypes == null || subTypes.Count == 0) { result = redPointDS.GetRedPointNum(redPointType); } else { result += redPointDS.GetRedPointNum(redPointType); for (int i = 0; i < subTypes.Count; i++) { result += GetRedPointNum(subTypes[i]); } } return(result); }
public bool UnRegisterRedPointDelegate(ERedPointType redPointType, IRedPointDelegate callback) { if (redPointType == ERedPointType.None || callback == null) { return(false); } bool result = false; RedPointDelegateInfo delegateInfo = GetRedPointDelegate(redPointType); if (delegateInfo != null) { result = delegateInfo.delegates.Remove(callback); if (delegateInfo.delegates.Count == 0) { UnRegisterTipsDelegate(redPointType); } } return(result); }
public bool RegisterRedPointDelegate(ERedPointType redPointType, IRedPointDelegate callback) { if (redPointType == ERedPointType.None || callback == null) { return(false); } bool alreadyRegister = false; RedPointDelegateInfo delegateInfo = GetRedPointDelegate(redPointType); if (delegateInfo != null) { for (int i = 0; i < delegateInfo.delegates.Count; i++) { if (delegateInfo.delegates[i] == callback) { alreadyRegister = true; break; } } } if (!alreadyRegister) { if (delegateInfo == null) { delegateInfo = SimplePool <RedPointDelegateInfo> .Get(); delegateInfo.redPointType = redPointType; redPointDelegateDict[redPointType] = delegateInfo; } delegateInfo.delegates.Add(callback); } return(true); }
static void AddRedPointParentData(ERedPointType type, ERedPointType parentType) { _tupleList.Add(new Tuple <ERedPointType, ERedPointType>(type, parentType)); }
private void ClearRedPoint(ERedPointType type) { RedPointManager.Instance.SetRedPointNum(type, 0); }
public void SetRedPointNum(ERedPointType redPointType, int num) { redPointDict[redPointType] = num; }
public void SetRedPointNum(ERedPointType redPointType, int num) { redPointDS.SetRedPointNum(redPointType, num); SendRedPointNotify(redPointType); }
public void InitRedPointType(ERedPointType inType) { type = inType; UpdateRedPoint(); }
public bool OnRecycle() { redPointType = ERedPointType.None; delegates.Clear(); return(true); }