public static void Show(PreviewableNode node, bool showExport = false)
        {
            node.IsPreviewDropdown = EditorGUILayout.Foldout(node.IsPreviewDropdown, "Preview");

            if (node.IsPreviewDropdown)
            {
                if (node.PreviewTexture != null)
                {
                    var ctr = EditorGUILayout.GetControlRect(false, PreviewTextureSize);
                    ctr.x     = PreviewTextureSize * 0.25f;
                    ctr.width = PreviewTextureSize;

                    EditorGUI.DrawPreviewTexture(ctr, node.PreviewTexture);
                }

                if (GUILayout.Button("Update Preview"))
                {
                    node.PreviewTexture = node.DidRequestTextureUpdate(PreviewTextureSize, PreviewTextureSize);
                }
                if (showExport && GUILayout.Button("Export Preview"))
                {
                    string path = Application.dataPath + "/TerraPreview.png";
                    MathUtil.WriteTexture(node.DidRequestTextureUpdate(ExportTextureSize, ExportSpread), path);
                    Debug.Log("Exported preview texture to " + path);
                }
            }
        }
        public static void Show(PreviewableNode node)
        {
            node.IsPreviewDropdown = EditorGUILayout.Foldout(node.IsPreviewDropdown, "Preview");

            if (node.IsPreviewDropdown)
            {
                if (node.PreviewTexture != null)
                {
                    var ctr = EditorGUILayout.GetControlRect(false, node.PreviewTextureSize);
                    ctr.x     = node.PreviewTextureSize * 0.25f;
                    ctr.width = node.PreviewTextureSize;

                    EditorGUI.DrawPreviewTexture(ctr, node.PreviewTexture);
                }

                if (GUILayout.Button("Update Preview"))
                {
                    node.PreviewTexture = node.DidRequestTextureUpdate();
                }
            }
        }