private void DrawNode(SceneTextNode node)
        {
            GUIStyle style, wrapStyle;

            SetNodeStyleAndSize(node, out style, out wrapStyle);

            GUILayout.BeginArea(node.GetRect(), style);

            // Create, Link, Destroy buttons
            GUILayout.BeginHorizontal();
            if (GUILayout.Button("+"))
            {
                creatingNode = node;
            }
            DrawLinkButtons(node);
            if (GUILayout.Button("x"))
            {
                nodeToDelete = node;
            }
            GUILayout.EndHorizontal();

            // Toggle Is Player Speaking
            GUILayout.BeginHorizontal();
            node.SetVariableText(EditorGUILayout.Toggle(node.IsVariableText()));
            EditorGUILayout.LabelField("Is Variable Description?");
            GUILayout.EndHorizontal();

            if (node.IsVariableText())
            {
                node.SetDescriptionPredicate((TextDescriptionPredicate)EditorGUILayout.EnumPopup(node.GetDescriptionPredicate()));
                int descCount = node.GetDescriptionCount();
                for (int i = 0; i < descCount; i++)
                {
                    EditorGUILayout.FloatField(node.GetDescriptionLimit(i));
                    EditorGUILayout.TextField(node.GetDescriptionText(i));
                }
            }
            else
            {
                // Dialogue Text
                node.SetText(EditorGUILayout.TextArea(node.GetEditorText(), wrapStyle));
            }


            GUILayout.EndArea();
        }