Exemplo n.º 1
0
 public void Clear()
 {
     nodeMap.Clear();
     platforms.Clear();
 }
Exemplo n.º 2
0
 /// <summary>
 /// Clears the tiles
 /// </summary>
 public void Clear()
 {
     TileDictionary.Clear();
 }
Exemplo n.º 3
0
        //Drawing
        public override VisualElement CreateInspectorGUI()
        {
            var root = _rootElement;

            root.Clear();
            _visualTree.CloneTree(root);

            Materials             = _rootElement.Query <IMGUIContainer>("Materials");
            toolbar               = _rootElement.Query <IMGUIContainer>("Toolbar");
            tilePalette           = _rootElement.Query <IMGUIContainer>("TilePaletteGrid");
            tileEditor            = _rootElement.Query <IMGUIContainer>("TileEditor");
            toolbar.onGUIHandler += () =>
            {
                EditorGUILayout.BeginVertical("Box");
                if (GUILayout.Button("Clear tilemap"))
                {
                    bool confirm = EditorUtility.DisplayDialog("Are you sure?", "Clearing a tilemap will erase ALL tiles with no way (currently) to undo. Are you sure?", "Yes, I am sure", "nvm");
                    if (confirm)
                    {
                        tiles.Clear();
                        archi.transform.ClearChildren();
                    }
                }
                GUILayout.Label("Tools");
                archi.selectedTool = GUILayout.Toolbar(archi.selectedTool,
                                                       toolPreviews.ToArray(),
                                                       GUILayout.Width(34 * 3),
                                                       GUILayout.Height(34)
                                                       );
                EditorGUILayout.EndVertical();
                EditorGUILayout.Space(5);
            };
            Materials.onGUIHandler += () =>
            {
                EditorGUILayout.BeginVertical("Box");
                GUILayout.Label("Material");
                EditorGUILayout.BeginHorizontal();
                archi.useTileMaterial = GUILayout.Toggle(archi.useTileMaterial, new GUIContent("Use tile material", "If checked, it will leave the tiles material as is when placed"));
                if (!archi.useTileMaterial)
                {
                    if (archi.materials.Count > 0)
                    {
                        archi.selectedMaterial = GUILayout.Toolbar(archi.selectedMaterial, materialPreviews.ToArray(), GUILayout.Width(34 * materialPreviews.Count), GUILayout.Height(34));
                    }
                    else
                    {
                        GUILayout.Label("No materials. Drag a material onto the inspector to add it.");
                    }
                    if (archi.materials.Count > 0)
                    {
                        if (GUILayout.Button("-", GUILayout.Width(34), GUILayout.Height(34)))
                        {
                            archi.materials.RemoveAt(archi.materials.Count - 1);
                            UpdateMaterialPreviews();
                        }
                    }
                }
                else
                {
                    GUILayout.Label("Using tiles material");
                }
                EditorGUILayout.EndHorizontal();
                EditorGUILayout.EndVertical();
                EditorGUILayout.Space(5);
                HandleDrop(Event.current);
            };
            tileEditor.onGUIHandler += () =>
            {
                archi.selectedTile = Mathf.Clamp(archi.selectedTile, 0, archi.Tiles.Count - 1);
                if (archi.Tiles.Count == 0)
                {
                    return;
                }
                EditorGUILayout.BeginVertical("Box");
                if (!editor && archi.Tiles[archi.selectedTile] != null)
                {
                    CreateCachedEditor(archi.Tiles[archi.selectedTile].GetComponent <Tile>(), null, ref editor);
                }
                if (editor)
                {
                    editor.OnInspectorGUI();
                }
                EditorGUILayout.EndVertical();
            };
            tilePalette.onGUIHandler += () =>
            {
                EditorGUILayout.BeginVertical("Box");
                GUILayout.Label("Tiles");
                EditorGUILayout.BeginHorizontal();
                if (tilePreviews.Count > 0)
                {
                    archi.selectedTile = GUILayout.Toolbar(archi.selectedTile, tilePreviews.ToArray(), GUILayout.Width(32 * tilePreviews.Count), GUILayout.Height(32));
                }
                else
                {
                    GUILayout.Label("No tiles. Drag and drop a tile (MUST HAVE TILE COMPONENT) prefab onto the inspector to add");
                }

                if (archi.Tiles.Count > 0)
                {
                    if (GUILayout.Button("-", GUILayout.Width(32), GUILayout.Height(32)))
                    {
                        archi.Tiles.RemoveAt(archi.Tiles.Count - 1);
                        UpdateTilePreviews();
                    }
                }
                EditorGUILayout.EndHorizontal();
                EditorGUILayout.EndVertical();
            };

            //Update the lists for tile and material previews.
            return(root);
        }