コード例 #1
0
        public PureDataMultipleItem GetPureDataRandomItem(PureDataContainer container, List <int> childrenIds, object source)
        {
            PureDataMultipleItem        randomAudioItem = new PureDataMultipleItem(container.Name, pureData);
            List <PureDataSubContainer> childcontainers = new List <PureDataSubContainer>();
            List <float> weights = new List <float>();

            for (int i = 0; i < childrenIds.Count; i++)
            {
                PureDataSubContainer childContainer = container.GetSubContainerWithID(childrenIds[i]);
                if (childContainer != null)
                {
                    childcontainers.Add(childContainer);
                    weights.Add(childContainer.weight);
                }
            }

            PureDataSubContainer randomChildContainer = HelperFunctions.WeightedRandom(childcontainers, weights);

            if (randomAudioItem != null)
            {
                PureDataItem childAudioItem = GetSubContainerAudioItem(container, randomChildContainer, source);
                if (childAudioItem != null)
                {
                    randomAudioItem.AddItem(childAudioItem);
                }
            }

            return(randomAudioItem);
        }
コード例 #2
0
        public PureDataMultipleItem GetPureDataSwitchItem(PureDataContainer container, List <int> childrenIds, object source)
        {
            PureDataMultipleItem switchAudioItem = new PureDataMultipleItem(container.Name, pureData);
            int stateIndex = int.MinValue;

            PureDataSubContainer[] childrenSubContainers = container.IdsToSubContainers(childrenIds);

            if (childrenSubContainers[0].parentId == 0)
            {
                stateIndex = container.switchSettings.GetCurrentStateIndex();
            }
            else
            {
                PureDataSubContainer parentSubContainer = container.GetSubContainerWithID(childrenSubContainers[0].parentId);
                stateIndex = parentSubContainer.switchSettings.GetCurrentStateIndex();
            }

            if (stateIndex != int.MinValue)
            {
                foreach (PureDataSubContainer childSubContainer in childrenSubContainers)
                {
                    if (childSubContainer.switchSettings.stateIndex == stateIndex)
                    {
                        PureDataItem childAudioItem = GetSubContainerAudioItem(container, childSubContainer, source);

                        if (childAudioItem != null)
                        {
                            switchAudioItem.AddItem(childAudioItem);
                        }
                    }
                }
            }

            return(switchAudioItem);
        }
コード例 #3
0
        public PureDataItem PlayContainer(string containerName, object source, float delay, params PureDataOption[] options)
        {
            PureDataMultipleItem item = GetPureDataMultipleItem(containerName, source);

            item.ApplyOptions(options);
            item.Play(delay);
            return(item);
        }
コード例 #4
0
        public PureDataMultipleItem GetPureDataMixItem(PureDataContainer container, List <int> childrenIds, object source)
        {
            PureDataMultipleItem mixAudioItem = new PureDataMultipleItem(container.Name, pureData);

            foreach (int childrenId in childrenIds)
            {
                PureDataItem childItem = GetSubContainerAudioItem(container, container.GetSubContainerWithID(childrenId), source);
                if (childItem != null)
                {
                    mixAudioItem.AddItem(childItem);
                }
            }

            return(mixAudioItem);
        }
コード例 #5
0
        public PureDataMultipleItem GetPureDataContainerItem(PureDataContainer container, PureDataSubContainer subContainer, object source)
        {
            PureDataMultipleItem multipleAudioItem = null;

            switch (subContainer.type)
            {
            case PureDataSubContainer.Types.RandomContainer:
                multipleAudioItem = GetPureDataRandomItem(container, subContainer.childrenIds, source);
                break;

            case PureDataSubContainer.Types.SwitchContainer:
                multipleAudioItem = GetPureDataSwitchItem(container, subContainer.childrenIds, source);
                break;

            default:
                multipleAudioItem = GetPureDataMixItem(container, subContainer.childrenIds, source);
                break;
            }
            return(multipleAudioItem);
        }