Esempio n. 1
0
        public static void RebuildBanks(InAudioBankLink rootBank, InAudioNode root)
        {
            SystemFolderHelper.CreateIfMissing(FolderSettings.BankCreateFolder);
            TreeWalker.ForEach(rootBank, CreateIfMissing);
            TreeWalker.ForEach(rootBank, DeleteAllNodesFromBanks);
            TreeWalker.ForEach(root, node =>
            {
                var folderData = node.NodeData as InFolderData;
                if (folderData != null && folderData.BankLink == null)
                {
                    folderData.BankLink = rootBank;
                }
            });
            TreeWalker.ForEach(root, AddNodesToBank);

            //Set the bank of the root node if it is missing
            InFolderData inFolderData = root.NodeData as InFolderData;

            if (inFolderData != null && inFolderData.BankLink == null)
            {
                inFolderData.BankLink = TreeWalker.FindFirst(rootBank, link => link.Type == AudioBankTypes.Link);
            }
            if (inFolderData.BankLink != null)
            {
                TreeWalker.ForEach(root, SetBanks);
            }
        }
Esempio n. 2
0
        public static void ChangeBankOverride(InAudioNode node, InAudioBankLink rootBank, InAudioNode root)
        {
            var all = TreeWalker.FindAll(rootBank, link => link.Type == AudioBankTypes.Link ? link.LazyBankFetch : null);

            UndoHelper.RecordObject(all.ToArray().AddObj(node.NodeData), "Changed Bank");
            InFolderData data = (node.NodeData as InFolderData);

            data.OverrideParentBank = !data.OverrideParentBank;
            RebuildBanks(rootBank, root);
        }
Esempio n. 3
0
 private static void SetBanks(InAudioNode node)
 {
     if (node.IsRootOrFolder)
     {
         InFolderData inFolderData = (node.NodeData as InFolderData);
         if (inFolderData != null)
         {
             if (inFolderData.BankLink == null)
             {
                 inFolderData.BankLink = node.GetBank();
             }
         }
     }
 }
Esempio n. 4
0
        public static void AddNewParent(InAudioNode node, AudioNodeType parentType)
        {
            UndoHelper.RecordObject(new Object[] { node, node.Parent, node.GetBankDirect() }, "Undo Add New Parent for " + node.Name);
            var newParent = CreateNode(node.gameObject, node.Parent, parentType);
            var oldParent = node.Parent;

            newParent.Bus       = node.Bus;
            newParent.FoldedOut = true;
            if (node.Type == AudioNodeType.Folder)
            {
                InFolderData data = (InFolderData)newParent.NodeData;
                data.BankLink = oldParent.GetBank();
            }
            int index = oldParent.Children.FindIndex(node);

            NodeWorker.RemoveFromParent(node);
            node.AssignParent(newParent);

            OnRandomNode(newParent);

            NodeWorker.RemoveFromParent(newParent);
            oldParent.Children.Insert(index, newParent);
        }