Exemplo n.º 1
0
    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();
    }
Exemplo n.º 2
0
    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();
    }
Exemplo n.º 3
0
    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();
        }
    }
Exemplo n.º 4
0
    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++;
        }
    }
Exemplo n.º 5
0
    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);
        }
    }
Exemplo n.º 6
0
    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);
        }
    }
Exemplo n.º 7
0
    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;
        }
    }
Exemplo n.º 8
0
    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;
        }
        }
    }
Exemplo n.º 9
0
    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();
    }