Example #1
0
        void UpdateGameRegionDropdownOptions()
        {
            if (NetworkClient.Instance == null)
            {
                return;
            }

            gameRegionDrowDown.ClearOptions();

            int currentValue = 0;

            for (int i = 0; i < NetworkClient.Instance.AvailableNodeRegions.Length; i++)
            {
                NodeRegion nodeRegion = NetworkClient.Instance.AvailableNodeRegions[i];

                if (nodeRegion.name.Equals(NetworkClient.Instance.NodeRegion))
                {
                    currentValue = i;
                }

                gameRegionDrowDown.options.Add(new Dropdown.OptionData(nodeRegion.description));
            }

            gameRegionDrowDown.value = currentValue;

            gameRegionDrowDown.onValueChanged.AddListener(GameRegionChanged);
        }
Example #2
0
        public static JsonLinkCloud MakeJson(GraphCtrl lc, ref NodeRegion region)
        {
            int nnodes       = 0;
            int nlinks       = 0;
            var jsonlc       = new JsonLinkCloud(region, lc.floorMan);
            var regionFilter = region.regid;

            if (region.name == "default")
            {
                regionFilter = 0;
            }
            foreach (var nname in lc.nodenamelist)
            {
                var node = lc.GetNode(nname);
                if (node.IsInRegion(region.regid))
                {
                    jsonlc.AddNode(node.name, node.pt);
                    nnodes += 1;
                }
            }
            foreach (var lname in lc.linknamelist)
            {
                var link = lc.GetLink(lname);
                if (link.node1.IsInRegion(regionFilter) && link.node2.IsInRegion(regionFilter))
                {
                    jsonlc.AddLink(link.name, link.node1.name, link.node2.name, link.usetype.ToString());
                    nlinks += 1;
                }
            }
            //GraphUtil.Log("MakeJson nnodes:" + nnodes + " nlinks:" + nlinks);
            //Debug.Log("MakeJson nnodes:" + nnodes + " nlinks:" + nlinks);
            return(jsonlc);
        }
Example #3
0
        void AgregarNodo(Node n, bool duplication = false)
        {
            if (n != null)
            {
                // Si hay que duplicar, se duplica, sino se crea una nueva instancia del nodo seleccioando
                Node nodo = (duplication == true) ? n : n.NewInstance();

                nodes.Add(nodo);

                //  Se crea un nuevo control para poder configurar el nodo
                NodeRegion nr = new NodeRegion(nodo);
                panelContenedor.Controls.Add(nr);

                //  Se registran los eventos del nuevo control configurador
                nr.DeleteButtonClick    += DeleteNode;
                nr.DuplicateButtonClick += DuplicateNode;
                nr.MoveNodeDown         += MoveNodeDown;
                nr.MoveNodeUp           += MoveNodeUp;
                nr.NodesChanged         += NodesChanged;

                //  Se actualizan las salidas de codigo y graficos
                UpdateCodeOutput();
                UpdateGraphicsPath();
            }
        }
Example #4
0
 public JsonLinkCloud(NodeRegion region, graphtex gt)
 {
     this.region = region;
     floorplan   = new graphtex(gt);
     nodes       = new JsonLcNodeList();
     links       = new JsonLcLinkList();
 }
Example #5
0
        public void SetCurrentEditNode(string nodename)
        {
            var node = grc.GetNode(nodename);

            if (curEditNode != null)
            {
                if (curEditNode.name != nodename)
                {
                    lm.RemoveNodeColorOverride(curEditNode.name);
                }
            }
            curEditNode    = node;
            editNodeRegion = grc.regman.GetRegion(node.regid);
            linkUseType    = LinkUse.legacy;
            lm.SetNodeColorOverride(nodename, "green", node.go);
            foreach (var weg in node.wegtos)
            {
                var lnk = weg.link;
                if (lnk.regid == node.regid)
                {
                    linkUseType = lnk.usetype;
                    break;
                }
            }
            //sm.RequestRefresh("LinkEdit:SetCurrentEditMode");
        }
Example #6
0
        void ApdPrefix(NodeRegion region)
        {
            lines.Add("public void createPointsFor_" + nodashes(region.name) + "()  // machine generated - do not edit");
            lines.Add("{");
            var s = indent + "grc.regman.NewNodeRegion(" + q(region.name) + "," + q(region.color) + ", saveToFile:true);";

            lines.Add(s);
        }
Example #7
0
        public void GameRegionChanged(int value)
        {
            NodeRegion nodeRegion = NetworkClient.Instance.AvailableNodeRegions[value];

            NetworkClient.Instance.NodeRegion = nodeRegion.name;

            OnLobbyConnected();
        }
Example #8
0
    /// <summary>
    /// Game region value changed
    /// </summary>
    public void GameRegionChanged(int value)
    {
        NodeRegion nodeRegion = NetworkClient.Instance.AvailableNodeRegions[value];

        NetworkClient.Instance.NodeRegion = nodeRegion.name;

        RegisterPlayer();
    }
Example #9
0
        public override void ReloadView()
        {
            NodeRegion region = targetNode as NodeRegion;

            comment.text     = targetNode.comment;
            elementTypeColor = region.nodeColor;
            mainContainer.style.SetBorderColor(new Color(region.nodeColor.r, region.nodeColor.g, region.nodeColor.b, 0.9f));
            horizontalDivider.style.backgroundColor = new Color(region.nodeColor.r, region.nodeColor.g, region.nodeColor.b, 0.9f);
            mainContainer.style.backgroundColor     = new Color(region.nodeColor.r, region.nodeColor.g, region.nodeColor.b, 0.05f);
            titleContainer.style.backgroundColor    = new Color(region.nodeColor.r, region.nodeColor.g, region.nodeColor.b, 0.3f);
            base.ReloadView();
        }
Example #10
0
 public LcNode(GraphCtrl grc, string name, Vector3 pt, LinkUse usetype, ref NodeRegion nodeRegion, string comment = "")
 {
     this.grc      = grc;
     this.name     = name;
     this.pt       = pt;
     this.usetype  = usetype;
     this.regid    = nodeRegion.regid;
     this.comment  = comment;
     regionStepIdx = nodeRegion.GetCurStepIdx();
     wegtos        = null;
     AstarInit();
 }
Example #11
0
        void DeleteNode(Node n)
        {
            if (nodes.Contains(n))
            {
                //  Buscar y remover el control de configuracion
                NodeRegion nr = panelContenedor.Controls.OfType <NodeRegion>().Single(x => x.Nodo == n);
                panelContenedor.Controls.Remove(nr);

                //  Remover el nodo de la lista de nodos
                nodes.Remove(n);

                UpdateCodeOutput();
                UpdateGraphicsPath();
            }
        }
Example #12
0
        private void MoveNodeDown(Node node)
        {
            int nodeInd = nodes.IndexOf(node);

            //  Si no esta abajo del todo
            if (nodeInd < nodes.Count - 1)
            {
                // Se busca el nodo proximo y se aplica el intercambio
                int        nextInd = nodeInd + 1;
                Node       next    = nodes[nextInd];
                NodeRegion nextNR  = NodeRegions.Single(x => x.Nodo == next);
                NodeRegion currNR  = NodeRegions.Single(x => x.Nodo == node);
                nextNR.Nodo    = node;
                currNR.Nodo    = next;
                nodes[nextInd] = node;
                nodes[nodeInd] = next;

                UpdateCodeOutput();
                UpdateGraphicsPath();
            }
        }
Example #13
0
        private void MoveNodeUp(Node node)
        {
            int nodeInd = nodes.IndexOf(node);

            //  Si no esta arriba del todo, se mueve
            if (nodeInd > 0)
            {
                // Se busca el nodo anterior y se aplica el intercambio
                int        previousInd = nodeInd - 1;
                Node       prev        = nodes[previousInd];
                NodeRegion prevNR      = NodeRegions.Single(x => x.Nodo == prev);
                NodeRegion currNR      = NodeRegions.Single(x => x.Nodo == node);
                prevNR.Nodo        = node;
                currNR.Nodo        = prev;
                nodes[previousInd] = node;
                nodes[nodeInd]     = prev;

                UpdateCodeOutput();
                UpdateGraphicsPath();
            }
        }
Example #14
0
        public static void SaveToFile(GraphCtrl grc, string fname, ref NodeRegion region)
        {
            var jsonlc = LcMapMaker.MakeJson(grc, ref region);

            JsonLinkCloud.WriteToFile(jsonlc, fname);
        }
Example #15
0
        public void SaveToFile(string fname, NodeRegion region)
        {
            init();
            var regnodes = grc.GetNodesInRegion(region.regid);
            var reglinks = grc.GetLinksInRegion(region.regid);

            ApdPrefix(region);

            while (lineidx < region.maxDefStepIdx)
            {
                var inodes = regnodes.FindAll(n => n.regionStepIdx == lineidx);
                var ilinks = reglinks.FindAll(l => l.regionStepIdx == lineidx);
                var nn     = inodes.Count;
                var nl     = ilinks.Count;
                apd = "); //  " + lineidx + " nn:" + nn + " nl:" + nl;
                if (nn > 1)
                {
                    var wrn = "// more than one node for step index nn:" + nn;
                    ApdNewWarning(wrn);
                }
                else if (ilinks.Count > 1)
                {
                    var wrn = "more than one link for step index" + nl;
                    ApdNewWarning(wrn);
                }
                else if (nn == 0 && nl == 0)
                {
                    var s = indent + "// ( empty " + apd;
                    lines.Add(s);
                }
                else if (nn == 1 && nl == 0)
                {
                    var n = inodes[0];
                    ApdNewNode(n.name, n.pt, n.comment);
                }
                else if (nn == 1 && nl == 1)
                {
                    var n       = inodes[0];
                    var l       = ilinks[0];
                    var frname  = l.node1.name;
                    var tuname  = l.node2.name;
                    var tupt    = l.node2.pt;
                    var tucmt   = l.node2.comment;
                    var nodesok = false;
                    if (tuname != n.name)
                    {
                        // maybe inverted?
                        frname = l.node2.name;
                        tuname = l.node1.name;
                        tupt   = l.node1.pt;
                        tucmt  = l.node1.comment;
                        if (tuname != n.name)
                        {
                            ApdNewNode(n.name, n.pt, n.comment);
                            ApdNewLinkByName(l, l.usetype);
                            //var wrn = "Unexpected node name - both l.node1:" + l.node1.name + "  l.node2:" + l.node2.name + " are not equal to nname:" + n.name;
                            //ApdNewWarning(wrn);
                        }
                        else
                        {
                            nrev++;
                            nodesok = true;
                        }
                    }
                    else
                    {
                        nodesok = true;
                    }
                    if (nodesok)
                    {
                        ApdNewLinkTo(frname, tuname, tupt, l.usetype, tucmt);
                    }
                }
                else if (nn == 0 && nl == 1)
                {
                    var l = ilinks[0];
                    ApdNewLinkByName(l, l.usetype);
                }
                else
                {
                    var wrn = " Wierd nn and nl counts nn:" + nn + " nl:" + nl;
                    ApdNewWarning(wrn);
                }
                lineidx++;
            }
            ApdPostFix();
            string[] lar = lines.ToArray <string>();
            System.IO.File.WriteAllLines(fname, lar);
            Debug.Log("Wrote ** " + lines.Count + " lines to " + fname + "  nwrn:" + nwarn + " nrev:" + nrev + " nadn:" + naddnode + " nlto:" + nlinkto + " nlbn:" + nlinkbyname);
        }