protected override void LoadLink(XndNode xndNode) { mIsLoadingLinks = true; mLinkPairs.Clear(); var att = xndNode.FindAttrib("TransitionLinks"); att.BeginRead(); switch (att.Version) { case 0: { int count = 0; att.Read(out count); for (int i = 0; i < count; i++) { var pair = new LinkPair(); att.Read(out pair.LoadedLinkFrom); att.Read(out pair.LoadedLinkTo); mLinkPairs.Add(pair); } } break; } att.EndRead(); mIsLoadingLinks = false; }
public void GenerateLink() { var inputField = GetComponentInChildren <InputField>(); currentLinkPair = LinkPresets.Presets[Random.Range(0, LinkPresets.Presets.Count)]; inputField.text = Random.Range(0, 2) == 0 ? currentLinkPair.Correct : currentLinkPair.Incorrect; ResultOutput.text = "..."; ResultOutput.color = Color.gray; }
private void button4_Click(object sender, EventArgs e) { var links = new Dictionary <string, Link>(); var states = new HashSet <string>(); string initState = ""; string finalState = ""; for (int i = 0; i < txtFSMTable.Lines.Count(); i++) { string line = txtFSMTable.Lines[i]; string[] StateAndLinks = line.Split(':'); string StateName = StateAndLinks[0].Trim(' '); states.Add(StateName); if (i == 0) { initState = StateName; } if (i == txtFSMTable.Lines.Count() - 1) { finalState = StateName; } links.Add(StateName, new Link()); if (StateAndLinks[1] != "") // Парсим переходы к другим состояниям { foreach (string LinkPair in StateAndLinks[1].Split(',')) { string[] SymAndDestState = LinkPair.Split('-'); string Symbol = SymAndDestState[0].Trim(' ').Substring(1); //.Substring(1); string DestState = SymAndDestState[1].Trim(' '); states.Add(DestState); links[StateName].Add(Symbol, DestState); } } } parser = new fsm.Parser(states, links, initState, finalState); var dataGraph = new GraphExample(); foreach (string vs in states) { var dataVertex = new DataVertex(vs); dataGraph.AddVertex(dataVertex); } var vlist = dataGraph.Vertices.ToList(); DataEdge edge; //Then create two edges optionaly defining Text property to show who are connected foreach (string state in states) { if (links.ContainsKey(state)) { foreach (KeyValuePair <string, string> link in links[state]) { var vA = vlist.Find(x => x.Text.Equals(state)); var vB = vlist.Find(x => x.Text.Equals(link.Value)); edge = new DataEdge(vA, vB) { Text = link.Key }; dataGraph.AddEdge(edge); } } } _gArea.LogicCore.Graph = dataGraph; _gArea.GenerateGraph(true); _gArea.RelayoutGraph(); _gArea.SetVerticesDrag(true, true); _zoomctrl.ZoomToFill(); }