Beispiel #1
0
        public static void OnInspectorGUI(DrawInspectorDelegate DrawDefaultInspector)
        {
            GUILayout.Space(3);
            EditorGUILayout.LabelField("Generation Settings", EditorStyles.boldLabel);
            GRAPH_MODE gmBefore = graphMaker.graphMode;

            graphMaker.graphMode = (GRAPH_MODE)EditorGUILayout.EnumPopup("Graph Type", graphMaker.graphMode);

            if (gmBefore != graphMaker.graphMode)
            {
                dimensions = graphMaker.dimensions;
                if (gmBefore == GRAPH_MODE.POINT && graphMaker.graphMode == GRAPH_MODE.TILE)
                {
                    AdjustDimensions(new Vector2Int(-1, -1));
                }
                else if (gmBefore == GRAPH_MODE.TILE && graphMaker.graphMode == GRAPH_MODE.POINT)
                {
                    AdjustDimensions(new Vector2Int(1, 1));
                }
            }


            dimensions            = EditorGUILayout.Vector2IntField("Board Dimensions", dimensions);
            graphMaker.m_tileSize = EditorGUILayout.FloatField("Tile Size", graphMaker.m_tileSize);
            graphMaker.planeMode  = (PLANE_MODE)EditorGUILayout.EnumPopup("Graph Plane", graphMaker.planeMode);

            if (graphMaker.graphMode == GRAPH_MODE.POINT)
            {
                graphMaker.blockMode = (BLOCK_MODE)EditorGUILayout.EnumPopup("Block Generation", graphMaker.blockMode);
                graphMaker.diagMode  = (DIAG_MODE)EditorGUILayout.EnumPopup("Diagnol Connections", graphMaker.diagMode);
            }

            GUILayout.Space(10);
            EditorGUILayout.LabelField("Generation Control", EditorStyles.boldLabel);
            if (GUILayout.Button("Generate Graph"))
            {
                graphMaker.GenerateBoard(dimensions, graphMaker.tileSize);
                EditorUtility.SetDirty(graphMaker);
            }
            if (graphMaker.graphMode == GRAPH_MODE.POINT)
            {
                if (GUILayout.Button("Create Random Blocked Points"))
                {
                    graphMaker.GenerateRandomBlocks();
                }
                if (graphMaker.diagMode != DIAG_MODE.NONE && GUILayout.Button("Create " + graphMaker.diagMode.ToString() + " Diagnol Connections"))
                {
                    switch (graphMaker.diagMode)
                    {
                    case DIAG_MODE.ALL:
                        graphMaker.GenerateAllDiagConnections(); break;

                    case DIAG_MODE.LEFT:
                        graphMaker.GenerateLeftDiagConnections(); break;

                    case DIAG_MODE.RIGHT:
                        graphMaker.GenerateRightDiagConnections(); break;

                    case DIAG_MODE.RANDOM_ALL:
                        graphMaker.GenerateRandomDiagConnections(); break;

                    case DIAG_MODE.RANDOM_LEFT:
                        graphMaker.GenerateRandomLeftDiagConnections(); break;

                    case DIAG_MODE.RANDOM_RIGHT:
                        graphMaker.GenerateRandomRightDiagConnections(); break;
                    }
                }
            }

            DrawDefaultInspector();
        }
Beispiel #2
0
 public void GenerateBoard(Vector2Int dim, float squareSize, GRAPH_MODE graphMode, PLANE_MODE planeMode)
 {
     this.graphMode = graphMode;
     this.planeMode = planeMode;
     GenerateBoard(dim, squareSize);
 }