public static void Link(LinkedButton A, LinkedButton B, Control Parent) { if (A.Owner == B.Owner) { return; } if ((A.IsInput && A.IsLinked()) || (B.IsInput && B.IsLinked())) { throw new InvalidOperationException("Tried to double-link an input value."); } if (A.IsInput) { if (!A.ValueType.IsAssignableFrom(B.ValueType)) { throw new InvalidOperationException("Tried to link unlike variable types."); } Parent.Controls.Add(A.InboundConnection = new LinkLine(B, A, Parent)); } else { if (!B.ValueType.IsAssignableFrom(A.ValueType)) { throw new InvalidOperationException("Tried to link unlike variable types."); } Parent.Controls.Add(B.InboundConnection = new LinkLine(A, B, Parent)); } A.LinkedBtns.Add(B); B.LinkedBtns.Add(A); }
public static void Link(LinkedButton A, LinkedButton B, Control Parent) { if (A.Owner == B.Owner) return; if ((A.IsInput && A.IsLinked()) || (B.IsInput && B.IsLinked())) throw new InvalidOperationException("Tried to double-link an input value."); if (A.IsInput) { if(!A.ValueType.IsAssignableFrom(B.ValueType)) throw new InvalidOperationException("Tried to link unlike variable types."); Parent.Controls.Add(A.InboundConnection = new LinkLine(B, A, Parent)); } else { if (!B.ValueType.IsAssignableFrom(A.ValueType)) throw new InvalidOperationException("Tried to link unlike variable types."); Parent.Controls.Add(B.InboundConnection = new LinkLine(A, B, Parent)); } A.LinkedBtns.Add(B); B.LinkedBtns.Add(A); }