public void LoadGraph(string path) { string jsonString = ""; try { jsonString = File.ReadAllText(path); } catch (System.Exception) { } if (jsonString == "") { string log = $"{path} is empty"; uiManager.AddLog(log); Debug.LogError(log); return; } if (isSimulating) { Simulate(); } ClearAll(); //if (!jsonString.Contains("camSize")) //{ // int len = jsonString.Length; // jsonString.Insert(len - 2, ",\"camPos\":{\"x\":0.0,\"y\":0.0,\"z\":-10.0},\"camSize\":10.0"); // print(jsonString); //} PetriNet petriNet = JsonUtility.FromJson <PetriNet>(jsonString); AddStateMode addStateMode = FindObjectOfType <AddStateMode>(); AddTransitionMode addTransitionMode = FindObjectOfType <AddTransitionMode>(); AddEdgeMode addEdgeMode = FindObjectOfType <AddEdgeMode>(); foreach (NodeInfo nodeInfo in petriNet.nodeInfos) { int value = nodeInfo.value; Vector3 pos = nodeInfo.WorldPos; if (nodeInfo.tag == "State") { addStateMode.AddState(pos).value = value; } else { addTransitionMode.AddTransition(pos).value = value; } } foreach (EdgeInfo edgeInfo in petriNet.edgeInfos) { Node toNode = FindNode(edgeInfo.toNodeTag, edgeInfo.toNodePosition); Node fromNode = FindNode(edgeInfo.fromNodeTag, edgeInfo.fromNodePosition); addEdgeMode.CreateEdge(fromNode, toNode, edgeInfo.points).weight = edgeInfo.weight; } string logText = $"Petri-net loaded from {path}"; uiManager.AddLog(logText); Debug.Log(logText); Refresh(); Debug.Log(petriNet.camPos + " " + petriNet.camSize); Camera cam = Camera.main; cam.transform.position = petriNet.camPos; camController.SetCameraSize(petriNet.camSize); }
void Update() { if (!enableShortcut) { return; } if (Input.GetKeyDown(KeyCode.LeftControl)) { ctrlDown = true; } else if (Input.GetKeyUp(KeyCode.LeftControl)) { ctrlDown = false; } if (Input.GetKeyDown(KeyCode.LeftShift)) { shiftDown = true; } else if (Input.GetKeyUp(KeyCode.LeftShift)) { shiftDown = false; } if (Input.GetKeyDown(KeyCode.D) && ctrlDown && !shiftDown) { string logText = "Delete mode activated"; uiManager.AddLog(logText); Debug.Log(logText); graphManager.currentMode = graphModes.GetComponent <DeleteMode>(); } else if (Input.GetKeyDown(KeyCode.E) && !ctrlDown && !shiftDown) { string logText = "Add edge mode activated"; Debug.Log(logText); uiManager.AddLog(logText); AddEdgeMode addEdgeMode = graphModes.GetComponent <AddEdgeMode>(); addEdgeMode.ResetEverything(); graphManager.currentMode = addEdgeMode; } //else if (Input.GetKeyDown(KeyCode.E) && !ctrlDown && shiftDown) //{ // string logText = "Add double edge mode activated"; // Debug.Log(logText); // uiManager.AddLog(logText); // AddDoubleEdgeMode addDoubleEdgeMode = graphModes.GetComponent<AddDoubleEdgeMode>(); // addDoubleEdgeMode.prevNode = null; // graphManager.currentMode = addDoubleEdgeMode; //} else if (Input.GetKeyDown(KeyCode.E) && ctrlDown && !shiftDown) { string logText = "Edit mode activated"; Debug.Log(logText); uiManager.AddLog(logText); graphManager.currentMode = graphModes.GetComponent <InputMode>(); } else if (Input.GetKeyDown(KeyCode.F) && ctrlDown && !shiftDown) { string logText = "Firing mode activate"; Debug.Log(logText); uiManager.AddLog(logText); graphManager.currentMode = graphModes.GetComponent <FiringMode>(); } else if (Input.GetKeyDown(KeyCode.L) && ctrlDown) { StartCoroutine(ShowLoadDialogCoroutine()); } else if (Input.GetKeyDown(KeyCode.R) && ctrlDown && !shiftDown) { ResetGraphStates(); } else if (Input.GetKeyDown(KeyCode.R) && ctrlDown && shiftDown) { graphManager.ClearAll(); } else if (Input.GetKeyDown(KeyCode.S) && !ctrlDown && !shiftDown) { ActivateAddStateMode(); } else if (Input.GetKeyDown(KeyCode.S) && ctrlDown) { StartCoroutine(ShowSaveDialogCoroutine()); } else if (Input.GetKeyDown(KeyCode.T) && !ctrlDown && !shiftDown) { string logText = "Add transition mode activated"; Debug.Log(logText); uiManager.AddLog(logText); graphManager.currentMode = graphModes.GetComponent <AddTransitionMode>(); } else if (Input.GetKeyDown(KeyCode.X) && ctrlDown && shiftDown) { string logText = "Exiting application"; Debug.Log(logText); uiManager.AddLog(logText); Application.Quit(); } else if (Input.GetKeyDown(KeyCode.Space) && ctrlDown && shiftDown) { SimulateGraph(); } //else //{ // for(int i=0; i<10; i++) // { // if (Input.GetKeyDown("" + i) && altDown && shiftDown) // { // graphManager.SaveGraph(i); // } // else if(Input.GetKeyDown("" + i) && altDown && !shiftDown) // { // graphManager.LoadGraph(i); // } // } //} GetMovementInput(); camController.MoveCamera(moveInput); }