bool AddTrackData(ItemTrackData data) { UIMissionNode rootNode = itemsTree.AddMissionNode(null, "", false, true, false); rootNode.mLbTitle.maxLineCount = 1; rootNode.e_BtnDelete += DeleteNode; UIMissionNode tragetNode = itemsTree.AddMissionNode(rootNode, "", false, false, false); tragetNode.mLbTitle.maxLineCount = 0; _nodeDataDic.Add(rootNode, data); UpdateNodeText(rootNode); rootNode.ChangeExpand(); if (!GameUI.Instance.mItemsTrackWnd.isShow) { GameUI.Instance.mItemsTrackWnd.Show(); } if (data != null && data.type == TrackType.Script) { if (ScriptTrackChanged != null) { ScriptTrackChanged(data.scriptID, true); } } return(true); }
void UpdateNodeText(UIMissionNode node) { if (node == null) { return; } if (!_nodeDataDic.ContainsKey(node)) { return; } ItemTrackData data = _nodeDataDic[node]; if (data == null) { return; } UIMissionNode childNode = null; if (node.mChilds.Count > 0) { childNode = node.mChilds[0]; } bool complate = true; if (playerPackage != null) { string text = string.Empty; foreach (var kv in data.costDic) { string costName = ItemProto.GetName(kv.Key); int curCount = playerPackage.GetCount(kv.Key); string countStr = string.Empty; countStr = string.Format(countFormat, curCount, kv.Value); bool costComplate = curCount >= kv.Value; text += string.Format(costComplate ? complateCountColor : uncompletedCountColor, costName, countStr); if (!costComplate) { complate = false; } } if (childNode) { childNode.mLbTitle.text = text; } } string titleText = data.itemName; if (complate) { titleText = string.Format(complateTitleColor, string.Format(complateTitleFormat, data.itemName, data.itemCount, PELocalization.GetString(8000694))); } node.mLbTitle.text = titleText; }
public void AddIso(string isoName, Dictionary <int, int> m_Cost) { if (!ContainsIso(isoName)) { ItemTrackData data = new ItemTrackData(TrackType.ISO); data.itemName = isoName; data.itemCount = 1; foreach (KeyValuePair <int, int> kv in m_Cost) { if (kv.Value > 0) { data.costDic.Add(kv.Key, kv.Value); } } AddTrackData(data); } }
public void UpdateOrAddScript(Pathea.Replicator.Formula ms, int multiple) { if (ms == null) { return; } ItemTrackData data = null; foreach (var nodeData in _nodeDataDic.Values) { if (nodeData.type == TrackType.Script && nodeData.scriptID == ms.id) { data = nodeData; break; } } bool needAdd = false; if (data == null) { data = new ItemTrackData(TrackType.Script); data.scriptID = ms.id; data.itemName = ItemProto.GetName(ms.productItemId); needAdd = true; } else { data.costDic.Clear(); } data.itemCount = multiple * ms.m_productItemCount; foreach (var item in ms.materials) { data.costDic.Add(item.itemId, item.itemCount * multiple); } if (needAdd) { AddTrackData(data); } }
void DeleteNode(object obj) { UIMissionNode node = obj as UIMissionNode; if (node) { ItemTrackData data = null; if (_nodeDataDic.ContainsKey(node)) { data = _nodeDataDic[node]; _nodeDataDic.Remove(node); } itemsTree.DeleteMissionNode(node); if (data != null && data.type == TrackType.Script) { if (ScriptTrackChanged != null) { ScriptTrackChanged(data.scriptID, false); } } } }