Example #1
0
    private bool processGUIMenus(SceneView _view)
    {
        Rect _rect = new Rect(10, 10, 100, 400);

        GUILayout.BeginArea(_rect);

        int selectedGridIndex = 0;

        switch (m_editMode)
        {
        case EditMode.addBlock: {
            selectedGridIndex = 0;
            break;
        }

        case EditMode.delBlock: {
            selectedGridIndex = 1;
            break;
        }
        }

        string[] _buttons = new string[] { "Add", "Delete", "Clear", "Destroy hiden", "Save", "Load", "Exit" };

        int oldButtonSelected = selectedGridIndex;

        selectedGridIndex = GUILayout.SelectionGrid(selectedGridIndex, _buttons, 1);

        GUILayout.EndArea();

        processSelectionGridMenu(_view);

        if (oldButtonSelected != selectedGridIndex)
        {
            switch (selectedGridIndex)
            {
            case 0: {
                m_editMode = EditMode.addBlock;
                break;
            }

            case 1: {
                m_editMode = EditMode.delBlock;
                break;
            }

            case 2: {
                m_Instance.ClearDictionary();
                break;
            }

            case 3: {
                DeleteHidenObjects();
                break;
            }

            case 4: {
                string path = EditorUtility.SaveFilePanelInProject("Select level path", "Level", "xml", "Select a file");
                if (path.Length != 0)
                {
                    m_Instance.SerializeMe(path);
                }
                break;
            }

            case 5: {
                string path = EditorUtility.OpenFilePanel("Select level path", Application.dataPath, "xml");
                if (path.Length != 0)
                {
                    m_Instance.ClearDictionary();
                    ScriptableObject.DestroyImmediate(m_Instance);
                    m_Instance = CubeGridXML.ToGrid(path);

                    CubeGridSingletonObject sing = GameObject.FindObjectOfType <CubeGridSingletonObject>();
                    if (sing != null)
                    {
                        sing.Grid = m_Instance;
                    }
                }
                break;
            }

            case 6: {
                DeselectThisGrid();
                break;
            }
            }

            return(true);
        }
        ;

        return(false);
    }