public List <CabinTechTreeNode> GetNeibours(CabinTechTreeNode node) { List <CabinTechTreeNode> list = new List <CabinTechTreeNode>(); foreach (CabinTechTreeNode node2 in this._itemList) { if (node2._metaData.X == node._metaData.X) { switch ((node2._metaData.Y - node._metaData.Y)) { case 1: case -1: list.Add(node2); break; } } else if (node2._metaData.Y == node._metaData.Y) { switch ((node2._metaData.X - node._metaData.X)) { case 1: case -1: list.Add(node2); break; } } } return(list); }
public void InitMetaData() { if (!this._bInited) { this._bInited = true; this._itemList.Clear(); foreach (CabinTechTreeMetaData data in CabinTechTreeMetaDataReader.GetItemList()) { if (data.Cabin == this._ownerType) { CabinTechTreeNode item = new CabinTechTreeNode(this) { _metaData = data }; this._itemList.Add(item); } } if (this._activeNodeList.Count > 0) { foreach (CabinTech tech in this._activeNodeList) { this.SetNodeActive(tech.get_pos_x(), tech.get_pos_y()); } this._activeNodeList.Clear(); } this.RefreshNodes(); } }
public void InitNodes(CabinTechTree tree) { this._tree = tree; this._nodeDataList = this._tree.GetNodeList(); this.GetTreeArea(); this._content.GetComponent <GridLayoutGroup>().constraintCount = this._row; this._originNormalizedPositin = new Vector2(0f, 0f); for (int i = 0; i < this._row; i++) { for (int j = 0; j < this._column; j++) { GameObject obj2 = UnityEngine.Object.Instantiate <GameObject>(this._nodePrefab); obj2.transform.SetParent(this._content.transform); obj2.GetComponent <RectTransform>().localScale = this._nodeScale; MonoTechNodeUI component = obj2.GetComponent <MonoTechNodeUI>(); CabinTechTreeNode dataByUI = this.GetDataByUI(j, i); if (dataByUI != null) { if ((dataByUI._metaData.X == 0) && (dataByUI._metaData.Y == 0)) { this._originNormalizedPositin.x = ((float)j) / ((float)this._row); this._originNormalizedPositin.y = 1f - (((float)i) / ((float)this._column)); } obj2.name = string.Format("TechTreeNode_{0}", dataByUI._metaData.ID); } component.Init(dataByUI, j, i); component.RefreshStatus(); this._nodeUIObjList.Add(component); } } }
private void GetTreeArea() { int y = 0; int num2 = 0; int x = 0; int num4 = 0; for (int i = 0; i < this._nodeDataList.Count; i++) { CabinTechTreeNode node = this._nodeDataList[i]; if (i == 0) { x = node._metaData.X; num4 = node._metaData.X; y = node._metaData.Y; num2 = node._metaData.Y; } num4 = (node._metaData.X <= num4) ? num4 : node._metaData.X; x = (node._metaData.X >= x) ? x : node._metaData.X; num2 = (node._metaData.Y <= num2) ? num2 : node._metaData.Y; y = (node._metaData.Y >= y) ? y : node._metaData.Y; } this._row = (num2 - y) + 1; this._column = (num4 - x) + 1; this._x_meta_to_ui = (x >= 0) ? x : -x; this._y_meta_to_ui = (y >= 0) ? y : -y; }
public TechTreeNodeDialogContext(CabinTechTreeNode data) { ContextPattern pattern = new ContextPattern { contextName = "TechTreeNodeDialogContext", viewPrefabPath = "UI/Menus/Dialog/TechTreeNodeDialog" }; base.config = pattern; this._data = data; }
public void Init(CabinTechTreeNode data, int x, int y) { this._data = data; if (this._data != null) { this._data.RegisterCallback(new OnTechTreeNodeActive(this.OnNodeActive)); } this._x = x; this._y = y; this.SetVisible(); }