コード例 #1
0
        //bool longOpen = false;
        //bool latOpen = false;
        public override void OnInspectorGUI()
        {
            if (done == false)
            {
                Awake();

                done = true;
            }

            if (tileManager == null)
            {
                Awake();
            }
            if (tileManager.tiles != null && foldoutOpen.Length != tileManager.tiles.Count)
            {
                Awake();
            }

            if (GUILayout.Button("Add New Tile"))
            {
                TileEditorWindow window = EditorWindow.CreateInstance <TileEditorWindow>();
                EditorWindow.GetWindow <TileEditorWindow>();
                window.editMode        = false;
                window.tileIndexToEdit = 0;
            }

            if (tileManager.tiles != null && tileManager.tiles.Count > 0)
            {
                string error;
                if (CheckForNeededTiles(out error) == false)
                {
                    EditorGUILayout.HelpBox(error, MessageType.Error);
                }
                EditorGUI.indentLevel++;
                for (int i = 0; i < tileManager.tiles.Count; i++)
                {
                    Tile tile = tileManager.tiles[i];

                    EditorGUILayout.BeginHorizontal();

                    foldoutOpen[i] = EditorGUILayout.Foldout(foldoutOpen[i], tile.name);

                    if (GUILayout.Button("Edit"))
                    {
                        TileEditorWindow window = EditorWindow.CreateInstance <TileEditorWindow>();
                        EditorWindow.GetWindow <TileEditorWindow>();
                        window.editMode        = true;
                        window.tileIndexToEdit = i;
                    }

                    if (GUILayout.Button("Remove"))
                    {
                        resourceManager.DeleteDependencies(i);
                        improvementManager.DeleteDependencies(i);
                        tileManager.DeleteTile(tile);
                    }

                    EditorGUILayout.EndHorizontal();

                    if (foldoutOpen[i])
                    {
                        tile.name       = EditorGUILayout.TextField("Name:", tile.name);
                        tile.isShore    = EditorGUILayout.Toggle("Is Shore:", tile.isShore);
                        tile.isOcean    = EditorGUILayout.Toggle("Is Ocean:", tile.isOcean);
                        tile.isMountain = EditorGUILayout.Toggle("Is Mountain:", tile.isMountain);
                        if (tile.isShore == false && tile.isOcean == false && tile.isMountain == false)
                        {
                            EditorGUI.indentLevel++;

                            EditorGUILayout.SelectableLabel("Rainfall Spawn:", EditorStyles.boldLabel);
                            EditorGUI.indentLevel++;
                            EditorGUILayout.BeginHorizontal();
                            tile.possibleRainfallValues.min = EditorGUILayout.FloatField("Minimum", tile.possibleRainfallValues.min);
                            tile.possibleRainfallValues.max = EditorGUILayout.FloatField("Maximum", tile.possibleRainfallValues.max);
                            EditorGUILayout.EndHorizontal();
                            EditorGUI.indentLevel--;

                            EditorGUILayout.SelectableLabel("Temperature Spawn:", EditorStyles.boldLabel);
                            EditorGUI.indentLevel++;
                            EditorGUILayout.BeginHorizontal();
                            tile.possibleTemperatureValues.min = EditorGUILayout.FloatField("Minimum", tile.possibleTemperatureValues.min);
                            tile.possibleTemperatureValues.max = EditorGUILayout.FloatField("Maximum", tile.possibleTemperatureValues.max);
                            EditorGUILayout.EndHorizontal();
                            EditorGUI.indentLevel--;

                            EditorGUI.indentLevel--;

                            //if (tileManager.useLatAndLong)
                            //{
                            //    EditorGUI.indentLevel++;
                            //    longOpen = EditorGUILayout.Foldout(longOpen, "Longitude Clamps:");
                            //    if (longOpen)
                            //    {
                            //        tile.possibleWorldDegrees.top = EditorGUILayout.FloatField("Top Longitude:", tile.possibleWorldDegrees.top);
                            //        tile.possibleWorldDegrees.bottom = EditorGUILayout.FloatField("Bottom Longitude:", tile.possibleWorldDegrees.bottom);
                            //    }
                            //    latOpen = EditorGUILayout.Foldout(latOpen, "Latitude Clamps:");
                            //    if (latOpen)
                            //    {
                            //        tile.possibleWorldDegrees.left = EditorGUILayout.FloatField("Left Latitude:", tile.possibleWorldDegrees.left);
                            //        tile.possibleWorldDegrees.right = EditorGUILayout.FloatField("Right Latitude:", tile.possibleWorldDegrees.right);
                            //    }
                            //    EditorGUI.indentLevel--;
                            //}
                        }
                    }
                }
            }
            else
            {
                GUILayout.Label("No Tiles Created; Please Add Some");
            }
            EditorGUI.indentLevel--;

            if (GUILayout.Button("Finalize"))
            {
                tileManager.UpdateTileNames();
            }
        }