public bool HasMatchingTag(FAbilityTag abilityTag) { if (abilityTagCountMap is null) { return(false); } return(abilityTagCountMap.ContainsKey(abilityTag) && abilityTagCountMap[abilityTag] > 0); }
public bool HasTag(FAbilityTag inAbilityTag) { if (abilityTags is null) { return(false); } return(abilityTags.Contains(inAbilityTag)); }
public void AddAbilityTag(FAbilityTag inAbilityTag) { if (abilityTags == null) { abilityTags = new List <FAbilityTag>(); } abilityTags.Add(inAbilityTag); }
public bool GetTag(string inTagName, out FAbilityTag abilityTag) { if (TagsMap != null && TagsMap.TryGetValue(CRC32.GetCRC32(inTagName), out FAbilityTag tempTag)) { abilityTag = tempTag; return(true); } abilityTag = new FAbilityTag(); return(false); }
public void ResgiterAbilityEvent(FAbilityTag inAbilityTag, UnityAction <FAbilityTag, int> inEvent) { if (!abilityTagEventMap.ContainsKey(inAbilityTag)) { abilityTagEventMap.Add(inAbilityTag, inEvent); } else { abilityTagEventMap[inAbilityTag] += inEvent; } }
public void UpdateTagRef(FAbilityTag inAbilityTag, int inCountDelta) { if (abilityTagCountMap.ContainsKey(inAbilityTag)) { abilityTagCountMap[inAbilityTag] += inCountDelta; } else { AddTag(inAbilityTag, inCountDelta); } }
public void AddTag(FAbilityTag inAbilityTag, int inNum = 1) { if (abilityTagCountMap == null) { abilityTagCountMap = new Dictionary <FAbilityTag, int>(); } if (abilityTagCountMap.ContainsKey(inAbilityTag)) { abilityTagCountMap[inAbilityTag] += inNum; } else { abilityTagCountMap.Add(inAbilityTag, inNum); } }
void AddTag(string inStr) { if (string.IsNullOrEmpty(inStr) || string.IsNullOrWhiteSpace(inStr)) { return; } string[] strs = inStr.Split('.'); FAbilityTagContainer[] containers = new FAbilityTagContainer[strs.Length]; FAbilityTag rootTag = new FAbilityTag(strs[0]); if (!TagsMap.ContainsKey(rootTag.TagId)) { TagsMap.Add(rootTag.TagId, rootTag); } for (int i = 0; i < containers.Length; i++) { containers[i].AddAbilityTag(rootTag); } if (!TagContainersMap.ContainsKey(rootTag.TagName)) { TagContainersMap.Add(rootTag.TagName, containers[0]); } FAbilityTag parentTag = rootTag; for (int i = 1; i < strs.Length; i++) { parentTag = new FAbilityTag(strs[i], parentTag); if (!TagsMap.ContainsKey(parentTag.TagId)) { TagsMap.Add(parentTag.TagId, parentTag); } for (int j = i; j < containers.Length; j++) { containers[j].AddAbilityTag(parentTag); } if (!TagContainersMap.ContainsKey(parentTag.TagName)) { TagContainersMap.Add(parentTag.TagName, containers[i]); } } }