void windowShowLoadDialog() { scrollPosition = GUILayout.BeginScrollView(scrollPosition); { foreach (string levelName in levelsArray) { GUILayout.BeginHorizontal(); { GUILayout.Label(levelName); if (GUILayout.Button("Load")) { editNodesMode = false; STLevel.LoadLevel(levelName); STLevel.GetNodesNet().ChangeNetNodesState(false); STLevel.GetRootNode().SetEnableTouches(true); } if (GUILayout.Button("Delete")) { STLevel.DeleteLevel(levelName); updateLevelsList(); } } GUILayout.EndHorizontal(); } } GUILayout.EndScrollView(); }
public void onMousePressed() { if (STLevel.isEditMode == false) { showBranchSelection(); return; } Vector3 mouse_pos = Input.mousePosition; Vector3 pos = Camera.main.ScreenToWorldPoint(mouse_pos) - this.transform.position; mouseStartPos.x = pos.x; mouseStartPos.y = pos.y; mouseStartPos.z = 0; // showBranchSelection(); // STLevel.GetNodesNet().HideElementNetNode(); // Vector3 thepos = STLevel.GetNodesNet().GetClothestNetNodePos(this.transform.position); this.transform.position = new Vector3(thepos.x, thepos.y, transform.position.z); // this.UpdateLinkPosition(this.transform.position); STLevel.UpdateActiveNodes(); }
void changeGameMode(bool isEditModeVal) { if (isEditModeVal == true) { STLevel.GetControl().ChangeEnabledState(false); STLevel.Solve(); STLevel.isEditMode = true; STLevel.GetRootNode().SetEditMode(true); STLevel.GetRootNode().SetEnableTouches(true); STLevel.GetNodesNet().ChangeNetNodesState(false); } else { STLevel.CalcTreeRects(); STLevel.GetRootNode().SaveSolution(); editNodesMode = false; STLevel.GetRootNode().SetEditMode(false); STLevel.GetNodesNet().ChangeNetNodesState(false); STLevel.GetControl().ChangeEnabledState(true); STLevel.isEditMode = false; STLevel.GetRootNode().SetEnableTouches(true); STLevel.StartLevel(); } }
public void GenNextNode(int N, int depth, int prevPattern, int curBranchLength) { if (N == 0) { return; } STPattern pattern = STPatternManager.GetPattern(depth); List <int> paternVects = new List <int>(); List <Vector3> vectPositions = STLevel.GetNodesNet().GetGenPositions(pattern, transform.position, prevPattern, paternVects, curBranchLength); int i = 0; if (vectPositions != null) { foreach (Vector3 nodePos in vectPositions) { STRootNode root = STLevel.GetRootNode(); STNode nodePref = Instantiate(root.NodePref) as STNode; if (nodePref != null) { nodePref.brenchLength = this.brenchLength + (((paternVects[i] - 1) / 8) + 1); nodePref.transform.parent = mRotor.transform; nodePref.mParent = this; nodePref.nodeDepth = depth; mRotor.mChilds.Add(nodePref); nodePref.transform.position = new Vector3(nodePos.x, nodePos.y, -depth); STLevel.GetRootNode().SetTreeDepth(depth); } i++; } } i = 0; foreach (STNode node in mRotor.mChilds) { node.GenNextNode(N - 1, depth + 1, paternVects[i], node.brenchLength); i++; } }
void guiNodesButton() { editNodesMode = !editNodesMode; if (editNodesMode == true) { STLevel.GetNodesNet().ChangeNetNodesState(true); STLevel.GetRootNode().SetEditMode(true); STLevel.GetRootNode().SetEnableTouches(false); } else { STLevel.GetNodesNet().ChangeNetNodesState(false); STLevel.GetRootNode().SetEditMode(true); STLevel.GetRootNode().SetEnableTouches(true); } }
public void onMouseDown() { if (STLevel.isEditMode == false) { return; } // showBranchSelection(); STLevel.GetRootNode().HideAllGUIS(); mUI.ShowGUI(true); // if (mParent != null) { STLevel.GetNodesNet().ShowElementNetNode(mParent.transform.position); } else { STLevel.GetNodesNet().ShowElementNetNode(this.transform.position); } }
void buildNet(int elementCount, ref List <STNetNode> container) { STNetNode node = Instantiate(netNodePref) as STNetNode; node.Net = this; node.transform.position = Vector3.zero; node.transform.parent = STLevel.GetNodesNet().transform; container.Add(node); float angle = 45.0f; float currentAngle = 0.0f; for (int i = 1; i <= elementCount; i++) { currentAngle = 0.0f; do { // Debug.Log (node.transform.position); float posX = i * netBtwNodesWidth * Mathf.Cos(currentAngle / 180 * Mathf.PI); float posY = i * netBtwNodesWidth * Mathf.Sin(currentAngle / 180 * Mathf.PI); float posZ = 1; Vector3 point = new Vector3(posX, posY, posZ); node = Instantiate(netNodePref) as STNetNode; node.Net = this; container.Add(node); node.transform.position = point; node.transform.parent = STLevel.GetNodesNet().transform; currentAngle += angle; } while (currentAngle < 360.0f); //angle /= 2.0f; } }
void iListener.OnEvent(EVENT_T t, float val, iListener ch) { switch (t) { case (EVENT_T.ON_ADD): { distAdd = 1; angleAdd = 0; STRootNode root = STLevel.GetRootNode(); if (root != null) { STNode node = Instantiate(root.NodePref) as STNode; if (node != null) { node.transform.parent = mRotor.transform; do { if (distAdd > 5) { break; } if (angleAdd >= 360) { angleAdd = 0; distAdd++; } Vector3 transformPos = new Vector3(STLevel.GetNodesNet().NetBtwNodesWidth() * Mathf.Cos(angleAdd / 180 * Mathf.PI) * distAdd, STLevel.GetNodesNet().NetBtwNodesWidth() * Mathf.Sin(angleAdd / 180 * Mathf.PI) * distAdd, 0); node.transform.localPosition = mRotor.transform.localPosition + transformPos; angleAdd += 45; node.transform.position = STLevel.GetNodesNet().GetClothestNetNodePos(node.transform.position); Debug.Log(node.transform.position); }while(STLevel.GetRootNode().CheckForIntersection(node.transform.position.x, node.transform.position.y, transform.position.x, transform.position.y, 0, 0) == true); node.transform.localRotation = mRotor.transform.localRotation; node.mParent = this; mRotor.mChilds.Add(node); STLevel.GetNodesNet().ShowElementNetNode(transform.position); STLevel.GetNodesNet().HideElementNetNode(); //node.mLink.UpdatePos (transform.position); Vector3 thepos = STLevel.GetNodesNet().GetClothestNetNodePos(node.transform.position); node.transform.position = new Vector3(thepos.x, thepos.y, node.transform.position.z); node.UpdateLinkPosition(node.transform.position); showBranchSelection(); } } break; } case (EVENT_T.ON_REMOVE): { if (mParent != null) { Destroy(this.gameObject); mParent.mRotor.mChilds.Remove(this); } break; } case (EVENT_T.ON_CHANGE): { this.changeNodeType(); STLevel.UpdateActiveNodes(); break; } } }
void guiEditToolBarButtons() { GUI.BeginGroup(toolBarRect); GUILayout.BeginVertical(); if (GUILayout.Button("Load Level", GUILayout.Height(buttonHeight))) { isDialogHiden = false; //isSavingMode = false; windowType = windowShowContentType.loading; isCantSaveDialog = false; } if (GUILayout.Button("Save Level", GUILayout.Height(buttonHeight))) { isDialogHiden = false; windowType = windowShowContentType.saving; isCantSaveDialog = false; } if (GUILayout.Button("Clear Level", GUILayout.Height(buttonHeight))) { STLevel.GetRootNode().Reset(); STLevel.GetNodesNet().Reset(); } if (editNodesMode == true) { if (GUILayout.Button("Edit Grid", GUILayout.Height(buttonHeight))) { guiNodesButton(); } } if (GUILayout.Button("Random Level", GUILayout.Height(buttonHeight))) { //STLevel.GenerateRandomLevel (); windowType = windowShowContentType.levelGeneration; } if (isDialogHiden == false) { if (GUILayout.Button("Hide Dialog", GUILayout.Height(buttonHeight))) { isDialogHiden = true; } } else { if (GUILayout.Button("Show Dialog", GUILayout.Height(buttonHeight))) { isDialogHiden = false; } } // if (GUILayout.Button ("Align Net To Node", GUILayout.Height (buttonHeight))) // { // STLevel.GetNodesNet().showNetNode = STRootNode.activeNode; // } GUILayout.EndVertical(); GUI.EndGroup(); }