示例#1
0
        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);
        }
示例#2
0
 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();
     }
 }
示例#3
0
 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);
         }
     }
 }
示例#4
0
        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;
        }
示例#5
0
        public TechTreeNodeDialogContext(CabinTechTreeNode data)
        {
            ContextPattern pattern = new ContextPattern {
                contextName    = "TechTreeNodeDialogContext",
                viewPrefabPath = "UI/Menus/Dialog/TechTreeNodeDialog"
            };

            base.config = pattern;
            this._data  = data;
        }
示例#6
0
 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();
 }