public void Remove(PureDataContainer container) { if (parentId == 0) { container.childrenIds.Remove(id); } else { PureDataSubContainer parent = container.GetSubContainerWithID(parentId); if (parent != null) { parent.childrenIds.Remove(id); } } if (container.subContainers.Contains(this)) { container.subContainers.Remove(this); } foreach (int childrenId in childrenIds.ToArray()) { container.GetSubContainerWithID(childrenId).Remove(container); } }
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); }
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); }
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); }
PureDataSubContainer.Types GetParentContainerType(PureDataSubContainer subContainer, PureDataContainer container) { PureDataSubContainer.Types type = PureDataSubContainer.Types.AudioSource; if (subContainer.parentId != 0) { type = container.GetSubContainerWithID(subContainer.parentId).type; } else { type = container.type.ConvertByName <PureDataSubContainer.Types>(); } return(type); }
void ShowSources() { if (AddFoldOut <PureDataSetup>(subContainersProperty, currentContainer.childrenIds.Count, "Sources".ToGUIContent(), OnContainerSourceDropped)) { if (currentContainer.childrenIds.Count > 0) { currentContainer.subContainers[currentContainer.subContainers.Count - 1] = new PureDataSubContainer(currentContainer, 0, currentContainer.GetSubContainerWithID(currentContainer.childrenIds.Last()), pureData); } else { currentContainer.subContainers[currentContainer.subContainers.Count - 1] = new PureDataSubContainer(currentContainer, 0, pureData); } containerManagerSerialized.Update(); } }
public PureDataSubContainer(PureDataContainer container, int parentId, PureData pureData) { this.name = container.Name; this.id = container.GetUniqueID(); this.parentId = parentId; this.pureData = pureData; this.switchSettings = new PureDataSwitchSettings(pureData); if (parentId == 0) { container.childrenIds.Add(id); } else { container.GetSubContainerWithID(parentId).childrenIds.Add(id); } }
public PureDataContainerItemInternal GetSwitchItem(PureDataContainer container, List<int> childrenIds, object source) { PureDataContainerItemInternal switchAudioItem = new PureDataContainerItemInternal(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) { PureDataSourceOrContainerItem childAudioItem = GetSubContainerItem(container, childSubContainer, source); if (childAudioItem != null) { switchAudioItem.AddItem(childAudioItem); } } } } return switchAudioItem; }
public PureDataContainerItemInternal GetRandomItem(PureDataContainer container, List<int> childrenIds, object source) { PureDataContainerItemInternal randomAudioItem = new PureDataContainerItemInternal(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) { PureDataSourceOrContainerItem childAudioItem = GetSubContainerItem(container, randomChildContainer, source); if (childAudioItem != null) { randomAudioItem.AddItem(childAudioItem); } } return randomAudioItem; }
public PureDataContainerItemInternal GetMixItem(PureDataContainer container, List<int> childrenIds, object source) { PureDataContainerItemInternal mixAudioItem = new PureDataContainerItemInternal(container.Name, pureData); foreach (int childrenId in childrenIds) { PureDataSourceOrContainerItem childItem = GetSubContainerItem(container, container.GetSubContainerWithID(childrenId), source); if (childItem != null) { mixAudioItem.AddItem(childItem); } } return mixAudioItem; }
public PureDataSubContainer(PureDataContainer container, int parentId, PureDataSubContainer subContainer, PureData pureData) { this.Copy(subContainer, "id", "parentId", "childrenIds"); this.name = container.Name; this.id = container.GetUniqueID(); this.parentId = parentId; this.pureData = pureData; switchSettings = new PureDataSwitchSettings(pureData); if (parentId == 0) { container.childrenIds.Add(id); } else { container.GetSubContainerWithID(parentId).childrenIds.Add(id); } }
PureDataSubContainer.Types GetParentContainerType(PureDataSubContainer subContainer, PureDataContainer container) { PureDataSubContainer.Types type = PureDataSubContainer.Types.AudioSource; if (subContainer.parentId != 0) { type = container.GetSubContainerWithID(subContainer.parentId).type; } else { type = container.type.ConvertByName<PureDataSubContainer.Types>(); } return type; }
public PureDataContainerItemInternal GetMixItem(PureDataContainer container, List <int> childrenIds, object source) { PureDataContainerItemInternal mixAudioItem = new PureDataContainerItemInternal(container.Name, pureData); foreach (int childrenId in childrenIds) { PureDataSourceOrContainerItem childItem = GetSubContainerItem(container, container.GetSubContainerWithID(childrenId), source); if (childItem != null) { mixAudioItem.AddItem(childItem); } } return(mixAudioItem); }