public override void UnlinkFrom(CGModuleSlot outputSlot) { if (HasLinkTo(outputSlot)) { var l1 = Module.GetInputLink(this, (CGModuleOutputSlot)outputSlot); Module.InputLinks.Remove(l1); var l2 = outputSlot.Module.GetOutputLink((CGModuleOutputSlot)outputSlot, this); outputSlot.Module.OutputLinks.Remove(l2); LinkedSlots.Remove(outputSlot); outputSlot.LinkedSlots.Remove(this); base.UnlinkFrom(outputSlot); } }