private void InnerAddSlot(VFXSlot slot, int index, bool notify) { var slotList = slot.direction == VFXSlot.Direction.kInput ? m_InputSlots : m_OutputSlots; if (!slot.IsMasterSlot()) { throw new ArgumentException("InnerAddSlot expect only a masterSlot"); } if (slot.owner != this as IVFXSlotContainer) { if (slot.owner != null) { slot.owner.RemoveSlot(slot); } int realIndex = index == -1 ? slotList.Count : index; slotList.Insert(realIndex, slot); slot.SetOwner(this); if (notify) { Invalidate(InvalidationCause.kStructureChanged); } } }
private void InnerRemoveSlot(VFXSlot slot, bool notify) { var slotList = slot.direction == VFXSlot.Direction.kInput ? m_InputSlots : m_OutputSlots; if (!slot.IsMasterSlot()) { throw new ArgumentException(); } if (slot.owner == this as IVFXSlotContainer) { slotList.Remove(slot); slot.SetOwner(null); if (notify) { Invalidate(InvalidationCause.kStructureChanged); } } }