public override void LinkTo(CGModuleSlot outputSlot) { if (!HasLinkTo(outputSlot)) { Module.InputLinks.Add(new CGModuleLink(this, outputSlot)); outputSlot.Module.OutputLinks.Add(new CGModuleLink(outputSlot, this)); if (!LinkedSlots.Contains(outputSlot)) { LinkedSlots.Add(outputSlot); } if (!outputSlot.LinkedSlots.Contains(this)) { outputSlot.LinkedSlots.Add(this); } base.LinkTo(outputSlot); } }
public override void LinkTo(CGModuleSlot inputSlot) { if (!HasLinkTo(inputSlot)) { if (!inputSlot.Info.Array && inputSlot.IsLinked) { inputSlot.UnlinkAll(); } Module.OutputLinks.Add(new CGModuleLink(this, inputSlot)); inputSlot.Module.InputLinks.Add(new CGModuleLink(inputSlot, this)); if (!LinkedSlots.Contains(inputSlot)) { LinkedSlots.Add(inputSlot); } if (!inputSlot.LinkedSlots.Contains(this)) { inputSlot.LinkedSlots.Add(this); } base.LinkTo(inputSlot); } }