public void ClearInputOutputComponent() { foreach (var i in InputComponents) { i.OutputComponents.Remove(this); } InputComponents.Clear(); foreach (var o in OutputComponents) { o.InputComponents.Remove(this); } OutputComponents.Clear(); }
public void AddComponent(Gate Component) { if (Component != null) { Components.Add(Component); if (Component.Output.Type == Wire.WireType.o) { OutputComponents.Add(Component); } bool isInComponent = true; if (Component is MultipleInputComponent) { foreach (Wire w in ((MultipleInputComponent)Component).Input) { if (w.Type != Wire.WireType.i) { isInComponent = false; break; } } } else if (Component is OneInputComponent) { if (((OneInputComponent)Component).Input1.Type != Wire.WireType.i) { isInComponent = false; } } else if (Component is Cone) { foreach (Wire w in ((Cone)Component).cone.Input) { if (w.Type != Wire.WireType.i) { isInComponent = false; break; } } } if (isInComponent) { InputComponents.Add(Component); } } }