protected override bool CanDropObjects(AudioBus node, Object[] objects)
 {
     if (objects != null && objects.Length > 0 && objects[0] as AudioBus != null)
     {
         return(!NodeWorker.IsChildOf(objects[0] as AudioBus, node));
     }
     return(false);
 }
        public static bool CanDropObjects(AudioEvent audioEvent, Object[] objects)
        {
            if (objects.Length == 0 || audioEvent == null)
            {
                return(false);
            }

            if (audioEvent.Type == EventNodeType.Event)
            {
                var  audioNodes    = GetConvertedList <AudioNode>(objects.ToList());
                bool audioNodeDrop = audioNodes.TrueForAll(node => node != null && node.IsPlayable);

                var  audioBankLinks = GetConvertedList <AudioBankLink>(objects.ToList());
                bool bankLinkDrop   = audioBankLinks.TrueForAll(node => node != null && node.Type == AudioBankTypes.Link);

                var  busNodes     = GetConvertedList <AudioBus>(objects.ToList());
                bool audioBusDrop = busNodes.TrueForAll(node => node != null);

                return(audioNodeDrop | bankLinkDrop | audioBusDrop);
            }
            else if (audioEvent.Type == EventNodeType.Folder || audioEvent.Type == EventNodeType.Root)
            {
                var draggingEvent = objects[0] as AudioEvent;
                if (draggingEvent == null)
                {
                    return(false);
                }

                if (draggingEvent.Type == EventNodeType.Event)
                {
                    return(true);
                }
                if ((draggingEvent.Type == EventNodeType.Folder && !NodeWorker.IsChildOf(draggingEvent, audioEvent)) || draggingEvent.Type == EventNodeType.EventGroup)
                {
                    return(true);
                }
            }
            else if (audioEvent.Type == EventNodeType.EventGroup)
            {
                var draggingEvent = objects[0] as AudioEvent;
                if (draggingEvent == null)
                {
                    return(false);
                }
                if (draggingEvent.Type == EventNodeType.Event)
                {
                    return(true);
                }
            }

            return(false);
        }
Ejemplo n.º 3
0
    protected override bool CanDropObjects(AudioBankLink node, Object[] objects)
    {
        if (node == null || objects == null)
        {
            return(false);
        }

        if (objects.Length > 0 && objects[0] as AudioBankLink != null && node.Type != AudioBankTypes.Link)
        {
            return(!NodeWorker.IsChildOf(objects[0] as AudioBankLink, node));
        }
        return(false);
    }
Ejemplo n.º 4
0
    protected override bool CanDropObjects(AudioNode node, UnityEngine.Object[] objects)
    {
        if (node == null || objects == null)
        {
            return(false);
        }

        if (node.Type == AudioNodeType.Voice)
        {
            return(false);
        }

        int clipCount = DragAndDrop.objectReferences.Count(p => p is AudioClip);
        int nodeCount = DragAndDrop.objectReferences.Count(p => p is AudioNode);

        if (DragAndDrop.objectReferences.Length == 0)
        {
            return(false);
        }

        if (clipCount == objects.Length) //Handle clip count
        {
            if (node.Type == AudioNodeType.Audio && clipCount != 1)
            {
                return(false);
            }

            return(true);
        }
        else if (nodeCount == objects.Length)     //Handle audio node drag n drop
        {
            if (node.Type == AudioNodeType.Audio) //Can't drop on an audionode as it can't have children
            {
                return(false);
            }

            if (node == objects[0] as AudioNode)
            {
                return(false);
            }

            return(!NodeWorker.IsChildOf(objects[0] as AudioNode, node));
        }
        return(false);
    }