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); }
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); }
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(); } }
public JsonLinkCloud(NodeRegion region, graphtex gt) { this.region = region; floorplan = new graphtex(gt); nodes = new JsonLcNodeList(); links = new JsonLcLinkList(); }
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"); }
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); }
public void GameRegionChanged(int value) { NodeRegion nodeRegion = NetworkClient.Instance.AvailableNodeRegions[value]; NetworkClient.Instance.NodeRegion = nodeRegion.name; OnLobbyConnected(); }
/// <summary> /// Game region value changed /// </summary> public void GameRegionChanged(int value) { NodeRegion nodeRegion = NetworkClient.Instance.AvailableNodeRegions[value]; NetworkClient.Instance.NodeRegion = nodeRegion.name; RegisterPlayer(); }
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(); }
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(); }
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(); } }
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(); } }
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(); } }
public static void SaveToFile(GraphCtrl grc, string fname, ref NodeRegion region) { var jsonlc = LcMapMaker.MakeJson(grc, ref region); JsonLinkCloud.WriteToFile(jsonlc, fname); }
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); }