public static void DeleteNode(InAudioEventNode node)
 {
     InUndoHelper.DoInGroup(() =>
     {
         InUndoHelper.RegisterUndo(node._parent, "Event Deletion");
         node._parent._children.Remove(node);
         DeleteNodeRec(node);
     });
 }
        private void CreateChild(InAudioEventNode node, EventNodeType type)
        {
            InUndoHelper.DoInGroup(() =>
            {
                InUndoHelper.RegisterUndo(node, "Event Creation");
                AudioEventWorker.CreateNode(node, type);
            });

            node.EditorSettings.IsFoldedOut = true;
        }
Beispiel #3
0
        public static void Draw(InAudioNode node)
        {
            //node.ScrollPosition = GUILayout.BeginScrollView(node.ScrollPosition);

            EditorGUILayout.BeginVertical();
            var trackData = (node._nodeData as InTrackData);

            NodeTypeDataDrawer.DrawName(node);

            //UndoHelper.GUIUndo(trackData, "Track length", ref trackData.TrackLength, () => EditorGUILayout.FloatField("Track length", trackData.TrackLength));


            selectedArea = GUILayout.SelectionGrid(selectedArea, new [] { "Track", "Standard Settings" }, 2);
            EditorGUILayout.HelpBox("Hold control to drag a child node onto a track.", MessageType.None);

            if (selectedArea == 1)
            {
                NodeTypeDataDrawer.Draw(node);
            }
            else
            {
                EditorGUILayout.BeginVertical();
                ScrollArea = EditorGUILayout.BeginScrollView(ScrollArea, false, false);
                EditorGUILayout.BeginVertical();

                foreach (var layer in trackData.Layers)
                {
                    DrawItem(node, layer);
                }

                if (GUILayout.Button("Add Layer", GUILayout.Width(150)))
                {
                    InUndoHelper.RecordObjectFull(trackData, "Add layer");
                    trackData.Layers.Add(new InLayerData());
                }


                EditorGUILayout.EndVertical();
                EditorGUILayout.EndScrollView();
                EditorGUILayout.EndVertical();
            }
            EditorGUILayout.EndVertical();
            if (toRemove != null)
            {
                if (trackData.Layers.Remove(toRemove))
                {
                    GUI.FocusControl("none");
                    InUndoHelper.RegisterUndo(trackData, "Removed Layer");
                }
            }
            //GUILayout.EndScrollView();
        }